Hilfe zu NER in NLTK

12

Ich arbeite seit einiger Zeit in NLTK mit Python. Das Problem, mit dem ich konfrontiert bin, ist, dass beim Training von NER in NLTK mit meinen benutzerdefinierten Daten keine Hilfe verfügbar ist. Sie haben MaxEnt verwendet und es auf ACE-Korpus trainiert. Ich habe viel im Internet gesucht, aber ich konnte keine Möglichkeit finden, NLTKs NER zu trainieren.

Wenn mir jemand einen Link / Artikel / Blog usw. zur Verfügung stellen kann, der mich zum Trainingsdatensatzformat weiterleitet, das beim Training von NLTKs NER verwendet wird, damit ich meine Datensätze in diesem bestimmten Format vorbereiten kann. Und wenn ich auf einen Link / Artikel / Blog usw. verwiesen werde, der mir helfen kann, NLTKs NER für meine eigenen Daten zu trainieren.

Diese Frage wird häufig gesucht und am wenigsten beantwortet. Könnte für jemanden in der Zukunft hilfreich sein, der mit NER zusammenarbeitet.

Sarmad
quelle
Cross-posted auf quora.com/Help-on-training-NLTKs-NER
Franck Dernoncourt

Antworten:

4

Die Schulung eines Modells, das sich auf die Informationsextraktion im Allgemeinen und die Erkennung / Auflösung benannter Entitäten (NER) im Besonderen bezieht , wird ausführlich in Kapitel 7 des NLTK-Buches beschrieben , das online unter folgender URL verfügbar ist: http: //www.nltk .org / book / ch07.html .

Darüber hinaus denke ich, dass Sie meine entsprechende Antwort auf der Cross Validated- Website nützlich finden könnten . Es enthält zahlreiche Verweise auf relevante Quellen zu NER und verwandten Themen sowie auf verschiedene verwandte Softwaretools .

Aleksandr Blekh
quelle
Sie erwähnen nicht, wie das NER-Modell auf benutzerdefinierten Daten trainiert wird. Können Sie sagen, wie es geht?
Hima Varsha
1
@ HimaVarsha Ich bin kein Experte auf diesem Gebiet. Ich denke jedoch, dass das NLTK NER-Modell auf dem conll2000- Korpus vorab trainiert ist , daher keine Informationen im NLTK-Buch. Überprüfen Sie die folgenden Ressourcen: 1. nltk-trainer.readthedocs.io (höchstwahrscheinlich das, was Sie benötigen; wahrscheinlich den Abschnitt Training IOB Chunkers ). 2. sujitpal.blogspot.com/2012/11/… (kann auch nützlich sein). 3. nlp.stanford.edu/software/crf-faq.shtml#a (falls Sie die Stanford NER-Software verwenden oder sich dafür entscheiden werden).
Aleksandr Blekh
Ich denke, die Implementierung von Stanfordcrf erfordert benutzerdefinierte Daten, aber NTLK NER wird nur vorab geschult. Die Training IOB Chunkers sind nur Chunking, oder? Oder macht es überhaupt NER?
Hima Varsha
@HimaVarsha Bitte achten Sie mehr auf die Ratschläge, die Sie erhalten. Wenn Sie den Beitrag über Link 2 oben sorgfältig lesen, werden Sie feststellen, dass der dortige Code sowohl das NER-Modelltraining als auch das Laufen durchführt. Ich glaube nicht, dass ich Ihnen über den obigen Rat hinaus helfen kann.
Aleksandr Blekh
3

Ist dieser Artikel gut genug? http://www.succeed-project.eu/wiki/index.php/NLTK#Input_format_for_training

Es gibt Erklärungen, wie Korpus aussehen sollte.

Ihre Daten müssen im IOB-Format (Word Tag Chunktag) vorliegen, damit sie funktionieren.
Eric NNP B-PERSON
ist VB O
der
CEO von AT B-NP, NN I-NP
von IN O
Google NNP B-ORGANISATION

MaticDiba
quelle
1
Es wäre ideal, eine kurze Zusammenfassung des Artikels in dieser Antwort zu veröffentlichen.
Sheldonkreger
1

Ich fand dieses Tutorial sehr hilfreich: Vollständige Anleitung zum Erstellen eines eigenen Named Entity Recognizers mit Python Er verwendet den GMB-Korpus (Groningen Meaning Bank), um seinen NER-Block zu trainieren.

Danach können Sie dieses Tutorial von derselben Person lesen : Trainieren eines NER-Systems mithilfe eines großen Datensatzes Wenn er Scikit verwendet, lernen Sie, die Leistung seines Systems zu verbessern.

Schließlich finden Sie hier einige wirklich nützliche Tutorials: NLTK-Tutorial Dieser Typ hat einen Youtube-Kanal mit vielen Tutorials in vielen Fächern (ML, NLP, Python ...).

Ich hoffe es hilft.

Iraklis Moutidis
quelle