Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Fonctions de traitement automatique du langage naturel (NLP)

detectCharset

Introduite dans : v22.2.0

Fonctionnalité expérimentale
Non pris en charge par ClickHouse Cloud

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

Syntaxe

detectCharset(s)

Arguments

  • s — Le texte à analyser. String

Valeur renvoyée

Renvoie une chaîne contenant le code du jeu de caractères détecté String

Exemples

Utilisation de base

SET allow_experimental_nlp_functions = 1;
SELECT detectCharset('Ich bleibe für ein paar Tage.')
WINDOWS-1252

detectLanguage

Introduit dans : v22.2.0

Fonctionnalité expérimentale
Non pris en charge par ClickHouse Cloud

Détecte la langue de la chaîne d’entrée encodée en UTF8. La fonction utilise la bibliothèque 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 sera précise.

Syntaxe

detectLanguage(s)

Arguments

  • text_to_be_analyzed — Le texte à analyser. 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

Exemples

Utilisation de base

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif.')
fr

detectLanguageMixed

Introduit dans : v22.2.0

Fonctionnalité expérimentale
Non pris en charge par ClickHouse Cloud

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

Syntaxe

detectLanguageMixed(s)

Arguments

  • s — Le texte à analyser 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)

Exemples

Langues mixtes

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageMixed('二兎を追う者は一兎をも得ず二兎を追う者は一兎をも得ず A vaincre sans peril, on triomphe sans gloire.')
{'ja':0.62,'fr':0.36}

detectLanguageUnknown

Introduit dans : v22.2.0

Fonctionnalité expérimentale
Non pris en charge par ClickHouse Cloud

Semblable à la fonction 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.

Syntaxe

detectLanguageUnknown('s')

Arguments

  • s — Le texte à analyser. 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

Exemples

Utilisation de base

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')
de

detectTonality

Introduit dans : v22.2.0

Fonctionnalité expérimentale
Non pris en charge par ClickHouse Cloud

Détermine le sentiment du texte fourni.

La fonction utilise un dictionnaire émotionnel intégré et ne fonctionne actuellement que pour la langue russe.

Syntaxe

detectTonality(s)

Arguments

  • s — Le texte à analyser. String

Valeur renvoyée

Renvoie le score de sentiment moyen des mots du texte Float32

Exemples

Analyse des sentiments en russe

SET allow_experimental_nlp_functions = 1;

SELECT
    detectTonality('Шарик - хороший пёс'),
    detectTonality('Шарик - пёс'),
    detectTonality('Шарик - плохой пёс')
0.44445	0	-0.3

lemmatize

Introduit dans : v21.9.0

Fonctionnalité expérimentale
Non pris en charge par ClickHouse Cloud

Effectue la lemmatisation d’un mot donné. Cette fonction nécessite des dictionnaires pour fonctionner, disponibles sur GitHub. Pour plus de détails sur le chargement d’un dictionnaire à partir d’un fichier local, consultez la page "Définition des dictionnaires".

Syntaxe

lemmatize(lang, word)

Arguments

  • lang — Langue dont les règles seront utilisées. String
  • word — Mot en minuscules à lemmatiser. String

Valeur renvoyée

Renvoie la forme lemmatisée du mot String

Exemples

Lemmatisation en anglais

SET allow_experimental_nlp_functions = 1;
SELECT lemmatize('en', 'wolves')
wolf

stem

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. La liste des identifiants de langue pris en charge est disponible dans system.stemmers.

Syntaxe

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 ou FixedString ou Array(String) ou Array(FixedString)
  • language — Langue dont les règles de racinisation seront appliquées. Les identifiants canoniques sont répertoriés dans system.stemmers (par ex. 'english', 'german', 'porter'). Snowball accepte également les codes ISO 639 à 2 ou 3 lettres (par ex. 'en', 'eng') comme alias lorsqu’ils sont définis, mais la couverture varie selon la langue — privilégiez les noms de system.stemmers pour une meilleure portabilité. String

Valeur renvoyée

La forme racinisée du mot (String), ou un tableau de mots racinisés (Array(String)). String ou Array(String)

Exemples

Racinisation d’un mot unique

SELECT stem('blessing', 'en') AS res
bless

Racinisation d’un tableau de mots

SELECT stem(['blessing', 'disguise'], 'en') AS res
['bless','disguis']

Racinisation d’une valeur FixedString

SELECT stem(toFixedString('blessing', 10), 'en') AS res
bless

Racinisation d’un mot de type Nullable

SELECT stem(toNullable('blessing'), 'en') AS res
bless

synonyms

Introduit dans : v21.9.0

Fonctionnalité expérimentale
Non pris en charge par ClickHouse Cloud

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.

Syntaxe

synonyms(ext_name, word)

Arguments

  • ext_name — Nom de l’extension dans laquelle la recherche s’effectue. String
  • word — Mot recherché dans l’extension. String

Valeur renvoyée

Renvoie un tableau de synonymes pour le mot donné. Array(String)

Exemples

Trouver des synonymes

SET allow_experimental_nlp_functions = 1;
SELECT synonyms('en', 'important')
['important','big','critical','crucial','essential']
Navigation