evalMLMethod
evalMLMethod 関数を使用します。詳しくは linearRegression のリンクを参照してください。
stochasticLinearRegression
evalMLMethod を使用します。
stochasticLogisticRegression
evalMLMethod を使用します。
naiveBayesClassifier
model_name— 事前設定済みモデルの名前。String モデルは ClickHouse の設定ファイルで定義されている必要があります (以下を参照) 。input_text— 分類対象のテキスト。String 入力は、指定されたとおりにそのまま処理されます (大文字・小文字や句読点は保持されます) 。
- 予測されたクラス ID を符号なし整数で返します。UInt32 クラス ID は、モデル構築時に定義されたカテゴリに対応します。
0 は英語、1 はフランス語を表す場合があります。どのクラスが何を意味するかは、学習データによって異なります。
実装の詳細
- 任意のサイズの N-gram をサポート
- 3 つのトークン化モード:
byte: 生のバイト列を対象に処理します。各バイトが 1 つのトークンになります。codepoint: UTF‑8 からデコードされた Unicode スカラー値を対象に処理します。各コードポイントが 1 つのトークンになります。token: Unicode の空白文字の連続 (正規表現\s+) で分割します。トークンは空白以外の連続した部分文字列で、句読点が隣接している場合はその句読点もトークンに含まれます (例:"you?"は 1 つのトークンです) 。
モデル設定
モデル学習ガイド
ファイルフォーマット
可読形式では、
n=1 かつ token モードの場合、モデルは次のようになります。
n=3 かつ codepoint モードの場合、次のようになります。
- 4 バイトの
class_id(UInt、リトルエンディアン) - 4 バイトの
n-gramのバイト長 (UInt、リトルエンディアン) - 生の
n-gramバイト列 - 4 バイトの
count(UInt、リトルエンディアン)
mode と n に従って N-gram を抽出できるよう、ドキュメントを前処理する必要があります。以下に、その前処理の手順を示します。
-
トークン化モードに応じて、各ドキュメントの先頭と末尾に境界マーカーを追加します。
- Byte:
0x01(先頭) 、0xFF(末尾) - Codepoint:
U+10FFFE(先頭) 、U+10FFFF(末尾) - Token:
<s>(先頭) 、</s>(末尾)
(n - 1)個のトークンが、ドキュメントの先頭と末尾の両方に追加されます。 - Byte:
-
tokenモードでのn=3の例:- Document:
"ClickHouse is fast" - Processed as:
<s> <s> ClickHouse is fast </s> </s> - 生成されるトライグラム:
<s> <s> ClickHouse<s> ClickHouse isClickHouse is fastis fast </s>fast </s> </s>
- Document:
byte モードおよび codepoint モードでのモデル作成を簡単にするには、まず文書をトークン列に分割しておくと便利です (byte モードでは byte のリスト、codepoint モードでは codepoint のリスト) 。次に、文書の先頭に n - 1 個の開始トークンを、末尾に n - 1 個の終了トークンを追加します。最後に、N-gram を生成してシリアライズ済みファイルに書き込みます。