wake-up-neo.net

Gibt es einen Algorithmus, mit dessen Hilfe das "Hauptthema" eines englischen Satzes ermittelt werden kann?

Ich versuche herauszufinden, ob es einen bekannten Algorithmus gibt, der das "Schlüsselkonzept" eines Satzes erkennen kann.

Der Anwendungsfall ist wie folgt:

  1. Benutzer gibt einen Satz als Abfrage ein (Schmeckt Huhn wie Pute?)
  2. Unser System identifiziert die Konzepte des Satzes (Huhn, Truthahn)
  3. Und es wird eine Suche in unseren Korpusinhalten durchgeführt

Der Bereich, der uns fehlt, besteht darin, herauszufinden, worum es beim Kernthema des Satzes wirklich geht. Der Satz "Schmeckt Hühnchen wie Pute" hat ein Hauptthema von "Hühnchen", weil der Benutzer nach dem Geschmack von Hühnchen fragt. Während "Truthahn" ein Hilfsthema von geringerer Bedeutung ist.

Also ... ich versuche herauszufinden, ob es einen Algorithmus gibt, der mir hilft, das Hauptthema eines Satzes zu identifizieren ... Lass es mich wissen, wenn du etwas weißt !!!

31
rockit

Ich habe tatsächlich ein Forschungsprojekt dazu durchgeführt und zwei Wettbewerbe gewonnen und nehme an nationalen Wettbewerben teil.

Es gibt zwei Schritte zur Methode:

  1. Parse der Satz mit einer kontextfreien Grammatik
  2. In den resultierenden Analysebäumen finden Sie alle Substantive, die nur Nomen-Phrasen-ähnlichen Bestandteilen untergeordnet sind

Zum Beispiel hat "I ate pie" 2 Hauptwörter: "I" und "pie". Wenn Sie sich den Analysebaum ansehen, befindet sich "pie" innerhalb einer Verbalphrase, daher kann es kein Betreff sein. "Ich" ist jedoch nur innerhalb von NP-ähnlichen Bestandteilen. als einziger fachkandidat ist es das fach. Eine frühe Kopie dieses Programms finden Sie unter http://www.candlemind.com . Beachten Sie, dass das Vokabular auf einzelne Grundwörter beschränkt ist und es keine Verbkonjugationen gibt. Es hat also "Mann", aber nicht "Mann", hat "Essen", aber nicht "Essen". Auch das von mir verwendete CFG war handgemacht und limitiert. Ich werde dieses Programm in Kürze aktualisieren.

Wie auch immer, es gibt Einschränkungen für dieses Programm. Mein Mentor hat in seinem aktuellen Zustand darauf hingewiesen, dass er keine Sätze mit Themen erkennen kann, die "echte" NPs sind (was Grammatik eigentlich NPs nennt). Zum Beispiel, "dass der Mond flach ist, ist keine Debatte mehr." Das Thema ist eigentlich "dass der Mond flach ist". Das Programm würde jedoch "Mond" als Subjekt erkennen. Ich werde dies in Kürze beheben.

Jedenfalls ist das für die meisten Sätze gut genug ...

Dort ist auch mein Forschungsbericht zu finden. Lesen Sie auf Seite 11 die Methoden.

Hoffe das hilft.

21
Michael

Die meisten Ihrer grundlegenden NLP-Analysetechniken sind in der Lage, die grundlegenden Aspekte des Satzes zu extrahieren - dh, dass Huhn und Truthahn NPs sind und durch ein Adjektiv wie usw. verknüpft sind ist schwieriger

Techniken wie die latente semantische Analyse und ihre vielen Ableitungen wandeln diese Informationen in einen Vektor um (einige haben Methoden, um die Hierarchie/Beziehungen zwischen Teilen der Sprache in einem Teil beizubehalten) und vergleichen sie dann mit existierenden, normalerweise nach Begriffen vorklassifizierten Vektoren. Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Latent_semantic_analysis .

Bearbeiten Hier ist eine Beispiel-LSA-App, mit der Sie herumspielen können, um zu sehen, ob Sie sie möglicherweise weiter verfolgen möchten. http://lsi.research.telcordia.com/lsi/demos.html

9
dfb

Für viele längere Sätze ist es schwierig zu sagen, was genau ein Thema ist und es kann auch mehrere geben.

Eine Möglichkeit, ungefähre Angaben zu erhalten, ist

1.) Markieren Sie den Satz zuerst mit openNLP, Stanford Parser oder einem anderen. 2.) Entfernen Sie dann alle Stoppwörter aus dem Satz. 3.) Nomen aufnehmen (Eigenname, Singular und Plural).

Ein anderer Weg ist

1.) Den Satz von einem Parser in Phrasen zerlegen. 2.) Nimm alle Nominalphrasen auf. 3.) Entfernen Sie die Nominalphrasen, die als Kind keine Nominalphrasen enthalten. 4.) Behalte nur Adjektive und Substantive, entferne alle Wörter aus den verbleibenden Substantivphrasen.

Dies könnte ca. geben. raten.

2
Naveen

Es gibt einen Artikel über Parsing Noun Phrases im MIT Computational Linguistics Journal dieses Monats: http://www.mitpressjournals.org/doi/pdf/10.1162/COLI_a_00076

1
ZeoS

"Schlüsselbegriff" ist kein genau definierter Begriff in der Linguistik, aber dies kann ein Ausgangspunkt sein: parse der Satz, finden Sie das Thema im Analysebaum oder der Abhängigkeitsstruktur, die Sie erhalten. (Dies funktioniert nicht immer. Beispielsweise lautet das Thema "Regnet es?" "Es", während das Schlüsselkonzept wahrscheinlich "Regen" lautet. Was ist das Schlüsselkonzept in "Sind Spaghetti und Lasagne dasselbe?" ? ")

Diese Art von Problem (NLP + Suche) wird mit Methoden wie LSA besser gelöst, aber das ist ein ziemlich fortgeschrittenes Thema.

1
Fred Foo

Wenn Sie bereit sind, Geld auszugeben, sollte http://www.connexor.com/ in der Lage sein, diese Art der semantischen Analyse für eine Vielzahl von Sprachen durchzuführen, einschließlich Englisch. Ich habe das Produkt noch nie direkt verwendet und kann daher nicht beurteilen, wie gut es funktioniert.

1
btilly

Zusammengesetzte oder komplexe Sätze können mehr als einen Schlüsselbegriff eines Satzes haben.

Sie können stanfordNLP oder MaltParser verwenden, die die Abhängigkeitsstruktur eines Satzes angeben. Es gibt auch die Teile der Sprachkennzeichnung einschließlich Subjekt, Verb, Objekt usw.

Ich denke, die meiste Zeit wird das Objekt der Schlüsselbegriff des Satzes sein.

1
Naveen

Sie sollten sich die Google Cloud Natural Language API ansehen. Es ist ihr NLP-Service.

https://cloud.google.com/natural-language/

1
Tom

Auf der einfachsten Ebene besteht eine Frage auf Englisch normalerweise aus <verb> <subject> ... ? oder <pronoun> <verb> <subject> ... ?. Dies ist auf keinen Fall ein guter Algorithmus, insbesondere wenn man bedenkt, dass das Thema mehrere Wörter umfassen kann, aber je nachdem, wie ausgefeilt eine Lösung ist, kann dies ein nützlicher Ausgangspunkt sein.

Wenn Sie Präzision benötigen, ignorieren Sie diese Antwort.

1
biziclop

Eine einfache Lösung besteht darin, Ihren Satz mit einem Teil der Sprache zu markieren (z. B. aus der NLTK Bibliothek für Python) und dann Übereinstimmungen mit vordefinierten Teil der Sprache-Mustern zu finden, in denen klar ist, wo das Hauptthema der ist Satz

0
Andrey Sboev

Eine Möglichkeit besteht darin, sich als ersten Schritt mit so etwas zu befassen:

http://www.abisource.com/projects/link-grammar/

Aber wie Sie das Thema aus diesen Links ableiten, ist ein weiteres Problem an sich. Aber da Abiword versucht, grammatische Probleme zu erkennen, können Sie möglicherweise damit das Thema bestimmen.

0
Glenn