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

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!']