Partilhar via


Componentes de entidades

Na compreensão da linguagem conversacional, as entidades são informações relevantes que são extraídas de seus enunciados. Uma entidade pode ser extraída por diferentes métodos. Eles podem ser aprendidos através do contexto, correspondidos a partir de uma lista ou detetados por uma entidade reconhecida pré-construída. Cada entidade em seu projeto é composta por um ou mais desses métodos, que são definidos como componentes da sua entidade.

Quando uma entidade é definida por mais de um componente, suas previsões podem se sobrepor. Você pode determinar o comportamento de uma previsão de entidade quando seus componentes se sobrepõem usando um conjunto fixo de opções nas opções de entidade.

Tipos de componentes

Um componente de entidade determina uma maneira de extrair a entidade. Uma entidade pode conter um componente, que determina o único método a ser usado para extrair a entidade. Uma entidade também pode conter vários componentes para expandir as maneiras pelas quais a entidade é definida e extraída.

Componente aprendido

O componente aprendido usa as tags de entidade com as quais você rotula seus enunciados para treinar um modelo aprendido por máquina. O modelo aprende a prever onde a entidade está baseada no contexto dentro do enunciado. Seus rótulos fornecem exemplos de onde se espera que a entidade esteja presente em um enunciado, com base no significado das palavras ao seu redor e como as palavras que foram rotuladas.

Esse componente só será definido se você adicionar rótulos marcando enunciados para a entidade. Se você não marcar nenhum enunciado com a entidade, ela não terá um componente aprendido.

Captura de tela que mostra um exemplo de componentes aprendidos para entidades.

Componente Lista

O componente de lista representa um conjunto fixo e fechado de palavras relacionadas, juntamente com seus sinônimos. O componente executa uma correspondência de texto exata com a lista de valores que você fornece como sinônimos. Cada sinônimo pertence a uma chave de lista, que pode ser usada como o valor padrão normalizado para o sinônimo que retorna na saída se o componente de lista for correspondido. As chaves de lista não são usadas para correspondência.

Em projetos multilingues, pode especificar um conjunto diferente de sinónimos para cada língua. Ao usar a API de previsão, você pode especificar o idioma na solicitação de entrada, que corresponde apenas aos sinônimos associados a esse idioma.

Captura de tela que mostra um exemplo de componentes de lista para entidades.

Componente pré-construído

O componente pré-criado permite que você selecione a partir de uma biblioteca de tipos comuns, como números, datas/hora e nomes. Quando adicionado, um componente pré-construído é detetado automaticamente. Você pode ter até cinco componentes pré-criados por entidade. Para obter mais informações, consulte a lista de componentes pré-construídos suportados.

Captura de tela que mostra um exemplo de componentes pré-criados para entidades.

Componente Regex

O componente regex corresponde a expressões regulares para capturar padrões consistentes. Quando adicionado, qualquer texto que corresponda à expressão regular é extraído. Você pode ter várias expressões regulares dentro da mesma entidade, cada uma com um identificador de chave diferente. Uma expressão correspondente retorna a chave como parte da resposta de previsão.

Em projetos multilíngues, você pode especificar uma expressão diferente para cada idioma. Ao usar a API de previsão, você pode especificar o idioma na solicitação de entrada, que corresponde apenas à expressão regular associada a esse idioma.

Captura de tela que mostra um exemplo de componentes regex para entidades.

Opções de entidade

Quando são definidos vários componentes para uma entidade, as predições podem sobrepor-se. Quando ocorre uma sobreposição, a previsão final de cada entidade é determinada por uma das seguintes opções.

Combinar componentes

Combine componentes como uma entidade quando eles se sobrepõem, tomando a união de todos os componentes.

Use esta opção para combinar todos os componentes quando eles se sobrepõem. Quando os componentes são combinados, você obtém todas as informações extras vinculadas a uma lista ou componente pré-criado quando eles estão presentes.

Exemplo

Suponha que você tenha uma entidade chamada Software que tenha um componente de lista, que contém "Proseware OS" como uma entrada. Em seus dados de enunciado, você tem "Eu quero comprar Proseware OS 9" com "Proseware OS 9" marcado como Software:

Captura de tela que mostra uma entidade aprendida e uma entidade de lista sobreposta.

Usando componentes combinados, a entidade retorna com o contexto completo como "Proseware OS 9", juntamente com a chave do componente de lista:

Captura de tela que mostra o resultado de um componente combinado.

Suponha que você tenha o mesmo enunciado, mas apenas "OS 9" foi previsto pelo componente aprendido:

Captura de tela que mostra um enunciado com O S 9 previsto pelo componente aprendido.

Com componentes combinados, a entidade ainda retorna como "Proseware OS 9" com a chave do componente list:

Captura de tela que mostra a entidade Software retornada.

Não combine componentes

Cada componente sobreposto retorna como uma instância separada da entidade. Aplique sua própria lógica após a previsão com esta opção.

Exemplo

Suponha que você tenha uma entidade chamada Software que tenha um componente de lista, que contém "Proseware Desktop" como uma entrada. Em seus dados de enunciação, você tem "Eu quero comprar Proseware Desktop Pro" com "Proseware Desktop Pro" marcado como Software:

Captura de tela que mostra um exemplo de uma entidade aprendida e de lista sobreposta.

Quando você não combina componentes, a entidade retorna duas vezes:

Captura de tela que mostra a entidade retornada duas vezes.

Componentes necessários

Às vezes, uma entidade pode ser definida por vários componentes, mas requer a presença de um ou mais deles. Cada componente pode ser definido conforme necessário, o que significa que a entidade não será retornada se esse componente não estiver presente. Por exemplo, se você tiver uma entidade com um componente de lista e um componente aprendido necessário, é garantido que qualquer entidade retornada inclua um componente aprendido. Caso contrário, a entidade não é devolvida.

Os componentes necessários são usados com mais freqüência com componentes aprendidos porque podem restringir os outros tipos de componentes a um contexto específico, que é comumente associado a funções. Você também pode exigir que todos os componentes se certifiquem de que todos os componentes estão presentes para uma entidade.

No Language Studio, cada componente de uma entidade tem uma alternância ao lado que permite defini-la conforme necessário.

Exemplo

Suponha que você tenha uma entidade chamada Quantidade de Bilhetes que tenta extrair o número de bilhetes que deseja reservar para voos, para expressões como "Reserve dois bilhetes amanhã para o Cairo".

Normalmente, você adiciona um componente pré-criado para Quantity.Number que já extrai todos os números. Se sua entidade foi definida apenas com o componente pré-construído, ela também extrai outros números como parte da entidade Quantidade de ingressos, como "Reserve dois ingressos amanhã para o Cairo às 15h".

Para resolver esse cenário, você rotula um componente aprendido em seus dados de treinamento para todos os números que devem ser Quantidade de tíquete. A entidade agora tem dois componentes: o componente pré-construído que conhece todos os números e o aprendido que prevê onde está a quantidade do bilhete em uma frase. Se você precisar do componente aprendido, certifique-se de que a Quantidade de tíquete só retorne quando o componente aprendido o prever no contexto correto. Se você também precisar do componente pré-construído, poderá garantir que a entidade Quantidade de tíquete retornada seja um número e esteja na posição correta.

Usar componentes e opções

Os componentes oferecem a flexibilidade de definir sua entidade de mais de uma maneira. Ao combinar componentes, você garante que cada componente seja representado e reduz o número de entidades retornadas em suas previsões.

Uma prática comum é estender um componente pré-construído com uma lista de valores que o pré-construído pode não suportar. Por exemplo, se você tiver uma entidade Organização , que tenha um General.Organization componente pré-criado adicionado a ela, a entidade pode não prever todas as organizações específicas do seu domínio. Você pode usar um componente de lista para estender os valores da entidade Organization e estender o componente pré-criado com suas próprias organizações.

Outras vezes, você pode estar interessado em extrair uma entidade através do contexto, como um Produto em um projeto de varejo. Você rotula o componente aprendido do produto para saber onde um produto é baseado em sua posição dentro da frase. Você também pode ter uma lista de produtos que você já sabe de antemão que você deseja sempre extrair. A combinação de ambos os componentes em uma entidade permite que você obtenha ambas as opções para a entidade.

Quando você não combina componentes, permite que cada componente atue como um extrator de entidade independente. Uma maneira de usar essa opção é separar as entidades extraídas de uma lista daquelas extraídas através dos componentes aprendidos ou pré-construídos para manipulá-las e tratá-las de forma diferente.

Nota

Anteriormente, durante a visualização pública do serviço, havia quatro opções disponíveis: Sobreposição mais longa, Sobreposição exata, Sobreposição de união e Retorno, todas separadamente. A sobreposição mais longa e a sobreposição exata são preteridas e só são suportadas para projetos que anteriormente tinham essas opções selecionadas. A sobreposição de união foi renomeada para Combinar componentes, enquanto Retornar todos separadamente foi renomeada para Não combinar componentes.