Frage

I love to eat chicken.
Today I went running, swimming and played basketball.

Mein Ziel ist es, zurückzukehren LEBENSMITTEL und SPORT Nur durch Analyse dieser beiden Sätze. Wie kannst du das machen?

Ich bin mit NLP und WordNet vertraut. Aber gibt es etwas mehr hochrangiger/praktische/moderne Technologie?

Gibt es etwas, das automatisch Wörter für Sie, in "in" kategorisiert "Ebenen"?

Noch wichtiger ist, was ist der technische Begriff für diesen Prozess?

War es hilfreich?

Lösung

Dieses Problem ist schwer prozessual zu lösen, aber in letzter Zeit wurden in der Region viel Fortschritte erzielt.

Die meisten natürlichen Sprachverarbeitung beginnt mit einer Grammatik (die kontextfrei sein kann oder nicht). Es ist eine Reihe von Konstruktionsregeln, aus denen hervorgeht, wie allgemeiner Dinge aus spezifischeren gemacht werden.

Beispiel Kontextfreie Grammatik:

Sentence ::= NounPhrase VerbPhrase
NounPhrase ::= ["The"] [Adjective] Noun
Adjective ::= "big" | "small" | "red" | "green"
Noun ::= "cat" | "man" | "house"
VerbPhrase ::= "fell over"

Dies ist offensichtlich zu vereinfacht, aber die Aufgabe, eine vollständige Grammatik zur Definition des gesamten Englisch zu erstellen, ist enorm, und die meisten realen Systeme definieren nur eine Teilmenge davon, die für einen Problembereich anwendbar ist.

Sobald eine Grammatik definiert wurde (oder mit komplizierten Algorithmen gelernt wurde, die nur Google wie Google bekannt sind), wird eine Zeichenfolge, die als "Beispiel" bezeichnet wird, gemäß der Grammatik analysiert. Welches jedes Wort mit den Teilen der Sprache markiert. Eine sehr komplexe Grammatik würde nicht nur die Teile der Rede haben, die Sie in der Schule gelernt haben, sondern Kategorien wie "Websites" "Namen alter Menschen" und "Zutaten".

Diese Kategorien können von Menschen mühsam in die Grammatik eingebaut werden oder unter Verwendung von Dingen wie analogem Modellieren oder Stützvektormaschinen abgeleitet werden. In jedem würden Dinge wie "Hühnchen", "Fußball", "BBQ" und "Cricket" als Punkte in einem sehr hohen dimensionalen Raum zusammen mit Millionen anderer Punkte und anschließend die Clustering -Algorithmen definiert, die Gruppen gerade definieren würden Basierend auf den Positionen dieser Punkte relativ zu jedem anderen. Dann könnte man versuchen, Namen für die Gruppen aus Beispieltext zu schließen.

Link TextDiese Google -Suchfrequenz listet verschiedene in NLP verwendete Techniken auf, und Sie können viel von ihnen lernen.

Bearbeiten, um nur dieses Problem zu lösen, kann man das Web für Sätze des Formulars kriechen. "_ ist ein _"Um eine Datenbank mit Elementkategorie-Beziehungen aufzubauen. Dann analysieren Sie eine Zeichenfolge wie oben und suchen nach Wörtern, die in der Datenbank bekannte Elemente sind

Andere Tipps

Google Sets macht einige davon, und es gibt einige Diskussion Das erwähnt Supersets. Ich habe dort jedoch keine technischen Details gesehen, nur Ideen und Diskussionen.

Vielleicht könnte dies zumindest Ihre Recherche helfen ...

Die Frage, die Sie stellen, ist ein ganzer Forschungsbereich, der als topische Textkategorisierung bezeichnet wird. Ein guter Überblick über Techniken ist "Maschinelles Lernen in der automatisierten Textkategorisierung" in ACM -Computing -Umfragen von Fabrizio Sebastiani.. Eine der einfachsten Techniken (obwohl nicht unbedingt die beste Leistung) ist es, in jeder Kategorie zahlreiche (Hunderte) Beispiele für Sätze zu haben und dann einen naiven Bayes'schen Klassifizierer für diese Beispielsätze zu trainieren. NLTK enthält einen naiven Bayes'schen Klassifizierer im Modul nltk.classify.naivebayes.

Sie könnten sich ansehen WordNet -Domänen Ressource von Menschen aus FBK. Es handelt sich um eine Erweiterung von WordNet, die für die Kategorisierung von Text und die Disambiguation von Word -Sinn verwendet werden soll. Es ermöglicht unterschiedliche Granularitätsgrade.

http://wndomains.fbk.eu/

Eine der möglichen Möglichkeiten, es auf Ihre Aufgabe anzuwenden, könnte darin bestehen, NP-Chunks aus Ihren Sätzen herauszuholen, ihre Kopfwörter und von ihnen die Kategorien aus WordNet-Domänen zu erhalten.

Tenqyu löste es mit Python und maschinellem Lernen.

  1. Einen Datensatz von Text haben
  2. Wenden Sie die TF-IDF-Vektorisierung an. Das Gewicht eines Begriffs, der in einem Dokument auftritt
    zur Begriffsfrequenz. (Die Luhn -Annahme von 1957) Die Spezifität eines Terms kann als umgekehrte Funktion der Anzahl der Dokumente quantifiziert werden, in denen er auftritt.
  3. Ein Vektorraummodell
  4. Multinomiale native Bayes -Klassifizierung

Der Prozess detaillierter ist hier:https://hackernoon.com/how-to--better-coachella-machine-learning-part-1-dc84c53d1a9c

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top