Opções de entidade

Existem várias opções de entidades que alteram o comportamento da correspondência de entidades e da extração de dados. Estas opções estão pré-configuradas para entidades do sistema, pelo que não as pode alterar para entidades do sistema. No entanto, pode alterá-las para as suas próprias entidades personalizadas. Pode criar diferentes tipos de entidades, consoante as opções selecionadas:

Também existem duas opções que não determinam o tipo de entidade, mas afetam o comportamento da correspondência de entidades:

Este documento descreve cada uma destas opções.

Onde encontrar estes dados

Ao criar um agente, é mais comum usar a consola do Dialogflow ES (visite a documentação, abra a consola). As instruções abaixo focam-se na utilização da consola. Para aceder aos dados das opções de entidades:

  1. Aceda à consola do Dialogflow ES.
  2. Selecione um agente.
  3. Selecione Entidades no menu da barra lateral do lado esquerdo.
  4. Selecione o separador Personalizado para entidades personalizadas definidas para o seu agente ou o separador Sistema para entidades do sistema usadas pelo seu agente.
  5. Veja as seguintes opções de caixa de verificação para todas as entidades existentes:
    • Defina sinónimos
    • Entidade Regexp (apenas entidade personalizada)
    • Permitir expansão automática (apenas para entidades personalizadas)
    • Correspondência aproximada (apenas entidade personalizada)

Se estiver a criar um agente através da API em vez da consola, consulte a referência EntityTypes. Os nomes dos campos da API são semelhantes aos nomes dos campos da consola. As instruções abaixo realçam as diferenças importantes entre a consola e a API.

Mapeie a entidade

As entidades de mapeamento fornecem um mapa de valores de referência para sinónimos de cada valor de referência. Cada entrada da entidade de mapeamento contém um único valor de referência e uma lista de sinónimos. Por exemplo, cada uma das seguintes linhas são entradas de entidades para um size tipo de entidade:

Valor de referência Sinónimos
S S, pequeno, minúsculo
M M, médio, razoável
L L, grande, enorme, grande

Repare que o valor de referência está incluído na lista de sinónimos para cada entrada de entidade acima. Para que um valor de referência seja correspondido, tem de ser incluído como um sinónimo. Quando introduz inicialmente um valor de referência com a consola, este é adicionado automaticamente como sinónimo.

Se algum dos sinónimos corresponder a uma parte da expressão do utilizador final, o valor de referência associado é extraído para a correspondência e é usado para resolver o valor do parâmetro associado.

Não há problema em omitir o valor de referência da lista de sinónimos. Isto significa apenas que não corresponde a uma parte da expressão do utilizador final, mas é usado como o valor extraído quando um dos seus sinónimos corresponde. Isto é desejável quando usa strings especiais para valores de referência que não são introduzidos nem falados pelos utilizadores finais.

Muitas entidades do sistema são entidades de mapas. Por exemplo, a entidade do sistema @sys.date corresponde a entradas de data comuns, como "1 de janeiro de 2015" ou "O primeiro de janeiro de 2015". Ambas as entradas são mapeadas para um valor de referência no formato ISO-8601: "2015-01-01T12:00:00-03:00".

Para criar uma entidade de mapa:

  • Na consola, desmarque a opção Entidade Regexp e marque a opção Definir sinónimos.
  • Usando a API, defina o campo EntityType kind como KIND_MAP.

Entidade de lista

As entidades de lista fornecem uma lista de entradas de entidades de valor único. Não têm valores de referência nem sinónimos. Por exemplo, cada uma das seguintes linhas são entradas de entidades para um material tipo de entidade:

Valor
tecido
madeira
metal

Se for encontrada uma correspondência para qualquer valor de uma parte da expressão do utilizador final, o valor é extraído para a correspondência e é usado para resolver o valor do parâmetro associado.

Muitas entidades do sistema são entidades de lista. Por exemplo, a entidade do sistema @sys.color corresponde a entradas de cores comuns, como "vermelho" ou "azul". Quando é encontrada uma correspondência de uma cor, o valor extraído não é mapeado para nenhum valor de referência. Por exemplo, os tons de vermelho, como "escarlate" ou "carmesim", não são mapeados para "vermelho" e são extraídos como os respetivos valores originais "escarlate" e "carmesim".

Para criar uma entidade de lista:

  • Na consola, desmarque a opção Entidade de expressão regular e desmarque a opção Definir sinónimos.
  • Usando a API, defina o campo EntityType kind como KIND_LIST.

Entidade composta

Uma entidade composta é um tipo especial de entidade de lista. As entradas de entidades para entidades de lista contêm normalmente palavras ou expressões simples, mas também podem conter outros tipos de entidades. Quando um tipo de entidade é referenciado noutro tipo de entidade, a referência é denominada alias. Quando uma entidade de lista contém alias para outros tipos de entidades, é denominada entidade composta.

Quando cria um alias, indica o nome do tipo de entidade referenciado e um nome de propriedade à sua escolha. Quando uma entidade composta é correspondida durante o tempo de execução, o valor extraído é devolvido como um objeto JSON, com nomes de propriedades de alias usados como nomes de propriedades JSON. O formato para introduzir um alias é:

@entity-name:property-name

Por exemplo, pode criar um tipo de entidade place que corresponda a uma cidade ou a um estado com as seguintes entradas de entidades:

Valor
@sys.geo-city:city
@sys.geo-state:state

Se uma expressão do utilizador final contiver uma parte "Nashville", o tipo de entidade place é correspondente. O valor extraído é devolvido como: {"city": "Nashville"}.

Também pode usar vários alias de entidades numa entrada de entidade. Considere o seguinte tipo de entidade personalizada move que contém alias para um tipo de entidade direction e o tipo de entidade do sistema @sys.number:

Tipo de entidade de mapa personalizado de direção:

Valor de referência Sinónimos
avançar para a frente
anterior para trás, retroceder, retroceder

Mova o tipo de entidade da lista personalizada:

Valor
@sys.number:steps passos @direction:direction

Se a entidade move corresponder a uma expressão do utilizador final que contenha "cinco passos para trás", a entidade move vai corresponder. O valor extraído é devolvido como: {"steps": 5, "direction": "back"}.

Muitas entidades do sistema são entidades compostas. Por exemplo, a entidade do sistema @sys.unit-currency é usada para fazer corresponder quantias de dinheiro com o nome de uma moeda. Corresponde a expressões do utilizador final, como "50 euros" ou "vinte dólares e cinco cêntimos". O valor extraído é devolvido como um objeto JSON, como: {"amount": 50, "currency": "EUR"}

Entidade de expressão regular

Com as entidades regexp, pode fornecer expressões regulares para correspondência. Para mais informações, consulte o artigo Entidades Regexp.

Para criar uma entidade de expressão regular:

  • Na consola, selecione a opção Entidade de expressão regular.
  • Usando a API, defina o campo EntityType kind como KIND_REGEXP.

Expansão automática

Pode ativar a expansão automática para um tipo de entidade personalizado. Quando ativado, o seu agente pode reconhecer valores que não foram fornecidos explicitamente. Por exemplo, considere um tipo de entidade de lista de compras:

Valor
pão
manteiga
leite
maçã
gelado

Se uma expressão do utilizador final for "Preciso de comprar algumas cenouras", o termo "cenouras" vai ser correspondido para este tipo de entidade, mesmo que não seja fornecido. O agente reconhece que "cenouras" é contextualmente semelhante a outros valores.

Deve seguir as práticas recomendadas quando considerar a expansão automática:

  • A ativação da expansão automática não garante a extração de entidades. Para uma lista finita, deve fornecer a lista completa em vez de fornecer uma lista parcial e ativar a expansão automática.
  • Se ativar a expansão automática em mais do que uma entidade, pode causar conflitos e resultados de classificação inesperados.
  • Para garantir uma melhor qualidade de extração de parâmetros, é fundamental fornecer dados de preparação diversificados que cubram todos os exemplos de utilização em que uma determinada entidade pode ser encontrada no tráfego esperado do agente. Se não tiver exemplos suficientes, a expansão de entidades automatizada pode não funcionar como esperado.

Para ativar a expansão automática:

  • Na consola, selecione a opção Permitir expansão automática.
  • Usando a API, defina o campo EntityType autoExpansionMode como AUTO_EXPANSION_MODE_DEFAULT.

Correspondência semelhante

Pode ativar a correspondência aproximada para uma entidade personalizada. Com a correspondência aproximada ativada, a ordem das palavras num valor ou num sinónimo não é importante. Para mais informações, consulte o artigo Correspondência aproximada.

Para ativar a correspondência aproximada:

  • Na consola, selecione a opção Correspondência aproximada.
  • Usando a API, defina o campo EntityType enableFuzzyExtraction como true.