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.
fuente
Respuestas:
Aunque no responda directamente a su pregunta, puede estar interesado en el campo de la respuesta automática a preguntas . Para responder preguntas de texto en lenguaje natural, primero deben entenderse, lo que se superpone con su problema.
Un buen recurso es el curso de Jurafsky y Manning . En particular, las secciones sobre semántica y respuesta de preguntas pueden ayudarlo con lo que está buscando. Hay videos de conferencias disponibles en YouTube aquí .
fuente
Esta publicación tiene un enfoque. Básicamente usan una bolsa de palabras: convierten las palabras en vectores dispersos y luego las suman.
Parece funcionar bastante bien, pero una falla importante es que la respuesta es independiente del orden de las palabras, por lo que no puede hacer consultas como "¿Cuántos kilos en una libra?" A menos que las ponga en un caso especial.
Sin embargo, escribí un mensaje de texto con Alexa y es bastante insensible a los cambios en el orden de las palabras, por lo que tal vez usan algo similar.
fuente