Erkennung benannter Entitäten mit regulärem Ausdruck: NLTK

Ich habe mit dem NLTK-Toolkit gespielt. Ich bin häufig auf dieses Problem gestoßen und habe online nach einer Lösung gesucht, aber nirgendwo habe ich eine befriedigende Antwort bekommen. Also stelle ich meine Frage hier.

Häufig kennzeichnet NER aufeinanderfolgende NNPs nicht als eine NE. Ich denke, dass die Bearbeitung der NER zur Verwendung von RegexpTagger auch die NER verbessern kann.

Beispiel:

Eingang:

Barack Obama ist eine großartige Person.

Ausgabe:

Baum ('S', [Baum ('PERSON', [('Barack', 'NNP')]), Baum ('ORGANISATION', [('Obama', 'NNP')]), ('ist', 'VBZ'), ('a', 'DT'), ('great', 'JJ'), ('person', 'NN'), ('.', '.')])

wohingegen

Eingang:

Der frühere Vizepräsident Dick Cheney sagte der konservativen Radiomoderatorin Laura Ingraham, dass es ihm "eine Ehre" sei, im Amt mit Darth Vader verglichen zu werden.

Ausgabe:

Baum ('S', [('Ehemalig', 'JJ'), ('Vize', 'NNP'), ('Präsident', 'NNP'), Baum ('NE', [('Dick', ' NNP '), (' Cheney ',' NNP ')], (' erzählt ',' VBD '), (' konservativ ',' JJ '), (' Radio ',' NN '), (' Host ') , 'NN'), Baum ('NE', [('Laura', 'NNP'), ('Ingraham', 'NNP')], ('das', 'IN'), ('er', 'PRP'), ('', ''), (' war ',' VBD '), (' geehrt ',' VBN '), ("'", "'"), (' zu ',' ZU '), (' sein ', 'VB'), ('verglichen', 'VBN'), ('bis', 'bis'), Baum ('NE', [('Darth', 'NNP'), ('Vader', 'NNP' )]), ('while', 'IN'), ('in', 'IN'), ('office', 'NN'), ('.', '.')])

Hier wird Vize / NNP, Präsident / NNP (Dick / NNP, Cheney / NNP) korrekt extrahiert.

Wenn also zuerst nltk.ne_chunk verwendet wird und dann zwei aufeinanderfolgende Bäume NNP sind, besteht eine hohe Wahrscheinlichkeit, dass sich beide auf eine Entität beziehen.

Jeder Vorschlag wird sehr geschätzt. Ich suche nach Fehlern in meiner Herangehensweise.

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage