Amazon Alexa , Nuance's Mix e Facebook Wit.ai utilizzano tutti un sistema simile per specificare come convertire un comando di testo in un intento, ovvero qualcosa che un computer potrebbe capire. Non sono sicuro di quale sia il nome "ufficiale" per questo, ma lo chiamo "riconoscimento intento". Fondamentalmente un modo per passare da "per favore imposta le mie luci al 50% di luminosità" su lights.setBrightness(0.50)
.
Il modo in cui sono specificati è facendo in modo che lo sviluppatore fornisca un elenco di "espressioni di esempio" che sono associate a un intento e facoltativamente taggate con posizioni di "entità" (sostanzialmente parametri). Ecco un esempio da Wit.ai:
La mia domanda è: come funzionano questi sistemi? Dal momento che sono tutti molto simili suppongo che ci sia un lavoro fondamentale che tutti usano. Qualcuno sa di cosa si tratta?
È interessante notare che Houndify utilizza un sistema diverso che è più simile a regex: ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]
. Suppongo che sia integrato nella ricerca del raggio del loro sistema di riconoscimento vocale, mentre Alexa, Wit.ai e Mix sembrano avere sistemi Speech-> Text e Text-> Intent separati.
Modifica: ho trovato un punto di partenza - Un meccanismo per l'interazione uomo - robot tramite comandi vocali informali . Usa qualcosa chiamato Analisi semantica latente per confrontare le espressioni. Lo leggerò. Almeno mi ha dato un punto di partenza nella rete di citazioni.
Modifica 2: LSA sta essenzialmente confrontando le parole usate (Bag of Words) in ogni paragrafo del testo. Non vedo come possa funzionare molto bene in questo caso in quanto perde totalmente l'ordine delle parole. Anche se forse l'ordine delle parole non ha molta importanza per questo tipo di comandi.
Modifica 3: Argomento nascosto I modelli di Markov sembrano essere interessanti.