Ich habe eine Liste von Unternehmen, aber einige dieser Unternehmen sind einfach Namen von Menschen. Ich möchte diese Leute von der Liste streichen, aber ich habe Schwierigkeiten, einen Weg zu finden, um die Namen von Leuten aus den Unternehmen zu identifizieren.Differenzieren Sie eine Liste zwischen menschlichen Namen und Firmennamen
Durch Online-Recherche habe ich zwei Möglichkeiten ausprobiert. Die erste verwendet die nltk
. Mein Code sieht aus wie
y = ['INOVATIA LABORATORIES LLC', 'PRULLAGE PHD JOSEPH B', 'S J SMITH CO INC', 'TEVA PHARMACEUTICALS USA INC', 'KENT NUTRITION GROUP INC', 'JOSEPH D WAGENKNECHT', 'ROBERTSON KEITH', 'LINCARE INC', 'AGCHOICE - BLUE MOUND']
In der obigen Liste I PRULLAGE PHD JOSEPH B
, JOSEPH D WAGENKNECHT
und ROBERTSON KEITH
entfernen möchte.
z = []
for company in y:
tokens = nltk.tokenize.word_tokenize(company)
z.append(nltk.pos_tag(tokens))
Dies funktioniert nicht, weil es alles als Eigenname markiert. Ich habe dann alles kleingeschrieben und nur den ersten Buchstaben jedes Wortes Großbuchstaben mit der .title()
gemacht, aber das scheiterte auch aus ähnlichen Gründen. Die andere Methode, die ich ausprobiert habe, war die Verwendung des Moduls Human Name Parser
, aber dies funktionierte auch nicht, weil es die Firmennamen als Vor- und Nachname der Person kennzeichnet.
Gibt es einen Weg, dass ich die obige Liste zwischen menschlichen Namen und Firmennamen unterscheiden kann?
ist, dass ein Liste? Wenn ja, Sie einige Kommas fehlen und Ihre Zitate sind aus dem Wack – depperm
Klingt eher wie eine Maschine Lernproblem. Wie erwarten Sie, dass NLTK die Definition eines "Unternehmens" kennt? Sie müssen es sagen (INC, LLC, CO, GROUP) sind alle Schlüsselwörter –
Meine Schuld habe ich es eine richtige Liste gemacht. – Jstuff