2009-03-03 4 views
11

Ich interessiere mich für mehr Informationen über Natural Language Processing (NLP) und bin gespannt, ob es derzeit Strategien gibt, richtige Substantive in einem Text zu erkennen, die nicht auf Wörterbucherkennung basieren? Könnte auch jemand Ressourcen erklären oder verlinken, die die aktuellen wörterbuchbasierten Methoden erklären? Wer sind die maßgeblichen Experten für NLP oder was sind die definitiven Ressourcen zu diesem Thema?Strategien zur Erkennung von Eigennamen in NLP

Antwort

11

Die Aufgabe der Bestimmung Der richtige Wortteil für ein Wort in einem Text heißt Part of Speech Tagging. Die Brill tagger verwendet zum Beispiel eine Mischung aus Wörterbuch (Vokabular) Wörtern und kontextuellen Regeln. Ich glaube, dass einige der wichtigsten Wörter im Wörterbuch für diese Aufgabe die Stoppwörter sind. Sobald Sie für Ihre Wörter (meist korrekte) Sprachteile haben, können Sie beginnen, größere Strukturen zu bauen. This industry-oriented book unterscheidet zwischen der Erkennung von Nominalphrasen (NPs) und der Erkennung von benannten Entitäten. Über Lehrbücher: Allen's Natural Language Understanding ist ein gutes, aber ein bisschen veraltet, Buch. Foundations of Statistical Natural Language Processing ist eine nette Einführung in das statistische NLP. Speech and Language Processing ist ein bisschen strenger und vielleicht autoritativer. The Association for Computational Linguistics ist eine führende wissenschaftliche Gemeinschaft für Computerlinguistik.

+0

Danke für die Ressourcen. – VirtuosiMedia

6

Neben dem Wörterbuch-basierten Ansatz, kommen zwei andere meiner Meinung nach:

  • Pattern-basierte Ansätze (in einer einfachen Form: alles, was ist ein Eigenname aktiviert wird)
  • Maschinenlernansätze (markieren Eigennamen in einem Trainingskorpus und trainiert ein Klassifikator)

Das Feld meist Named-Entity-Extraktion genannt wird und oft ein Teilgebiet der informatio betrachtet n Extraktion. Ein guter Ausgangspunkt für die verschiedenen Bereiche der NLP ist in der Regel die entsprechenden Kapitel in der Oxford Handbook of Computational Linguistics:

Oxford Handbook of Computational Linguistics http://ukcatalogue.oup.com/images/en_US/covers/medium/9780198238829_140.jpg

+0

Ah, danke für die "named-entity extraction" Begriff. Manchmal ist es schwierig, die richtigen Begriffe zu finden, wenn man gerade erst etwas lernt. – VirtuosiMedia

2

Es hängt davon ab, was Sie mit Wörterbuch-basiert.

Zum Beispiel wäre eine Strategie, Dinge zu nehmen, die sind nicht in einem Wörterbuch und versuchen, auf der Annahme fortzufahren, dass sie richtige Substantive sind. Wenn dies zu einer vernünftigen Analyse führt, bedenken Sie die vorläufig validierte Annahme und machen Sie weiter, andernfalls ziehen Sie den Schluss, dass dies nicht der Fall ist.

Andere Ideen:

  • In Subjektposition, jedes einfaches Thema ohne Bestimmer ist ein guter Kandidat.
  • Ditto in Präpositionalphrasen
  • In jeder Position, die aufgrund eines besitzergreifend Bestimmer (zB Bob in "Bobs Schwester") ist ein guter Kandidat

- MarkusQ

+0

Interessante Idee über Dinge, die nicht im Wörterbuch sind. – VirtuosiMedia

4

Suchen Sie nach "named entity recognition" - das ist der Begriff, der in der NLP-Literatur für solche Dinge verwendet wird.

0

einige Toolkits vorgeschlagen: 1. Opennlp: Es gibt eine Named Entity Recognition Komponente für Ihre Aufgabe 2.LingPipe: auch eine NER-Komponente dafür 3. Stanford NLP-Paket: ausgezeichnetes Paket für akademischen Gebrauch, vielleicht nicht kommerziell freundlich. 4. nltk: ein Python NLP-Paket

0

Wenn Sie Satz wie "Wer ist Bill Gates" Und wenn Sie einen Teil der Rede-Tagger zu ihm anwenden. Es wird Antwort geben als

"die/WP/VBZ Rechnung/NN Tore/NNS /?".

U kann dieses Online anprobieren http://cst.dk/online/pos_tagger/uk/

So sind Sie, was alle bekommen sind die Substantive in diesem Satz. Jetzt können Sie diese Substantive leicht mit einem Algorithmus extrahieren. Ich schlage vor, Python zu benutzen, wenn Sie natürliche Sprachverarbeitung verwenden. Es hat NLTK (Natural Language Toolkit), mit denen Sie arbeiten können.

0

Wenn Sie bei der Durchführung der Verarbeitung natürlicher Sprache und Python interessiert ist Ihre Programmiersprache, dann kann dies eine sehr informative Ressource: http://www.youtube.com/watch?v=kKe4M4iSclc