Extraia dados do texto do enunciado com intenções e entidades

Importante

O LUIS será aposentado em 1º de outubro de 2025 e a partir de 1º de abril de 2023 você não poderá criar novos recursos do LUIS. Recomendamos migrar seus aplicativos LUIS para o entendimento de linguagem conversacional para se beneficiar do suporte contínuo ao produto e dos recursos multilíngues.

O LUIS dá-lhe a capacidade de obter informações a partir dos enunciados em linguagem natural de um utilizador. As informações são extraídas de forma que possam ser usadas por um programa, aplicativo ou bot de chat para agir. 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 os dados de aprendizado de máquina porque não são uma correspondência exata de texto. A extração de dados das entidades de aprendizado de máquina precisa fazer parte do ciclo de criação até que você tenha certeza de que receberá os dados esperados.

Localização dos dados e utilização das chaves

O LUIS extrai dados do enunciado do usuário no ponto de extremidade publicado. A solicitação HTTPS (POST ou GET) contém o enunciado, bem como algumas configurações opcionais, como ambientes de preparação ou 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 está disponível na página Configurações do seu aplicativo LUIS, bem como parte do URL (após /apps/) quando você estiver editando esse aplicativo LUIS. A subscription-key é a chave de ponto de extremidade usada para consultar seu aplicativo. Embora você possa usar sua chave de criação/inicial gratuita enquanto estiver aprendendo LUIS, é importante alterar a chave do ponto de extremidade para uma chave que suporte o uso esperado do LUIS. A timezoneOffset unidade é de minutos.

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

Dados de intenções

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

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "entities": []
}
Objeto de dados Tipo de Dados Localização dos Dados valor
Intenção String topScoringIntent.intent "GetStoreInfo"

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

Defina o parâmetro querystring, verbose=true. A resposta do objetivo é:

{
  "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 Localização dos Dados valor Pontuação
Intenção String intenções[0].intenção "GetStoreInfo" 0.984749258
Intenção String intenções[1].intenção "Nenhuma" 0.0168218873

Se você adicionar domínios pré-criados, o nome da intenção indicará o domínio, como ou Communication assim como Utilties 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 Localização dos Dados valor
Utilitários Intenção String intenções[0].intenção "Serviços públicos. ShowNext"
Comunicação Intenção String intenções[1].intenção Comunicação. StartOver"
Intenção String intenções[2].intenção "Nenhuma"

Dados de entidades

A maioria dos chatbots e aplicativos precisa de mais do que o nome da intenção. Esses dados adicionais opcionais vêm de entidades descobertas no enunciado. Cada tipo de entidade retorna informações diferentes sobre a correspondência.

Uma única palavra ou frase em um enunciado pode corresponder a mais de uma entidade. Nesse caso, cada entidade correspondente é retornada com sua pontuação.

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

Entidade tokenizada retornada

Analise o suporte ao token no LUIS.

Dados de entidade pré-criados

As entidades pré-criadas são descobertas com base em uma correspondência de expressão regular usando o projeto de código aberto Recognizers-Text . As entidades pré-criadas são retornadas na matriz de entidades e usam o nome do tipo prefixado com builtin::.

Listar dados da entidade

As entidades de lista representam um conjunto fixo e fechado de palavras relacionadas, juntamente com seus sinônimos. O LUIS não descobre valores adicionais para entidades de lista. Use o recurso Recomendar para ver 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.

Extração de nomes

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

Adicionar entidades PersonName e GeographyV2 pré-criadas

As entidades PersonName e GeographyV2 estão disponíveis em algumas culturas linguísticas.

Nomes de pessoas

O nome das pessoas pode ter um formato ligeiro, dependendo da língua e da cultura. Use uma entidade personName pré-criada ou uma entidade simples com funções de nome e sobrenome.

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

Nomes dos locais

Os nomes dos locais são definidos e conhecidos, como cidades, condados, estados, províncias e países/regiões. Use a entidade pré-criada geographyV2 para extrair informações de localização.

Nomes novos e emergentes

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

Pattern.any dados de entidade

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

Análise de sentimentos

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

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

A entidade de extração de frase-chave retorna frases-chave no enunciado, fornecidas pelo serviço de idioma.

Dados que correspondem a várias entidades

LUIS retorna todas as entidades descobertas no enunciado. Como resultado, seu bot de bate-papo pode precisar tomar uma decisão com base nos resultados.

Dados correspondentes a várias entidades de lista

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

Para a consulta when is the best time to go to red rock?, e o aplicativo tem a palavra red em mais de uma lista, o LUIS reconhece todas as entidades e retorna uma matriz de entidades como parte da resposta do ponto de extremidade JSON.

Próximos passos

Consulte Adicionar entidades para saber mais sobre como adicionar entidades ao seu aplicativo LUIS.