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

> Documentation des fonctions de traitement automatique du langage naturel (NLP)

# Fonctions de traitement automatique du langage naturel (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>
            Non pris en charge par 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>
            Fonctionnalité expérimentale. <u><a href="/docs/beta-and-experimental-features#experimental-features">En savoir plus.</a></u>
        </div>;
};

<div id="natural-language-processing-nlp-functions">
  # Fonctions de traitement automatique du langage naturel (NLP)
</div>

{/*AUTOGENERATED_START*/}

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

Introduite dans : v22.2.0

Détecte le jeu de caractères d'une chaîne d'entrée encodée dans un format non UTF8.

<Warning>
  Cette fonction est expérimentale et peut évoluer de manière imprévisible, avec des changements non rétrocompatibles dans les versions futures.
  Définissez `allow_experimental_nlp_functions = 1` pour l'activer.
</Warning>

**Syntaxe**

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

**Arguments**

* `s` — Le texte à analyser. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie une chaîne contenant le code du jeu de caractères détecté [`String`](/fr/reference/data-types/string)

**Exemples**

**Utilisation de base**

```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>

Introduit dans : v22.2.0

Détecte la langue de la chaîne d’entrée encodée en UTF8.
La fonction utilise la [bibliothèque CLD2](https://github.com/CLD2Owners/cld2) pour la détection et renvoie le code de langue ISO à 2 lettres.

Plus l’entrée est longue, plus la détection de la langue est précise.

<Warning>
  Cette fonction est expérimentale et peut changer de manière imprévisible, avec des modifications non rétrocompatibles, dans de futures versions.
  Définissez `allow_experimental_nlp_functions = 1` pour l’activer.
</Warning>

**Syntaxe**

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

**Arguments**

* `text_to_be_analyzed` — Le texte à analyser. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie le code ISO à 2 lettres de la langue détectée. Autres résultats possibles : `un` = inconnu, aucune langue n’a pu être détectée, `other` = la langue détectée n’a pas de code à 2 lettres. [`String`](/fr/reference/data-types/string)

**Exemples**

**Texte multilingue**

```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>

Introduit dans : v22.2.0

Semblable à la fonction [`detectLanguage`](#detectLanguage), `detectLanguageMixed` renvoie une `Map` de codes de langue à 2 lettres associés au pourcentage de chaque langue dans le texte.

<Warning>
  Cette fonction est expérimentale et peut évoluer de façon imprévisible, avec des changements non rétrocompatibles, dans les futures versions.
  Définissez `allow_experimental_nlp_functions = 1` pour l’activer.
</Warning>

**Syntaxe**

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

**Arguments**

* `s` — Le texte à analyser [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie une map dont les clés sont des codes ISO à 2 lettres et les valeurs correspondantes le pourcentage du texte détecté pour cette langue [`Map(String, Float32)`](/fr/reference/data-types/map)

**Exemples**

**Langues mixtes**

```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>

Introduit dans : v22.2.0

Semblable à la fonction [`detectLanguage`](#detectLanguage), à la différence que la fonction detectLanguageUnknown fonctionne avec des chaînes non encodées en UTF8.
Préférez cette version si votre jeu de caractères est UTF-16 ou UTF-32.

<Warning>
  Cette fonction est expérimentale et peut évoluer de manière imprévisible, avec des changements non rétrocompatibles, dans les versions futures.
  Définissez `allow_experimental_nlp_functions = 1` pour l’activer.
</Warning>

**Syntaxe**

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

**Arguments**

* `s` — Le texte à analyser. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie le code ISO à 2 lettres de la langue détectée. Autres résultats possibles : `un` = inconnu, aucune langue n’a pu être détectée, `other` = la langue détectée n’a pas de code à 2 lettres. [`String`](/fr/reference/data-types/string)

**Exemples**

**Utilisation de base**

```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>

Introduit dans : v22.2.0

Détermine le sentiment du texte fourni.

<Info>
  **Limitation**

  Dans sa forme actuelle, cette fonction est limitée : elle utilise le dictionnaire émotionnel intégré et ne fonctionne que pour la langue russe.
</Info>

<Warning>
  Cette fonction est expérimentale et peut évoluer de façon imprévisible, avec des modifications non rétrocompatibles, dans les versions futures.
  Définissez `allow_experimental_nlp_functions = 1` pour l’activer.
</Warning>

**Syntaxe**

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

**Arguments**

* `s` — Le texte à analyser. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie le score de sentiment moyen des mots du texte [`Float32`](/fr/reference/data-types/float)

**Exemples**

**Analyse des sentiments en russe**

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

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

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

Introduit dans : v21.9.0

Effectue la lemmatisation d’un mot donné.
Cette fonction nécessite des dictionnaires pour fonctionner, disponibles sur [GitHub](https://github.com/vpodpecan/lemmagen3/tree/master/src/lemmagen3/models).
Pour plus de détails sur le chargement d’un dictionnaire à partir d’un fichier local, consultez la page ["Définition des dictionnaires"](/fr/reference/statements/create/dictionary/sources/local-file).

<Warning>
  Cette fonction est expérimentale et peut évoluer de façon imprévisible, avec des changements non rétrocompatibles, dans les versions futures.
  Définissez `allow_experimental_nlp_functions = 1` pour l’activer.
</Warning>

**Syntaxe**

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

**Arguments**

* `lang` — Langue dont les règles seront utilisées. [`String`](/fr/reference/data-types/string)
* `word` — Mot en minuscules à lemmatiser. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie la forme lemmatisée du mot [`String`](/fr/reference/data-types/string)

**Exemples**

**Lemmatisation en anglais**

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

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

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

Introduit dans : v21.9.0

Effectue le stemming d’un mot ou d’un tableau de mots à l’aide des algorithmes Snowball.
Chaque chaîne d’entrée doit être un seul mot en minuscules ; les chaînes contenant des espaces provoquent une exception.
La présence de caractères majuscules produit des résultats indéfinis.
Renvoie String pour les entrées scalaires (y compris FixedString) et Array(String) pour les entrées de tableau.
Les variantes Nullable et LowCardinality de String et FixedString sont prises en charge.

**Syntaxe**

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

**Arguments**

* `word` — Un mot unique en minuscules (ou un tableau de mots) à soumettre à la racinisation. Doit être en minuscules — la présence de caractères majuscules produit des résultats indéfinis. Accepte String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)) ou Array(Nullable(FixedString)). [`String`](/fr/reference/data-types/string) ou [`FixedString`](/fr/reference/data-types/fixedstring) ou [`Array(String)`](/fr/reference/data-types/array) ou [`Array(FixedString)`](/fr/reference/data-types/array)
* `language` — Langue dont les règles de racinisation seront appliquées. Utilisez le code ISO 639-1 à deux lettres (par ex. 'en', 'de', 'fr'), voir [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`](/fr/reference/data-types/string)

**Valeur renvoyée**

La forme racinisée du mot (String), ou un tableau de mots racinisés (Array(String)). [`String`](/fr/reference/data-types/string) ou [`Array(String)`](/fr/reference/data-types/array)

**Exemples**

**Racinisation d’un mot unique**

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

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

**Racinisation d’un tableau de mots**

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

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

**Racinisation d’une valeur FixedString**

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

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

**Racinisation d’un mot de type Nullable**

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

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

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

Introduit dans : v21.9.0

Trouve les synonymes d’un mot donné.

Il existe deux types d’extensions de synonymes :

* `plain`
* `wordnet`

Avec le type d’extension `plain`, vous devez fournir le chemin vers un fichier texte simple, dans lequel chaque ligne correspond à un ensemble de synonymes donné.
Les mots de cette ligne doivent être séparés par des espaces ou des tabulations.

Avec le type d’extension `wordnet`, vous devez fournir le chemin vers un répertoire contenant le thésaurus WordNet.
Le thésaurus doit contenir un index des sens WordNet.

<Warning>
  Cette fonction est expérimentale et peut évoluer de façon imprévisible, avec des changements non rétrocompatibles, dans les futures versions.
  Définissez `allow_experimental_nlp_functions = 1` pour l’activer.
</Warning>

**Syntaxe**

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

**Arguments**

* `ext_name` — Nom de l’extension dans laquelle la recherche s’effectue. [`String`](/fr/reference/data-types/string)
* `word` — Mot recherché dans l’extension. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie un tableau de synonymes pour le mot donné. [`Array(String)`](/fr/reference/data-types/array)

**Exemples**

**Trouver des synonymes**

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

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