evalMLMethod
evalMLMethod. Voir le lien sous linearRegression.
stochasticLinearRegression
evalMLMethod pour effectuer des prédictions sur de nouvelles données.
stochasticLogisticRegression
evalMLMethod pour effectuer des prédictions sur de nouvelles données.
naiveBayesClassifier
model_name— Nom du modèle préconfiguré. String Le modèle doit être défini dans les fichiers de configuration de ClickHouse (voir ci-dessous).input_text— Texte à classer. String L’entrée est traitée exactement telle qu’elle est fournie (casse et ponctuation préservées).
- ID de classe prédit, sous la forme d’un entier non signé. UInt32 Les ID de classe correspondent aux catégories définies lors de la création du modèle.
0 peut correspondre à l’anglais, tandis que 1 peut correspondre au français - la signification de ces classes dépend de vos données d’entraînement.
Détails d’implémentation
- Prend en charge des n-grammes de toute taille
- Trois modes de tokenisation :
byte: fonctionne sur des octets bruts. Chaque octet constitue un token.codepoint: fonctionne sur des valeurs scalaires Unicode décodées à partir de l’UTF‑8. Chaque point de code constitue un token.token: découpe selon des séquences d’espaces blancs Unicode (regex \s+). Les tokens sont des sous-chaînes sans espace ; la ponctuation fait partie du token si elle est adjacente (par exemple, “you?” constitue un seul token).
Configuration du modèle
| Paramètre | Description | Exemple | Par défaut |
|---|---|---|---|
| name | Identifiant unique du modèle | language_detection | Obligatoire |
| path | Chemin complet vers le fichier binaire du modèle | /etc/clickhouse-server/config.d/language_detection.bin | Obligatoire |
| mode | Méthode de tokenisation : - byte : séquences d’octets- codepoint : caractères Unicode- token : tokens de mots | token | Obligatoire |
| n | Taille des n-gram (mode token) :- 1=mot unique- 2=paires de mots- 3=triplets de mots | 2 | Obligatoire |
| alpha | Facteur de lissage de Laplace utilisé lors de la classification pour prendre en compte les n-gram absents du modèle | 0.5 | 1.0 |
| priors | Probabilités de classe (% de documents appartenant à une classe) | 60 % classe 0, 40 % classe 1 | Répartition égale |
n=1 et le mode token, le modèle peut ressembler à ceci :
n=3 et le mode codepoint, on peut obtenir quelque chose comme :
class_idsur 4 octets (UInt, little-endian)- longueur en octets du
n-gramsur 4 octets (UInt, little-endian) - octets bruts du
n-gram countsur 4 octets (UInt, little-endian)
mode et n. Les étapes suivantes décrivent ce prétraitement :
-
Ajouter des marqueurs de début et de fin au début et à la fin de chaque document selon le mode de tokenisation :
- Byte :
0x01(début),0xFF(fin) - Codepoint :
U+10FFFE(début),U+10FFFF(fin) - Token :
<s>(début),</s>(fin)
(n - 1)tokens sont ajoutés au début comme à la fin du document. - Byte :
-
Exemple pour
n=3en modetoken:- Document :
"ClickHouse is fast" - Prétraité comme suit :
<s> <s> ClickHouse is fast </s> </s> - Trigrammes générés :
<s> <s> ClickHouse<s> ClickHouse isClickHouse is fastis fast </s>fast </s> </s>
- Document :
byte et codepoint, il peut être utile de commencer par tokeniser le document en tokens (une liste de bytes pour le mode byte et une liste de codepoints pour le mode codepoint). Ajoutez ensuite n - 1 tokens de début au début du document et n - 1 tokens de fin à la fin du document. Enfin, générez les n-grams et enregistrez-les dans le fichier sérialisé.