メインコンテンツまでスキップ

Whitespace

whitespace トークナイザーは、タブ、改行、フォームフィード、キャリッジリターン、スペースの 5 つの ASCII 空白文字でテキストを分割します。

トークン化のルール​

whitespace トークナイザーは、次の 5 つの ASCII 空白文字でのみテキストを分割します。

文字名前Unicode コードポイント
\t水平タブU+0009
\n改行U+000A
\x0C または \fフォームフィードU+000C
\rキャリッジリターンU+000D
' 'スペースU+0020

これらの区切り文字は破棄され、連続する区切り文字から空のトークンは生成されません。句読点やその他の文字はトークンに残ります。特に、垂直タブ(\x0B、U+000B)、ノーブレークスペース(\u00A0)、および全角スペース(\u3000)は分割のトリガーにはなりません。

この文字セットは Rust の char::is_ascii_whitespace() に従っており、他の Unicode 空白文字は除外されます。

次の例では、フィルターを指定せずに {"tokenizer": "whitespace"} を使用します。入力と出力は Python の文字列表記を使用しており、\t や \u00A0 などのエスケープシーケンスは実際の文字を表します。

入力出力トークン
"a\tb\nc\x0Cd\re f"["a", "b", "c", "d", "e", "f"]
"Hello,World! foo_bar"["Hello,World!", "foo_bar"]
"a\x0Bb"["a\x0Bb"]
"a\u00A0b"["a\u00A0b"]
"a\u3000b"["a\u3000b"]
"\x20a\x20\x20b\x20"["a", "b"]

設定​

whitespace トークナイザーを使用するアナライザーを設定するには、analyzer_params で tokenizer を whitespace に設定します。

python
analyzer_params = {
"tokenizer": "whitespace",
}

whitespace トークナイザーは、1 つ以上のフィルターと組み合わせて使用できます。たとえば、次のコードは、whitespace トークナイザーと lowercase フィルター を使用するアナライザーを定義します。

python
analyzer_params = {
"tokenizer": "whitespace",
"filter": ["lowercase"]
}

analyzer_params を定義した後、コレクションスキーマを定義するときに、これらを VARCHAR フィールドに適用できます。これにより、Zilliz Cloud は指定されたアナライザーを使用してそのフィールド内のテキストを処理し、効率的なトークン化とフィルタリングを実行できます。詳細については、使用例 を参照してください。

例​

アナライザー設定をコレクションスキーマに適用する前に、run_analyzer メソッドを使用してその動作を確認してください。

アナライザーの設定​

python
analyzer_params = {
"tokenizer": "whitespace",
"filter": ["lowercase"]
}

run_analyzer を使用した検証​

python
from pymilvus import (
MilvusClient,
)

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

# Sample text to analyze
sample_text = "The Milvus vector database is built for scale!"

# Run the whitespace analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("Whitespace analyzer output:", result)

期待される出力​

sql
['the', 'milvus', 'vector', 'database', 'is', 'built', 'for', 'scale!']