タイ語Compatible with Milvus 3.0.0+
thai トークナイザーは、スペースに依存することなく、タイ語のテキストを単語トークンに分割します。タイ語、またはタイ語と英語が混在するテキスト用のカスタムアナライザーパイプラインを構築する必要がある場合は、このトークナイザーを使用してください。
設定
タイ語テキストについては、ほとんどの場合、組み込みの thai アナライザーを使用してください。この組み込みアナライザーには、このトークナイザーに加え、小文字変換、小数点桁の正規化、およびタイ語のストップワード除去機能が含まれています。thai トークナイザーを直接使用するのは、カスタムアナライザーパイプラインを構築する必要がある場合に限ってください。
thai トークナイザーを使用してアナライザーを設定するには、analyzer_params でtokenizer をthai に設定します。
analyzer_params = {
"tokenizer": "thai",
}
thai トークナイザーには、設定可能なパラメータはありません。
このトークナイザーは、1つまたは複数のフィルターと組み合わせて使用できます。たとえば、以下の設定では、thai トークナイザーを lowercase および decimaldigit フィルターと組み合わせて使用しています:
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
],
}
このカスタムパイプラインは、組み込みの_thai_ ストップワード辞書が含まれていないため、組み込みのthai アナライザーとは同等ではありません。完全な事前定義済みパイプラインについては、{"type": "thai"} を使用してください。
このトークナイザーは、以下の動作を行います:
- タイ語のセグメンテーション:空白に依存することなく、タイ語のテキストを単語トークンに分割します。
- 空白および句読点のフィルタリング:空白や句読点のみで構成されるセグメントを除外します。これは、
icuトークナイザーとは異なり、後者は句読点やスペースをトークンとして保持することができます。 - 混合スクリプトのテキスト:タイ語と英語が混在するテキストにおいて、ラテン文字の単語トークンを出力します。
- トークナイザーのみ:トークンの小文字化、Unicode 数字の正規化、ストップワードの除去は行いません。これらの処理には、フィルタを追加するか、組み込みの
thaiアナライザーを使用してください。 - 位置セマンティクス:スキップされた空白や句読点を含む、文字ベースのトークン位置を使用します。これにより、フレーズマッチングや近接マッチングの挙動が、他の非ラテン文字トークナイザーと一貫性を保つようになります。
analyzer_params を定義した後、コレクションスキーマを定義する際に、VARCHAR フィールドにこのアナライザーを適用できます。詳細については、「使用例」を参照してください。
例
アナライザの設定をコレクションスキーマに適用する前に、run_analyzer メソッドを使用してその動作を確認してください。
アナライザの設定
analyzer_params = {
"tokenizer": "thai",
}
xml-ph-0000@deepl.internal を使用した検証run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "สวัสดี! ทดสอบ, ระบบ Milvus ๑๒๓"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
期待される出力
['สวัสดี', 'ทดสอบ', 'ระบบ', 'Milvus', '๑๒๓']