Planejar o esquema do aplicativo LUIS com a extração de dados e domínio do assuntoPlan your LUIS app schema with subject domain and data extraction

Um esquema de aplicativo LUIS contém intenções e entidades relevantes para seu domíniode assunto.A LUIS app schema contains intents and entities relevant to your subject domain. As intenções classificam declaraçõesdo usuário e as entidades extraem dados do declarações do usuário.The intents classify user utterances, and the entities extract data from the user utterances.

Identificar seu domínioIdentify your domain

Um aplicativo LUIS é centralizado em um domínio de assunto.A LUIS app is centered around a subject domain. Por exemplo, você pode ter um aplicativo de viagem que lide com a reserva de ingressos, vôos, hotéis e carros de aluguel.For example, you may have a travel app that handles booking of tickets, flights, hotels, and rental cars. Outro aplicativo pode fornecer conteúdo relacionado a exercícios, acompanhamento de esforços fitness e definição de metas.Another app may provide content related to exercising, tracking fitness efforts and setting goals. Identificar o domínio ajuda a localizar palavras ou frases relevantes para seu domínio.Identifying the domain helps you find words or phrases that are relevant to your domain.

Dica

O LUIS oferece domínios predefinidos para muitos cenários comuns.LUIS offers prebuilt domains for many common scenarios. Verifique para ver se é possível usar um domínio predefinido como ponto de partida para seu aplicativo.Check to see if you can use a prebuilt domain as a starting point for your app.

Identificar suas intençõesIdentify your intents

Pense nas intenções que são importantes para a tarefa do seu aplicativo.Think about the intents that are important to your application's task.

Vamos usar o exemplo de um aplicativo de viagem, com funções para reservar um voo e verificar o clima no destino do usuário.Let's take the example of a travel app, with functions to book a flight and check the weather at the user's destination. Você pode definir as BookFlight GetWeather tentativas e para essas ações.You can define the BookFlight and GetWeather intents for these actions.

Em um aplicativo mais complexo com mais funções, você tem mais intenções e deve defini-las com cuidado para que as intenções não sejam muito específicas.In a more complex app with more functions, you have more intents, and you should define them carefully so the intents aren't too specific. Por exemplo, BookFlight e BookHotel talvez precisem de tentativas separadas, mas BookInternationalFlight BookDomesticFlight pode ser muito semelhante.For example, BookFlight and BookHotel may need to be separate intents, but BookInternationalFlight and BookDomesticFlight may be too similar.

Observação

É uma melhor prática usar apenas as intenções de que você precisar para executar as funções do seu aplicativo.It is a best practice to use only as many intents as you need to perform the functions of your app. Se você definir intenções demais, ficará mais difícil para o LUIS classificar declarações corretamente.If you define too many intents, it becomes harder for LUIS to classify utterances correctly. Se você definir poucos, eles poderão ser tão gerais que se sobrepõem.If you define too few, they may be so general that they overlap.

Se você não precisar identificar a intenção geral do usuário, adicione todos os declarações de usuário de exemplo à None intenção.If you don't need to identify overall user intention, add all the example user utterances to the None intent. Se seu aplicativo aumentar a necessidade de mais intenções, você poderá criá-los mais tarde.If your app grows into needing more intents, you can create them later.

Crie exemplos de declarações para cada intençãoCreate example utterances for each intent

Para começar, Evite criar muitas declarações para cada tentativa.To begin with, avoid creating too many utterances for each intent. Depois de determinar as intenções, crie um exemplo de 15 a 30 declarações por tentativa.Once you have determined the intents, create 15 to 30 example utterances per intent. Cada expressão deve ser diferente do declarações fornecido anteriormente.Each utterance should be different from the previously provided utterances. Uma boa variedade no declarações inclui contagem geral de palavras, opções de palavras, conjugação de verbo e Pontuação.A good variety in utterances include overall word count, word choice, verb tense, and punctuation.

Para obter mais informações, consulte Understanding Good declarações for Luis apps.For more information, see understanding good utterances for LUIS apps.

Identificar suas entidadesIdentify your entities

Nos exemplos de declarações, identifique as entidades que você deseja extrair.In the example utterances, identify the entities you want extracted. Para reservar um vôo, você precisa de informações como o destino, a data, a companhia aérea, a categoria de tíquete e a classe de viagem.To book a flight, you need information like the destination, date, airline, ticket category, and travel class. Crie entidades para esses tipos de dados e marque as entidades no exemplo declarações.Create entities for these data types and then mark the entities in the example utterances. As entidades são importantes para realizar uma intenção.Entities are important for accomplishing an intent.

Ao determinar quais entidades usar em seu aplicativo, tenha em mente que existem diferentes tipos de entidades para capturar relações entre tipos de objeto.When determining which entities to use in your app, keep in mind that there are different types of entities for capturing relationships between object types. Entidades no LUIS oferece mais detalhes sobre os tipos diferentes.Entities in LUIS provides more detail about the different types.

Dica

O LUIS oferece entidades predefinidas para cenários de usuário comuns e de conversação.LUIS offers prebuilt entities for common, conversational user scenarios. Considere o uso de entidades predefinidas como um ponto de partida para o desenvolvimento de aplicativos.Consider using prebuilt entities as a starting point for your application development.

Resolução com intenção ou entidade?Resolution with intent or entity?

Em muitos casos, especialmente ao trabalhar com conversa natural, os usuários fornecem um expressão que pode conter mais de uma função ou intenção.In many cases, especially when working with natural conversation, users provide an utterance that can contain more than one function or intent. Para resolver isso, uma regra básica geral é entender que a representação da saída pode ser feita tanto em intenções quanto em entidades.To address this, a general rule of thumb is to understand that the representation of the output can be done in both intents and entities. Essa representação deve ser mapeada para suas ações de aplicativo cliente e não precisa ser limitada às intenções.This representation should be mappable to your client application actions, and it doesn't need to be limited to the intents.

Int-ent-Ties é o conceito que as ações (geralmente compreendidas como intenções) também podem ser capturadas como entidades e confiadas nesse formulário no JSON de saída, onde você pode mapeá-la para uma ação específica.Int-ent-ties is the concept that actions (usually understood as intents) could also be captured as entities and relied on in this form in the output JSON where you can map it to a specific action. A negação é um uso comum para aproveitar essa dependência em ambas as intenções e entidades para extração completa.Negation is a common usage to leverage this reliance on both intent and entity for full extraction.

Considere as duas declarações a seguir, que são muito próximas Considerando a escolha do Word, mas têm resultados diferentes:Consider the following two utterances which are very close considering word choice but have different results:

EnunciadoUtterance
Please schedule my flight from Cairo to Seattle
Cancel my flight from Cairo to Seattle

Em vez de ter duas intenções separadas, crie uma única intenção com uma FlightAction entidade de aprendizado de máquina.Instead of having two separate intents, create a single intent with a FlightAction machine learning entity. A entidade de aprendizado de máquina deve extrair os detalhes da ação para um agendamento e uma solicitação de cancelamento, bem como um local de origem ou de destino.The machine learning entity should extract the details of the action for both a scheduling and a cancelling request as well as either a origin or destination location.

A FlightAction entidade seria estruturada no seguinte suedo de entidades de aprendizado de máquina e subentidades:The FlightAction entity would be structured in the following suedo-schema of machine learning entity and subentities:

  • VooactionFlightAction
    • AçãoAction
    • OrigemOrigin
    • DestinoDestination

Para ajudar a extração, adicione recursos às subentidades.To help the extraction add features to the subentities. Você escolherá seus recursos com base no vocabulário que espera ver no usuário declarações e os valores que você deseja que sejam retornados na resposta de previsão.You will choose your features based on the vocabulary you expect to see in user utterances and the values you want returned in the prediction response.

Próximas etapasNext steps