# Entidades contextuais

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FIzosxBALLPPFXoYMUXGk%2FScreenshot%202024-08-14%20at%2017.22.44.png?alt=media&#x26;token=1c6b1f0b-40a3-450e-8d68-60552d74c450" alt=""><figcaption><p>Guia de entidades contextuais.</p></figcaption></figure>

## Detectar informações contextualizadas

Contextuais são reconhecidas dentro de expressões. O [PNL](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/nlp/basic-nlp-concepts#nlp-model) entende a entidade aprendendo que tipo de palavra é, onde está localizada na frase e qual é o contexto específico ao redor dela.&#x20;

<details>

<summary>Quando usar entidades contextuais</summary>

Imagine que você é um vendedor de frutas que vende maçãs, peras, bananas e abacaxis. Seu chatbot pode ajudar pessoas a pedir frutas e perguntar o preço. Vamos analisar esse caso de uso de precificação para maçãs. Algumas expressões de exemplo poderiam ser:

* Quanto custa a maçã?
* Quanto custa uma maçã?
* Qual é o preço das maçãs?

Claro, essas expressões poderiam ser perguntadas não apenas para maçãs, mas também para peras, bananas e abacaxis. Isso significa que você precisa copiar cada expressão e substituir a fruta? Não, você pode usar entidades contextuais!&#x20;

Crie uma entidade contextual chamada 'fruit' e adicione os seguintes valores a ela:

* maçã
* banana
* pera
* abacaxi

Nesse caso, recomendamos ativar a correspondência aproximada para que o bot também reconheça 'apples' e o plural das outras frutas. Mais informações sobre correspondência aproximada na próxima seção.

Agora você pode simplesmente criar uma expressão com a entidade contextual nela:

* Qual é o preço de **@fruit**?
* Quanto custa uma **@fruit** ?
* Qual é o preço do **@fruit**?

Agora seu bot entenderá cada expressão, mesmo se a fruta mudar!&#x20;

</details>

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FplpevVlnwZNTe22Uy7ag%2FScreenshot%202024-08-14%20at%2017.35.20.png?alt=media&#x26;token=b11ef58e-749b-4eee-abdb-1c367b368034" alt="" width="563"><figcaption><p>Exemplo de uma intenção que usa a entidade contextual @bike_model.</p></figcaption></figure>

{% hint style="warning" %}
Entidades contextuais são o único tipo de entidades que podem (e devem) [ser adicionadas à própria expressão](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/expressions#add-entities-to-your-expressions), por exemplo: *Quero reservar uma passagem de trem de `@origin` para `@destination`.*
{% endhint %}

{% hint style="warning" %}
Observe que [entidades de correspondência](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/detect-information-with-entities/match-entities) são independentes de contexto, significando que podem ser detectadas em qualquer lugar da conversa. Portanto, elas são bem diferentes de [entidades contextuais ](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/detect-information-with-entities/contextual-entities)que são dependentes do contexto e só podem ser detectadas em certos lugares dentro da conversa.
{% endhint %}

## Adicionar entidades contextuais

Existem 2 maneiras de adicionar entidades contextuais ao seu bot:

* A partir da sua lista de [expressões](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/expressions#add-contextual-entities-to-your-expressions)
* A partir da [**Entidades**](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/synonym-entities) guia (veja abaixo)

Para adicionar uma entidade contextual:

1. A partir da [Entidades](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/synonym-entities) aba, clique em **Adicionar entidade contextual**.
2. Dê a ela um **Nome** e uma série de **Valores da entidade**.
3. Você pode dar **Sinônimos** a esses valores se quiser.

<details>

<summary>Sinônimos para entidades contextuais</summary>

Para cada valor, você pode adicionar um sinônimo que será detectado como o valor original. Sinônimos permitem que você adicione alternativas para entidades que são atribuídas ao mesmo valor.&#x20;

Por exemplo:

*Quero ir para Bruxelas*

*Quero ir para Bruxelles*

O significado das duas expressões acima é exatamente o mesmo, mas você quer converter *Bruxelles* para *Brussels* para que seu bot possa trabalhar com um único e mesmo valor.

Observe que as entidades não diferenciam maiúsculas de minúsculas, então não há necessidade de adicionar sinônimos capitalizados.

</details>

{% hint style="info" %}
Ao adicionar variáveis de entidade contextual, não há necessidade de adicionar palavras capitalizadas e não capitalizadas. Todo o texto é descapitalizado pelo NLP antes de qualquer reconhecimento acontecer.
{% endhint %}

4. Você pode ativar a **Correspondência aproximada** se quiser.

<details>

<summary>Correspondência aproximada para entidades contextuais</summary>

A correspondência aproximada permite reconhecer uma ligeira variação de um valor de entidade (ou seu sinônimo) como o valor original. Por exemplo "Brusselt" será automaticamente corrigido para "Brussels" se a correspondência aproximada estiver ativada.

A correspondência aproximada é bastante rigorosa. Menos de 20% dos caracteres podem ser diferentes para vinculá-la a outra entidade. Isso evita que o valor seja vinculado a outra entidade que também tenha sobreposição.&#x20;

</details>

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FHnK88wetrZXpQETSnOn0%2FScreenshot%202024-08-14%20at%2017.32.34.png?alt=media&#x26;token=ab047d0a-02a6-4a3e-badc-a3b9c5dbe0a6" alt="" width="563"><figcaption><p>Adicionar uma entidade contextual.</p></figcaption></figure>
