> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-home-button.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentação das funções de processamento de linguagem natural (NLP)

# Funções de processamento de linguagem natural (NLP)

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Not supported in ClickHouse Cloud
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Experimental feature. <u><a href="/docs/beta-and-experimental-features#experimental-features">Learn more.</a></u>
        </div>;
};

{/*AUTOGENERATED_START*/}

<div id="detectCharset">
  ## detectCharset
</div>

Introduzido em: v22.2.0

Detecta o conjunto de caracteres de uma string de entrada codificada em um formato diferente de UTF-8.

<Warning>
  Esta função é experimental e poderá mudar de maneiras imprevisíveis e incompatíveis com versões anteriores em lançamentos futuros.
  Defina `allow_experimental_nlp_functions = 1` para habilitá-la.
</Warning>

**Sintaxe**

```sql theme={null}
detectCharset(s)
```

**Argumentos**

* `s` — O texto a ser analisado. [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

Retorna uma string com o código do conjunto de caracteres detectado [`String`](/pt-BR/reference/data-types/string)

**Exemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT detectCharset('Ich bleibe für ein paar Tage.')
```

```response title=Response theme={null}
WINDOWS-1252
```

<div id="detectLanguage">
  ## detectLanguage
</div>

Introduzido em: v22.2.0

Detecta o idioma da string de entrada codificada em UTF-8.
A função usa a [biblioteca CLD2](https://github.com/CLD2Owners/cld2) para fazer a detecção e retorna o código de idioma ISO de 2 letras.

Quanto maior a entrada, mais precisa será a detecção do idioma.

<Warning>
  Esta função é experimental e pode mudar de formas imprevisíveis e incompatíveis com versões anteriores em lançamentos futuros.
  Defina `allow_experimental_nlp_functions = 1` para habilitá-la.
</Warning>

**Sintaxe**

```sql theme={null}
detectLanguage(s)
```

**Argumentos**

* `text_to_be_analyzed` — O texto a ser analisado. [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

Retorna o código ISO de 2 letras do idioma detectado. Outros resultados possíveis: `un` = desconhecido, não foi possível detectar nenhum idioma; `other` = o idioma detectado não tem um código de 2 letras. [`String`](/pt-BR/reference/data-types/string)

**Exemplos**

**Texto multilíngue**

```sql title=Query theme={null}
SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif. Where there\'s a will, there\'s a way.')
```

```response title=Response theme={null}
fr
```

<div id="detectLanguageMixed">
  ## detectLanguageMixed
</div>

Introduzida em: v22.2.0

Semelhante à função [`detectLanguage`](#detectLanguage), `detectLanguageMixed` retorna um `Map` de códigos de idioma de 2 letras mapeados para a porcentagem de determinado idioma no texto.

<Warning>
  Esta função é experimental e pode mudar de formas imprevisíveis e retroincompatíveis em lançamentos futuros.
  Defina `allow_experimental_nlp_functions = 1` para ativá-la.
</Warning>

**Sintaxe**

```sql theme={null}
detectLanguageMixed(s)
```

**Argumentos**

* `s` — O texto a ser analisado [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

Retorna um map cujas chaves são códigos ISO de 2 letras, e os valores correspondentes representam a porcentagem do texto identificada para cada idioma [`Map(String, Float32)`](/pt-BR/reference/data-types/map)

**Exemplos**

**Idiomas mistos**

```sql title=Query theme={null}
SELECT detectLanguageMixed('二兎を追う者は一兎をも得ず二兎を追う者は一兎をも得ず A vaincre sans peril, on triomphe sans gloire.')
```

```response title=Response theme={null}
{'ja':0.62,'fr':0.36}
```

<div id="detectLanguageUnknown">
  ## detectLanguageUnknown
</div>

Introduzido em: v22.2.0

Semelhante à função [`detectLanguage`](#detectLanguage), exceto que a função detectLanguageUnknown funciona com strings codificadas em formatos que não são UTF-8.
Prefira esta versão quando o conjunto de caracteres for UTF-16 ou UTF-32.

<Warning>
  Esta função é experimental e pode mudar de formas imprevisíveis e incompatíveis com versões anteriores em lançamentos futuros.
  Defina `allow_experimental_nlp_functions = 1` para habilitá-la.
</Warning>

**Sintaxe**

```sql theme={null}
detectLanguageUnknown('s')
```

**Argumentos**

* `s` — O texto a ser analisado. [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

Retorna o código ISO de 2 letras do idioma detectado. Outros resultados possíveis: `un` = desconhecido, não foi possível detectar nenhum idioma, `other` = o idioma detectado não tem código de 2 letras. [`String`](/pt-BR/reference/data-types/string)

**Exemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')
```

```response title=Response theme={null}
de
```

<div id="detectTonality">
  ## detectTonality
</div>

Introduzido em: v22.2.0

Determina o sentimento do texto fornecido.

<Info>
  **Limitação**

  Esta função é limitada em sua forma atual, pois usa o dicionário emocional embutido e funciona apenas para o idioma russo.
</Info>

<Warning>
  Esta função é experimental e pode mudar de formas imprevisíveis e incompatíveis com versões anteriores em lançamentos futuros.
  Defina `allow_experimental_nlp_functions = 1` para habilitá-la.
</Warning>

**Sintaxe**

```sql theme={null}
detectTonality(s)
```

**Argumentos**

* `s` — O texto a ser analisado. [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

Retorna o valor médio de sentimento das palavras do texto [`Float32`](/pt-BR/reference/data-types/float)

**Exemplos**

**Análise de sentimento em russo**

```sql title=Query theme={null}
SELECT
    detectTonality('Шарик - хороший пёс'),
    detectTonality('Шарик - пёс'),
    detectTonality('Шарик - плохой пёс')
```

```response title=Response theme={null}
0.44445, 0, -0.3
```

<div id="lemmatize">
  ## lemmatize
</div>

Introduzido em: v21.9.0

Realiza a lematização de uma palavra fornecida.
Esta função precisa de dicionários para funcionar, que podem ser obtidos no [GitHub](https://github.com/vpodpecan/lemmagen3/tree/master/src/lemmagen3/models).
Para mais detalhes sobre como carregar um dicionário de um arquivo local, consulte a página ["Definindo Dicionários"](/pt-BR/reference/statements/create/dictionary/sources/local-file).

<Warning>
  Esta função é experimental e pode mudar de formas imprevisíveis e incompatíveis com versões anteriores em lançamentos futuros.
  Defina `allow_experimental_nlp_functions = 1` para habilitá-la.
</Warning>

**Sintaxe**

```sql theme={null}
lemmatize(lang, word)
```

**Argumentos**

* `lang` — Idioma cujas regras serão aplicadas. [`String`](/pt-BR/reference/data-types/string)
* `word` — Palavra em letras minúsculas a ser lematizada. [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

Retorna a forma lematizada da palavra [`String`](/pt-BR/reference/data-types/string)

**Exemplos**

**Lematização em inglês**

```sql title=Query theme={null}
SELECT lemmatize('en', 'wolves')
```

```response title=Response theme={null}
wolf
```

<div id="stem">
  ## stem
</div>

Introduzido em: v21.9.0

Realiza stemming em uma palavra ou em um array de palavras usando os algoritmos Snowball.
Cada string de entrada deve ser uma única palavra em minúsculas — strings que contenham espaços em branco causam uma exceção.
O uso de caracteres maiúsculos produz resultados indefinidos.
Retorna String para entradas escalares (incluindo FixedString) e Array(String) para entradas em array.
Há suporte para as variantes Nullable e LowCardinality de String e FixedString.

**Sintaxe**

```sql theme={null}
stem(word, language)
```

**Argumentos**

* `word` — Uma única palavra em minúsculas (ou um array de palavras) para reduzir ao radical. Deve estar em minúsculas — caracteres maiúsculos produzem resultados indefinidos. Aceita String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)) ou Array(Nullable(FixedString)). [`String`](/pt-BR/reference/data-types/string) ou [`FixedString`](/pt-BR/reference/data-types/fixedstring) ou [`Array(String)`](/pt-BR/reference/data-types/array) ou [`Array(FixedString)`](/pt-BR/reference/data-types/array)
* `language` — Idioma cujas regras de stemming serão aplicadas. Use o código ISO 639-1 de duas letras (por exemplo, 'en', 'de', 'fr'); consulte [https://en.wikipedia.org/wiki/List\&#95;of\&#95;ISO\&#95;639\&#95;language\&#95;codes](https://en.wikipedia.org/wiki/List\&#95;of\&#95;ISO\&#95;639\&#95;language\&#95;codes). [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

A forma reduzida ao radical da palavra (String) ou um array de palavras reduzidas ao radical (Array(String)). [`String`](/pt-BR/reference/data-types/string) ou [`Array(String)`](/pt-BR/reference/data-types/array)

**Exemplos**

**Reduzindo uma única palavra ao radical**

```sql title=Query theme={null}
SELECT stem('blessing', 'en') AS res
```

```response title=Response theme={null}
bless
```

**Stemming de um array de palavras**

```sql title=Query theme={null}
SELECT stem(['blessing', 'disguise'], 'en') AS res
```

```response title=Response theme={null}
['bless','disguis']
```

**Stemming de FixedString**

```sql title=Query theme={null}
SELECT stem(toFixedString('blessing', 10), 'en') AS res
```

```response title=Response theme={null}
bless
```

**Aplicando stemming a uma palavra Nullable**

```sql title=Query theme={null}
SELECT stem(toNullable('blessing'), 'en') AS res
```

```response title=Response theme={null}
bless
```

<div id="synonyms">
  ## synonyms
</div>

Introduzido na versão: v21.9.0

Encontra sinônimos de uma determinada palavra.

Há dois tipos de extensões de sinônimos:

* `plain`
* `wordnet`

Com o tipo de extensão `plain`, você precisa fornecer o caminho para um arquivo de texto simples, em que cada linha corresponde a um determinado conjunto de sinônimos.
As palavras nessa linha devem ser separadas por espaços ou tabulações.

Com o tipo de extensão `wordnet`, você precisa fornecer o caminho para um diretório que contenha o tesauro WordNet.
O tesauro deve conter um índice de sentidos do WordNet.

<Warning>
  Esta função é experimental e pode mudar de forma imprevisível, com alterações incompatíveis com versões anteriores, em lançamentos futuros.
  Defina `allow_experimental_nlp_functions = 1` para habilitá-la.
</Warning>

**Sintaxe**

```sql theme={null}
synonyms(ext_name, word)
```

**Argumentos**

* `ext_name` — Nome da extensão em que a busca será realizada. [`String`](/pt-BR/reference/data-types/string)
* `word` — Palavra que será pesquisada na extensão. [`String`](/pt-BR/reference/data-types/string)

**Valor retornado**

Retorna um array de sinônimos para a palavra especificada. [`Array(String)`](/pt-BR/reference/data-types/array)

**Exemplos**

**Encontrar sinônimos**

```sql title=Query theme={null}
SELECT synonyms('list', 'important')
```

```response title=Response theme={null}
['important','big','critical','crucial']
```
