Alice ajudará os desenvolvedores a encontrar objetos nas solicitações do usuário. NER em caixas de diálogo

Na primavera, lançamos a plataforma Dialogs , que permite criar habilidades para Alice e reconhecer solicitações de voz dos usuários. Inicialmente, os desenvolvedores de habilidades precisavam analisar as próprias consultas. Por exemplo, encontre o endereço no texto. Agora a plataforma assume essa parte do trabalho.

Hoje, contaremos aos leitores da Habr sobre o reconhecimento das entidades nomeadas (reconhecimento de entidade nomeada; NER) e novas oportunidades para desenvolvedores de habilidades.



Acreditamos que o futuro está com interfaces de voz. Atualmente, em muitos casos, os usuários preferem usar a voz em vez de um teclado na tela. Por exemplo, ao dirigir um carro. Ou para encontrar respostas rápidas para perguntas simples. Ou para jogar na "cidade" deitada no sofá. Mas, para que esses cenários se tornem cada vez mais, simplesmente reconhecer a voz no texto não é suficiente.

As interfaces de voz são semelhantes às consultas do mecanismo de pesquisa. Nem sempre entendemos exatamente como formular nossa solicitação para encontrar exatamente o que precisamos. No início da formação da Internet, esse era um grande problema, porque os mecanismos de pesquisa procuravam apenas as ocorrências exatas de palavras da consulta. Assim com a voz. Se não soubermos qual equipe é esperada de nós, adivinharemos por um longo tempo.

Uma boa interface de voz não deve levar uma pessoa a um beco sem saída. Normalmente, os desenvolvedores de habilidades resolvem isso com dois truques. Primeiro de tudo, as respostas esperadas são solicitadas usando os botões na tela. Essa é uma boa prática que recomendamos não ignorar.

Além disso, os criadores de habilidades tentam dividir perguntas complexas em uma série de perguntas mais simples, cujas respostas são mais fáceis de prever. Além disso, em alguns casos, os usuários são obrigados a pronunciar palavras estritamente de uma certa forma e caso. O problema dessa abordagem é que ela não pode mais ser chamada de comunicação natural. Quanto mais convenções e limitações, menos controle de voz difere do uso de teclado e botões. Idealmente, o usuário deve se comunicar com o serviço tão livremente quanto com uma pessoa.

É bom quando o usuário pode dizer "Obrigado! Entregue o pedido a Leo Tolstoi 16 e entregue-o a Sergey Sergeyev ”, em vez de dividi-lo em uma série de perguntas sobre a rua, número da residência, nome e sobrenome. Mas isso exigirá que o desenvolvedor analise melhor as respostas recebidas. Você pode fazer isso manualmente pelo operador, mas com um grande fluxo de operadores, será necessário muito. E é improvável que os operadores façam isso em tempo real; portanto, a habilidade perderá a oportunidade de esclarecer as informações ausentes imediatamente. Você pode desenvolver uma tecnologia que encontre automaticamente informações importantes no texto, classifique, normalize e salve. Mas esta é uma tarefa bastante trabalhosa.

Para extrair com eficiência entidades úteis do texto e classificá-las corretamente por tipo, o serviço deve ter experiência em duas direções importantes. Primeiro de tudo, você precisa poder coletar conhecimento sobre o que são objetos. Se você não tem Leo Tolstoy Street no "dicionário", ao processar uma solicitação, é fácil confundi-la com o nome da pessoa e pular. Por outro lado, é igualmente importante poder encontrar esses objetos no texto bruto do usuário. No mínimo, leve em consideração a morfologia da língua russa para que a palavra "Sergey" seja encontrada e se transforme no nome "Sergey".

Aconteceu que o Yandex tem muita experiência nessas áreas. As tecnologias de pesquisa são usadas para procurar novos objetos e analisar as consultas do usuário. Agora, essas tecnologias também estão disponíveis para desenvolvedores de habilidades para Alice.

Reconhecendo entidades nomeadas em caixas de diálogo


Depois que um usuário pronuncia um comando, nossa plataforma reconhece seu texto e extrai palavras e frases que descrevem objetos específicos. Atualmente, os Diálogos reconhecem:

- nomes;
- indicações de localização;
- datas e hora;
- números inteiros e fracionários.

As informações sobre objetos reconhecidos são enviadas ao servidor de habilidades juntamente com o texto de resposta do usuário. Considere um exemplo:

“Peça pizza no Leo Tolstoy 16 para Sergey Sergeyev às 22h”

Nossa plataforma sabe que Leo Tolstoi não é apenas uma pessoa, mas também uma rua. Ela também leva em consideração que nos endereços próximos aos nomes das ruas geralmente indicam os números das casas. Portanto, a solicitação de habilidade conterá o seguinte bloco:

{ "type": "YANDEX.GEO", "value": { "house_number": "16", "street": " " } } 

Os locais podem incluir não apenas a rua e a casa, mas também a cidade, o país ou até o aeroporto.

Com nomes, isso funciona da mesma maneira. A plataforma pode encontrar o nome, sobrenome, nome do meio e trazê-los para o caso nominativo.

 { "type": "YANDEX.FIO", "value": { "first_name": "", "last_name": "" } } 

A normalização de dados é um recurso importante do reconhecimento de entidades nomeadas. Se para endereços e nomes essa propriedade não é tão óbvia, então com datas e horas tudo fica muito mais claro. "22:00" se transforma automaticamente em "22". Amanhã e depois de amanhã aumentam explicitamente as datas.

 { "type": "YANDEX.DATETIME", "value": { "hour_is_relative": false, "hour": 22 } } 

O reconhecimento de números também não deve ser subestimado. Por exemplo, "quatro pontos cinco décimos" em um texto de um usuário se transformará em:

 { "type": "YANDEX.NUMBER", "value": 4.5 } 

Interessado em? Convidamos você para a documentação . Se as perguntas persistirem, bem-vindo ao nosso bate-papo no Telegram . É conveniente acompanhar outras notícias da plataforma no blog .

Source: https://habr.com/ru/post/pt425331/


All Articles