Wie funktionieren "Intent Recognnisers"?


11

Amazon Alexa , Nuance's Mix und Facebook Wit.ai alle ein ähnliches System, um festzulegen, wie ein in eine Absicht umgewandelt werden soll - dh etwas, das ein Computer verstehen würde. Ich bin mir nicht sicher, wie der "offizielle" Name dafür lautet, aber ich nenne ihn "Absichtserkennung". Grundsätzlich ein Weg von "Bitte stellen Sie meine Lichter auf 50% Helligkeit" zu lights.setBrightness(0.50).

Die Art und Weise, wie sie angegeben werden, besteht darin, dass der Entwickler eine Liste von "Beispieläußerungen" bereitstellt, die einer Absicht zugeordnet sind, und optional mit Positionen von "Entitäten" (im Grunde Parameter) gekennzeichnet ist. Hier ist ein Beispiel von Wit.ai:

wit.ai Beispiel

Meine Frage ist: Wie funktionieren diese Systeme? Da sie sich alle sehr ähnlich sind, gehe ich davon aus, dass es einige wegweisende Arbeiten gibt, die sie alle verwenden. Weiß jemand was es ist?

Interessanterweise Houndify ein anderes System, das eher regulären Ausdrücken ähnelt : ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]. Ich gehe davon aus, dass dies in die Strahlensuche ihres Spracherkennungssystems integriert ist, während Alexa, Wit.ai und Mix getrennte Sprach-> Text- und Text-> Absichtssysteme zu haben scheinen.

Bearbeiten: Ich habe einen Ausgangspunkt gefunden - Ein Mechanismus für die Mensch-Roboter-Interaktion durch informelle Sprachbefehle . Es verwendet eine sogenannte latente semantische Analyse, um Äußerungen zu vergleichen. Ich werde das nachlesen. Zumindest hat es mir einen Ausgangspunkt im Zitierungsnetzwerk gegeben.

Bearbeiten 2: LSA vergleicht im Wesentlichen die in jedem Textabschnitt verwendeten Wörter (Bag of Words). Ich sehe nicht, wie es in diesem Fall sehr gut funktionieren kann, da es die Wortreihenfolge völlig verliert. Obwohl die Wortreihenfolge für diese Art von Befehlen vielleicht nicht viel ausmacht.

Bearbeiten 3: Versteckte Themen Markov-Modelle sehen aus, als wären sie interessant.


Dieser Beitrag erklärt die Absichtsklassifizierung im Detail: mrbot.ai/blog/natural-language-processing/…
znat

Dies scheint die in meiner Frage erwähnte "Bag of Words" -Methode zu verwenden. Addieren Sie einfach die Wortvektoren im Satz. So kann es aber nicht funktionieren. Die Schnittstellen von Wit und Nuance zeigen, dass sie Entitäten erkennen, die mit vielen Wörtern nicht einfach zu tun sind. Auch eine Wortsammlung verliert jede Reihenfolge, so dass etwas wie "Alarm für 10 nach 5 einstellen" nicht von "Alarm für 5 nach 10 einstellen" nicht zu unterscheiden ist. Es muss etwas mehr los sein.
Timmmm

Die Entitätsextraktion ist ein weiteres Problem, bei dem es auf die Reihenfolge ankommt. Wenn Sie viele Daten haben, funktioniert ein Rnn in kleineren Datensätzen, die in Chatbots häufig vorkommen, funktionieren bedingte Zufallsfelder sehr gut
znat

Ok, also ... ich suche nach einer detaillierteren Antwort als "ein RNN wird funktionieren". Die meisten modernen Sequenzlernsysteme verwenden RNNs, so dass dies selbstverständlich erscheint.
Timmmm

Bei Absichten geht es um die allgemeine Bedeutung der Sätze (Durchschnitt der Vektoren), und bei Entitäten geht es darum, den Kontext (umgebende Wörter) zu lernen, in dem sie vorkommen. Rnn oder CRF sind nur Algorithmen, die verwendet werden können, weil sie aus Sequenzen lernen. Wenn Sie im Detail lernen möchten, schauen Sie in Rasa Quellcode
znat

Antworten:


4

Obwohl Sie Ihre Frage nicht direkt beantworten, interessieren Sie sich möglicherweise für den Bereich der automatisierten Beantwortung von Fragen . Um Textfragen in natürlicher Sprache zu beantworten, müssen sie zuerst verstanden werden, was sich mit Ihrem Problem überschneidet.

Eine gute Ressource ist der Kurs von Jurafsky und Manning . Insbesondere die Abschnitte über Semantik und Beantwortung von Fragen können Ihnen bei der Suche helfen. Begleitende Vorlesungsvideos finden Sie hier auf Youtube .


Ich finde den ersten Teil Ihrer Antwort sehr lustig und dennoch informativ.
Diego

Vielleicht wäre dies als Kommentar besser, da es, wie Sie zugeben, die Frage nicht beantwortet.
Kbrose

2

Dieser Beitrag hat einen Ansatz. Grundsätzlich verwenden sie eine Wortsammlung - sie konvertieren die Wörter in spärliche Vektoren und addieren sie dann.

Es scheint ziemlich gut zu funktionieren, aber ein Hauptfehler ist, dass die Antwort unabhängig von der Wortreihenfolge ist. Sie können also keine Abfragen wie "Wie viele Kilo in einem Pfund" durchführen, es sei denn, Sie haben einen Sonderfall.

Ich habe jedoch Text mit Alexa geschrieben und es ist ziemlich unempfindlich gegenüber Änderungen der Wortreihenfolge. Vielleicht verwenden sie etwas Ähnliches.


Neugierig - welchen Vorteil haben Sparse-Vektoren gegenüber Naive Bayesian? Beide lösen für mich linear trennbare Probleme mit der naiven Wortsackannahme
Angad
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.