2016-05-16 10 views
3

Viele NLP-APIs bieten Intent-Extraktion wie API.ai und wit.ai. Allerdings bin ich mir über ihre Details nicht im Klaren. Machen sie das Parsen von Abhängigkeiten, extrahieren dann Beziehungen oder entfernen einfach Schlüsselwörter aus einem Satz? Wie analysiere ich "check ob morgen regnen wird"?Was sind die gängigen Methoden zur Feststellung der Absicht?

+0

Haben Sie etwas gefunden? – sdream

+1

Noch nicht. Scheint immer noch ein sehr schweres Problem zu sein – Yangrui

Antwort

1

Es gibt eine Handvoll Ansätze, die ich kenne. Sie können zusammen als Ensemble verwendet werden, das eine Partitur ausgibt.

(1) Zuordnung der Absicht zu String-Literalen. Vergleichen Sie diese Zeichenfolgenliterale für eine exakte Übereinstimmung oder Kosinusähnlichkeit (2) enger Bereich von möglichen Absichten basierend auf dem Kontext (3) regex passt. Wenn ein Satz eine charakteristische Regex (wie eine Telefonnummer) enthält, kann er den Anwendungsbereich der Absichten zumindest eingrenzen, um nach (4) Word Mover Distance zu suchen. es ist wie Worteinbettungen (d. h. Deep Learning NLP), aber der gesamte Satz wird übergeben, und der Gesamtabstand von einem anderen Satz wird verglichen. (5) bidirektionales LSTM: tutorial oder tensorflow
(6) Führen Sie eine Liste von "Kandidatenabsichten" unter Verwendung der Named Entity Recognition (NER). spaCy tut dies. Noch besser ist es, es für subject-object extraction (7) "Fallback Intents" zu verwenden, wenn man nicht gefunden wird. Dies könnte sich auf "hierarchische Absichten" beziehen, bei denen die Blätter auf der untersten Ebene Absichten darstellen, auf die Sie sich beziehen. Dies könnte sich auch auf eine Absicht nach dem Motto "Der Bot hat keine Ahnung, was ich sagen soll" beziehen.

Verwandte Themen