Introdução
No artigo anterior, apresentei conceitos importantes para definição do modelo usado por uma aplicação do LUIS.
Agora vamos conversar sobre detalhes deste modelo.
Criando o modelo
O modelo preditivo do LUIS tenta identificar padrões da linguagem humana para interpretar o conteúdo de uma conversação através da interação entre os conceitos de intenção, entidade e sentenças.
O diagrama a seguir ilustra como a estrutura de uma sentença pode ser compreendida de diversas formas.
No caso, solicitante é sempre a pessoa que interage com o LUIS. O objetivo é identificar a ação (intenção) e o objeto (entidade) da sentença.
A criação do modelo preditivo começa pela identificação das principais ações relacionadas ao tema da aplicação, ou seja, as intenções que se pretende identificar com o modelo.
As intenções devem necessariamente ser bem distintas uma das outras para garantir um bom nível de acerto da aplicação. Em termos práticos, a ideia de eliminar ambiguidades está diretamente associada à capacidade de treinar o modelo com sentenças suficientemente distintas a ponto de caracterizar cada uma das intenções escolhidas.
Para fins de exemplo, consideremos um modelo de uma agência de turismo em que precisamos reconhecer as seguintes intenções:
- Intenções escolhidas
- Comprar
- Cancelar
- Pagar
O segundo passo é escolher as entidades, que são os objetos sobre os quais agiremos.
Entidades
- Produto (“passagem aérea”, “hotel”, “pacote turístico”, “voo”).
- Pedido (valor numérico – ordinal).
- Preço (valor numérico – moeda).
- Condição (“à vista”, “à prazo”, “parcelamento”).
Finalmente, precisamos definir as sentenças que serão usadas para treinar cada intenção do modelo e mapear as entidades dentro de cada sentença. No caso, eu selecionei cinco sentenças para cada ação. A listagem a seguir mostra estas sentenças.
Como construir uma aplicação
O meio mais fácil de se criar uma aplicação do LUIS é utilizando a interface online em www.luis.ai. Para situações mais específicas, é possível construir aplicações customizadas usando a sua API de programação.
O roteiro a seguir mostra a criação da aplicação via interface online. Após se conectar na sua conta do Azure, clique o botão Create new app para iniciar uma nova aplicação, informe os dados solicitados e clique o botão Done. É muito importante informar que a língua usada é “Brazilian Portuguese”.
A tela seguinte permite o cadastramento das intenções que se pretende reconhecer. Observe que a intenção default (“None” ou nenhuma intenção) já faz parte do modelo. A “None” serve para apontar sentenças que aparentemente não têm conexão com nenhuma das intenções que se deseja identificar.
Cadastre todas as intenções do modelo. Neste ponto, não é necessário se preocupar com as sentenças de treinamento, porque ainda não existem as entidades que vão se associar a estas intenções.
O passo seguinte é criar as entidades do modelo, informando o tipo considerado para cada uma delas. Veja o caso do cadastramento da entidade “Condição de Pagamento”, chamada aqui apenas de condição.
Por se tratar de uma lista de valores, para a entidade condição é preciso informar os elementos reconhecidos e sinônimos de cada elemento. Neste ponto, pode ser útil cadastrar sinônimos com erros ortográficos, considerando que o solicitante pode enviar uma requisição com este tipo de problema.
Pensando nisso, eu cadastrei os seguintes elementos e seus “sinônimos”.
A Seguir
Uma vez cadastradas todas as intenções e entidades, podemos iniciar o treinamento do modelo para uso em produção, o que será objeto do próximo artigo desta série.
Até lá!