Extrair dados de um texto do enunciado com intenções e entidades

Importante

O LUIS será desativado em 1º de outubro de 2025 e, a partir de 1º de abril de 2023, você não poderá criar novos recursos do LUIS. É recomendável migrar seus aplicativos LUIS para a compreensão da linguagem coloquial a fim de usufruir do suporte contínuo ao produto e dos recursos multilíngues.

O LUIS oferece a capacidade de obter informações de declarações de idioma natural de um usuário. As informações são extraídas de forma que possam ser usadas por um programa, aplicativo ou chat bot para executar uma ação. Nas seções a seguir, saiba quais dados são retornados de intenções e entidades com exemplos de JSON.

Os dados mais difíceis de extrair são dados de machine learning, porque eles não são uma correspondência exata do texto. A extração de dados das entidades de machine learning precisa fazer parte do ciclo de criação até que você esteja confiante para receber os dados esperados.

Local dos dados e uso da chave

O LUIS extrai os dados do enunciado do usuário no ponto de extremidade publicado. A solicitação HTTPS (POST ou GET) contém a declaração, assim como algumas configurações opcionais, como ambientes de preparo ou de produção.

Solicitação de ponto de extremidade de previsão V2

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&q=book 2 tickets to paris

Solicitação de ponto de extremidade de previsão V3

https://westus.api.cognitive.microsoft.com/luis/v3.0-preview/apps/<appID>/slots/<slot-type>/predict?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&query=book 2 tickets to paris

O appID estará disponível na página Configurações do aplicativo LUIS, assim como parte da URL (após /apps/) quando você estiver editando esse aplicativo do LUIS. A subscription-key é a chave do ponto de extremidade usada para consultar seu aplicativo. Embora seja possível usar a chave início/criação gratuita enquanto estiver treinando o LUIS, é importante alterar a chave de ponto de extremidade para uma chave que dê suporte ao uso esperado do LUIS. A unidade timezoneOffset é de minutos.

A resposta HTTPS contém todas as informações de intenção e de entidade que o LUIS pode determinar com base no modelo publicado atual do ponto de extremidade de preparo ou de produção. A URL de ponto de extremidade é encontrada no site LUIS, na seção Gerenciar, na página Chaves e os pontos de extremidade.

Dados de intenções

Os dados primários são o nome da intenção da pontuação mais alta. A resposta do ponto de extremidade é:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "entities": []
}
Objeto de dados Tipo de Dados Local dos dados Valor
Intencional Cadeia de caracteres topScoringIntent.intent "GetStoreInfo"

Se o chatbot ou o aplicativo que chama o LUIS tomar uma decisão com base em mais de uma pontuação de intenção, retorne todas as pontuações das intenções.

Defina o parâmetro querystring verbose=true. A resposta do ponto de extremidade é:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "intents": [
    {
      "intent": "GetStoreInfo",
      "score": 0.984749258
    },
    {
      "intent": "None",
      "score": 0.2040639
    }
  ],
  "entities": []
}

As intenções são ordenadas da pontuação mais alta para a mais baixa.

Objeto de dados Tipo de Dados Local dos dados Valor Pontuação
Intencional Cadeia de caracteres intents[0].intent "GetStoreInfo" 0,984749258
Intencional Cadeia de caracteres intents[1].intent "None" 0,0168218873

Se você adicionar domínios predefinidos, o nome da intenção indicará o domínio, como Utilties ou Communication, assim como a intenção:

{
  "query": "Turn on the lights next monday at 9am",
  "topScoringIntent": {
    "intent": "Utilities.ShowNext",
    "score": 0.07842206
  },
  "intents": [
    {
      "intent": "Utilities.ShowNext",
      "score": 0.07842206
    },
    {
      "intent": "Communication.StartOver",
      "score": 0.0239675418
    },
    {
      "intent": "None",
      "score": 0.0168218873
    }],
  "entities": []
}
Domínio Objeto de dados Tipo de Dados Local dos dados Valor
Utilitários Intencional Cadeia de caracteres intents[0].intent "Utilities.ShowNext"
Comunicação Intencional Cadeia de caracteres intents[1].intent Communication.StartOver"
Intencional Cadeia de caracteres intents[2].intent "None"

Dados de entidades

A maioria dos chatbots e aplicativos precisam de mais do que o nome da intenção. Esses dados adicionais e opcionais são provenientes de entidades descobertas na declaração. Cada tipo de entidade retorna diferentes informações sobre a correspondência.

Uma única palavra ou frase em uma declaração pode corresponder a mais de uma entidade. Nesse caso, cada entidade de correspondência é retornada com sua pontuação.

Todas as entidades são retornadas na matriz de entidades da resposta do ponto de extremidade

Entidade indexada retornada

Examine o suporte de token no LUIS.

Dados de entidade predefinida

Entidades predefinidas são descobertas com base em uma correspondência de expressão regular usando o projeto Recognizers-Text de software livre. Entidades predefinidas são retornadas na matriz de entidades e usam o nome do tipo que começa com builtin::.

Dados da entidade Lista

As entidades de lista representam um conjunto fixo e fechado de palavras relacionadas, juntamente com os respectivos sinônimos. O LUIS não descobre valores adicionais para entidades de lista. Use o recurso Recomendado para consultar sugestões de novas palavras com base na lista atual. Se houver mais de uma entidade de lista com o mesmo valor, cada entidade será retornada na consulta de ponto de extremidade.

Dados de entidade de expressão regular

Uma entidade de expressão regular extrai uma entidade com base em uma expressão regular fornecida por você.

Extraindo nomes

Obter nomes de uma declaração é difícil, porque um nome pode ser quase qualquer combinação de letras e palavras. Dependendo de qual tipo de nome você está extraindo, haverá várias opções. As sugestões a seguir não são regras, mas mais diretrizes.

Adicionar entidades PersonName e GeographyV2 predefinidas

As entidades PersonName e GeographyV2 estão disponíveis em algumas culturas de linguagem.

Nomes de pessoas

Os nomes de pessoas podem ter um formato pequeno dependendo do idioma e da cultura. Use uma entidade personName predefinida ou uma entidade simples com funções de nome e sobrenome.

Se você usar a entidade simples, dê exemplos que usam o nome e o sobrenome em diferentes partes do enunciado, em enunciados de comprimentos diferentes e em enunciados de todas as intenções, incluindo a intenção None. Examine declarações de ponto de extremidade regularmente para rotular nomes que não foram previstos corretamente.

Nomes de locais

Os nomes de localização são definidos e conhecidos, como cidades, municípios, estados, províncias e países/regiões. Use a entidade predefinida geographyV2 para extrair informações de localização.

Nomes novos e emergentes

Alguns aplicativos precisam poder encontrar nomes novos e emergentes, como produtos ou empresas. Esses tipos de nomes são o tipo mais difícil para extração de dados. Comece com uma entidade simples e adicione uma lista de frases. Examine declarações de ponto de extremidade regularmente para rotular nomes que não foram previstos corretamente.

Dados de entidade pattern.any

Pattern.any é um espaço reservado de tamanho variável usado apenas em um enunciado de modelo de padrão para marcar onde a entidade começa e termina. A entidade usada no padrão precisa ser encontrada para que o padrão seja aplicado.

Análise de sentimento

Se a análise de sentimento for configurada durante a publicação, a resposta LUIS json incluirá a análise de sentimento. Saiba mais sobre a análise de sentimento na documentação Serviço de linguagem.

Dados de entidade de extração de frases-chave

A entidade de extração de frases-chave retorna frases-chave no enunciado, que são fornecidas pelo Serviço de linguagem.

Dados que correspondem a várias entidades

O LUIS retorna todas as entidades descobertas na declaração. Como resultado, o seu chatbot pode precisar tomar uma decisão com base nos resultados.

Dados que correspondem a várias entidades de lista

Se uma palavra ou frase for correspondente a mais de uma entidade de lista, a consulta de ponto de extremidade retornará cada entidade de lista.

Na consulta when is the best time to go to red rock?, se o aplicativo tiver a palavra red em mais de uma lista, o LUIS reconhecerá todas as entidades e retornará uma matriz de entidades como parte da resposta do ponto de extremidade JSON.

Próximas etapas

Confira Adicionar entidades para saber como adicionar entidades ao seu aplicativo LUIS.