Ein Wortart-Tagger weist den Wörtern im Eingabetext Beschriftungen zu. Zum Beispiel hat das beliebte Penn Treebank-Tagset etwa 40 Labels, wie "Plural Substantiv", "Vergleichs Adjektiv", "Vergangenheitsform Verb", usw. Der Tagger löst auch einige Mehrdeutigkeiten. Zum Beispiel können viele englische Wortformen entweder Substantive oder Verben sein, aber im Zusammenhang mit anderen Wörtern ist ihr Sprachteil eindeutig. Also, nachdem Sie Ihren Text mit POS-Tags versehen haben, können Sie Fragen wie beantworten: wie viele Substantive habe ich ?, wie viele Sätze enthalten kein Verb? Usw.
Für einen Chatbot brauchen Sie offensichtlich viel mehr als Das. Sie müssen die Themen und Objekte im Text herausfinden und an welches Verb (Prädikat) sie sich anhängen; Sie müssen Anaphern lösen (die einzelnen tut ein er oder sie Punkt), was den Umfang der Negation und quantifiers (zB jeder, mehr als 3) usw.
Idealerweise Sie müssen den eingegebenen Text in eine logische Darstellung (z. B. Logik erster Ordnung) abbilden, damit Sie eine Schlussfolgerung einbringen können, um zu bestimmen, ob zwei Sätze in der Bedeutung oder in einer Folgebeziehung usw. äquivalent sind.
While Ein POS-Tagger würde den Satz
abbilden
Mary likes no man who owns a cat.
auf eine solche Struktur
Mary/NNP likes/VBZ no/DT man/NN who/WP owns/VBZ a/DT cat/NN ./.
Sie lieber so etwas wie dieses brauchen:
SubClassOf(
ObjectIntersectionOf(
Class(:man)
ObjectSomeValuesFrom(
ObjectProperty(:own)
Class(:cat)
)
)
ObjectComplementOf(
ObjectSomeValuesFrom(
ObjectInverseOf(ObjectProperty(:like))
ObjectOneOf(
NamedIndividual(:Mary)
)
)
)
)
Natürlich, während POS-Tagger Precision und Recall-Werte nahe 100%, komplexer werden die automatische Verarbeitung wird viel schlechter abschneiden.
Eine gute Java-Bibliothek für NLP ist LingPipe.Es geht jedoch nicht viel über POS-Tagging, Chunking und die Erkennung von benannten Entitäten hinaus.
"Sie würden eher so etwas brauchen:" In Ihrem Beitrag, welche Syntax ist das und was sind Sie beschreibend. –
Dies ist OWL 2 (siehe: http://www.w3.org/2007/OWL/wiki/Syntax). OWL ist ein Fragment der Logik erster Ordnung. Im Kontext dieser Antwort ist es nur ein Beispiel für ein Format, in das man natürlichsprachliche Sätze umwandeln kann, um im Gegenzug eine automatische Argumentationsfähigkeit zu erhalten. – Kaarel
Zwischen einem POS-Tagger und dem logischen Auszug eines Satzes gibt es einen Zwischenschritt eines Parsers, z. B. eines Diagrammparsers, der das Chunking der POS-markierten Wörter durchführt. Um die logische Form zu extrahieren, müssen wir die Argumentabhängigkeiten bestimmen. Und später etwas Logikverarbeitung. –