Compartilhar via


Componentes de entidade

Na compreensão da linguagem coloquial, as entidades são partes relevantes das informações extraídas de seus enunciados. Uma entidade pode ser extraída por métodos diferentes. Eles podem ser aprendidos por meio do contexto, pela combinação de uma lista ou detectados por uma entidade reconhecida previamente. Cada entidade em seu projeto é composta por um ou mais desses métodos, que são definidos como componentes da entidade.

Quando uma entidade é definida por mais de um componente, suas previsões podem se sobrepor. É possível determinar o comportamento de uma previsão de entidade quando os componentes dela se sobrepõem usando um conjunto fixo de opções em opções de entidade.

Tipos de componente

Um componente de entidade determina uma maneira em que você pode 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 marcas de entidade que você rotula seus enunciados para treinar um modelo de aprendizado de máquina. O modelo aprende a prever onde a entidade está com base no contexto dentro do enunciado. Seus rótulos fornecem exemplos de onde a entidade deve estar presente em um enunciado, com base no significado das palavras ao redor dela 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 conhecido.

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

Componente de lista

A lista componente representa um conjunto fixo e fechado de palavras relacionadas, juntamente com os respectivos sinônimos. O componente executa uma combinação exata de texto em relação à 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 será retornado na saída se houver uma correspondência com o componente da lista. As chaves de lista não são usadas para correspondência.

Em projetos multilíngues, é possível especificar um conjunto diferente de sinônimos para cada idioma. Quanto você usa a API de previsão, é possível especificar o idioma na solicitação de entrada, que corresponde apenas aos sinônimos associados a ele.

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

Componente predefinido

O componente predefinido permite que você selecione em uma biblioteca de tipos comuns, como números, datetimes e nomes. Quando adicionado, um componente predefinido é detectado automaticamente. É possível ter até cinco componentes predefinidos por entidade. Para obter mais informações, consulte a lista de componentes predefinidos com suporte.

Uma captura de tela mostrando um exemplo de componentes predefinidos 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 na 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, é possível especificar um conjunto diferente de sinônimos para cada idioma. Quando você usa a API de previsão, é possível especificar o idioma na solicitação de entrada, que corresponde apenas à expressão regular associada a ele.

Captura de tela mostrando um exemplo dos componentes regex para entidades.

Opções de entidade

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

Combinar componentes

Combine componentes como uma única entidade quando eles se sobrepõem unindo todos os componentes.

Use essa 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 predefinido quando eles estão presentes.

Exemplo

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

Captura de tela que mostra uma sobreposição de entidade aprendida e de lista.

Usando componentes combinados, a entidade retorna o contexto completo como "Proseware OS 9" além da 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 "SO 9" foi previsto pelo componente aprendido:

Captura de tela que mostra um enunciado com “SO 9” previsto pelo componente aprendido.

Com os componentes combinados, a entidade ainda é retornada como "Proseware OS 9" com a chave do componente de lista:

Captura de tela que mostra entidade de Software retornada.

Não combinar componentes

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

Exemplo

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

Captura de tela que mostra uma sobreposição de entidade aprendida e de lista.

Quando você não combina componentes, a entidade é retornada 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 exige que um ou mais deles estejam presentes. 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 obrigatório, será garantido que toda entidade retornada incluirá um componente aprendido. Caso contrário, a entidade não será retornada.

Os componentes obrigatórios são usados com mais frequência com componentes aprendidos porque eles podem restringir os outros tipos de componentes a um contexto específico, que normalmente está associado a funções. Você também pode exigir todos os componentes para garantir que todos os componentes estejam presente para uma entidade.

No Language Studio, há um seletor de alternância ao lado de cada componente em uma entidade que permite defini-lo conforme necessário.

Exemplo

Suponha que você tenha uma entidade chamada Quantidade Tíquetes que tenta extrair o número de tíquetes que você deseja reservar para voos, para declarações como "Reservar duas passagens para o Cairo para amanhã".

Normalmente, você adiciona um componente predefinido para Quantity.Number que já extrai todos os números. Se sua entidade fosse definida apenas como predefinida, ela também extrairia outros números como parte da entidade Quantidade de tíquetes, como "Reservar dois tíquetes para o Cairo para amanhã às 15 h."

Para resolver esse cenário, você rotularia um componente aprendido em seus dados de treinamento para todos os números destinados a ser Quantidade de Tíquetes. A entidade agora tem dois componentes, o componente predefinido que conhece todos os números, e o aprendido que identifica onde a quantidade de tíquetes está em uma frase. Se você precisar do componente aprendido, verifique se a Quantidade de tíquetes só é retornada quando o componente aprendido a prevê no contexto correto. Se você também exigir o componente predefinido, você pode garantir que a entidade de Quantidade de Tíquetes retornada seja um número e na posição correta.

Use componentes e opções

Os componentes oferecem a flexibilidade de definir sua entidade de mais de uma maneira. Ao combinar componentes, verifique se cada um deles está representado e reduz o número de entidades retornadas em suas previsões.

Uma prática comum é estender um componente predefinido com uma lista de valores aos quais a predefinição pode não dar suporte. Por exemplo, se você tiver uma entidade Organização que tem um componente predefinido General.Organization adicionado, ela pode não prever todas as organizações específicas ao seu domínio. É possível usar um componente de lista para estender os valores da entidade Organização estender a predefinição de componente com suas próprias organizações.

Outrora, você poderia extrair uma entidade por meio do contexto, como um Produto em um projeto de varejo. Você faz o rótulo o componente aprendido do produto para saber onde um produto se baseia em sua posição dentro da frase. Também você poderia ter uma lista de produtos já conhecidos que deseja que sejam sempre extraídos. A combinação de ambos os componentes em uma única entidade permite obter as duas opções para a entidade.

Quando você não combinar componentes, você permite que todos os componentes atuem como um extrator de entidade independente. Uma maneira de usar essa opção é separar as entidades extraídas de uma lista das extraídas por meio dos componentes aprendidos ou predefinidos a fim de lidar com elas de maneira diferente.

Observação

Anteriormente, durante a versão prévia pública do serviço, havia quatro opções disponíveis: Sobreposição mais longa, Sobreposição exata, Sobreposição da união e Retornar tudo separadamente. Sobreposição mais longa e Sobreposição exata são preteridas e só há suporte para projetos que anteriormente tinham essas opções selecionadas. A sobreposição de união foi renomeada para Combinar componentes e Retornar tudo separadamente foi renomeado para Não combinar componentes.