Alexa de Amazon , Mix de Nuance y Wit.ai de Facebook usan un sistema similar para especificar cómo convertir un comando de texto en una intención, es decir, algo que una computadora entendería. No estoy seguro de cuál es el nombre "oficial" para esto, pero lo llamo "reconocimiento de intenciones". Básicamente, una forma de pasar de "por favor configure mis luces a 50% de brillo" a lights.setBrightness(0.50)
.
La forma en que se especifican es haciendo que el desarrollador proporcione una lista de "enunciados de muestra" que están asociados con una intención, y opcionalmente etiquetados con ubicaciones de "entidades" (básicamente parámetros). Aquí hay un ejemplo de Wit.ai:
Mi pregunta es: ¿cómo funcionan estos sistemas? Como todos son muy similares, supongo que hay un trabajo fundamental que todos utilizan. ¿Alguien sabe qué es esto?
Curiosamente Houndify utiliza un sistema diferente que es más como expresiones regulares: ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]
. Supongo que está integrado en la búsqueda de haz de su sistema de reconocimiento de voz, mientras que Alexa, Wit.ai y Mix parecen tener sistemas separados de Voz-> Texto y Texto-> Intención.
Editar: Encontré un punto de partida: un mecanismo para la interacción humano - robot a través de comandos de voz informales . Utiliza algo llamado Análisis semántico latente para comparar enunciados. Voy a leer sobre eso. Al menos me ha dado un punto de partida en la red de citas.
Edición 2: LSA está esencialmente comparando las palabras utilizadas (Bolsa de palabras) en cada párrafo del texto. No veo cómo puede funcionar muy bien para este caso, ya que pierde totalmente el orden de las palabras. Aunque tal vez el orden de las palabras no importa mucho para este tipo de comandos.
Edición 3: Tema oculto Los modelos de Markov parecen ser interesantes.