Componentes de entidade

No Reconhecimento vocal de Conversação, 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 de extrair a entidade. Uma entidade pode conter um componente, que determinaria o único método que seria usado para extrair a entidade ou 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 com as qual 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.

Uma captura de tela mostrando 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 usada para correspondência.

Em projetos multilíngues, é possível especificar um conjunto diferente de sinônimos para cada idioma. Ao usar a API de previsão, é possível especificar o idioma na solicitação de entrada, que corresponderá apenas aos sinônimos associados a ele.

Uma captura de tela mostrando 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. Consulte a lista de componentes predefinidos com suporte para obter mais informações.

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 será 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 retornará 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. Ao usar a API de previsão, é possível especificar o idioma na solicitação de entrada, que corresponderá apenas à expressão regular associada a ele.

Uma 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.

Isso é útil 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 "Quero comprar o Proseware OS 9" com "Proseware OS 9" marcado como Software:

Uma captura de tela mostrando uma sobreposição de entidade aprendida e de lista.

Com a combinação de componentes, a entidade retornará o contexto completo como "Proseware OS 9", além da chave do componente de lista:

Uma captura de tela mostrando o resultado de um componente combinado.

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

Uma captura de tela mostrando um enunciado com “SO 9” previsto pelo componente aprendido.

Com a combinação de componentes, a entidade ainda será retornada como "Proseware OS 9" com a chave do componente de lista:

Uma captura de tela mostrando a entidade de software retornada.

Não combinar componentes

Cada componente sobreposto será retornado 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 "Quero comprar o Proseware Desktop Pro" com "Proseware Desktop Pro" marcado como Software:

Uma captura de tela mostrando uma sobreposição de entidade aprendida e de lista.

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

Uma captura de tela mostrando 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; se não o fizer, a entidade não será retornada.

Os componentes obrigatórios são usados com mais frequência com componentes aprendidos, pois 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 de Passagens 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ê adicionaria um componente predefinido para Quantity.Number que já extrai todos os números. No entanto, se sua entidade fosse definida apenas como predefinida, ela também extrairia outros números como parte da entidade Quantidade de Passagens, como "Reservar duas passagens para o Cairo para amanhã às 15h".

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

Como usar 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 com 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 e, assim, estender a predefinição com suas próprias organizações.

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

Ao 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. A sobreposição mais longa e a sobreposição exata foram preteridas e só terão 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.

Próximas etapas

Componentes predefinidos com suporte