Alexa da Amazon , Mix da Nuance e Wit.ai do Facebook usam um sistema semelhante para especificar como converter um comando de texto em uma intenção - ou seja, algo que um computador entenderia. Não sei ao certo qual é o nome "oficial" para isso, mas o chamo de "reconhecimento de intenção". Basicamente, uma maneira de passar de "defina minhas luzes para 50% de brilho" para lights.setBrightness(0.50)
.
A maneira como eles são especificados é solicitando que o desenvolvedor forneça uma lista de "declarações de amostra" associadas a uma intenção e opcionalmente identificadas com os locais de "entidades" (basicamente parâmetros). Aqui está um exemplo do Wit.ai:
Minha pergunta é: como esses sistemas funcionam? Como todos eles são muito parecidos, presumo que exista algum trabalho seminal que todos utilizem. Alguém sabe o que é isso?
Curiosamente Houndify usa um sistema diferente, que é mais parecido com expressões regulares: ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]
. Suponho que isso esteja integrado à busca por feixe do sistema de reconhecimento de voz, enquanto Alexa, Wit.ai e Mix parecem ter sistemas separados de Fala-> Texto e Texto-> Intenção.
Edit: Encontrei um ponto de partida - Um Mecanismo de Interação Humano-Robô através de Comandos Informais de Voz . Ele usa algo chamado Análise Semântica Latente para comparar enunciados. Eu vou ler sobre isso. Pelo menos, me deu um ponto de partida na rede de citações.
Edit 2: O LSA está comparando essencialmente as palavras usadas (Bag of Words) em cada parágrafo do texto. Não vejo como ele pode funcionar muito bem nesse caso, pois perde totalmente a ordem das palavras. Embora talvez a ordem das palavras não importe muito para esses tipos de comandos.
Editar 3: Tópico oculto Os modelos de Markov parecem interessantes.
fonte
Respostas:
Embora não esteja respondendo diretamente à sua pergunta, você pode estar interessado no campo de resposta automática a perguntas . Para responder a perguntas de texto em linguagem natural, primeiro elas devem ser entendidas, o que se sobrepõe ao seu problema.
Um bom recurso é o curso de Jurafsky e Manning . Particularmente as seções sobre semântica e resposta a perguntas podem ajudar com o que você está procurando. Existem vídeos de palestras em anexo disponíveis no youtube aqui .
fonte
Este post tem uma abordagem. Basicamente, eles usam um conjunto de palavras - eles convertem as palavras em vetores esparsos e as adicionam.
Parece funcionar razoavelmente bem, mas uma das principais falhas é a resposta, independentemente da ordem das palavras; portanto, você não pode fazer consultas como "Quantos quilos em uma libra", a menos que você as especifique.
No entanto, escrevi com Alexa e é bastante insensível às alterações na ordem das palavras, então talvez elas usem algo semelhante.
fonte