タイ語Compatible with Milvus 3.0.0+
thai アナライザーは、タイ語テキスト用の組み込みアナライザーです。Milvusでタイ語テキストを単語単位に分割したり、タイ語の数字を正規化したり、混在するラテン文字を小文字に変換したり、タイ語のストップワードを除去したりする必要がある場合に、このアナライザーを使用してください。
設定
組み込みアナライザーは、Milvusが提供するアナライザーテンプレートです。組み込みアナライザーを使用するには、analyzer_params 内の `type ` を、あらかじめ定義されたアナライザー名に設定してください。
組み込みのタイ語アナライザーを使用するには、type をthai に設定します:
analyzer_params = {
"type": "thai",
}
thai アナライザでは、以下のオプションパラメータを使用できます:
パラメータ |
型 |
デフォルト |
説明 |
|---|---|---|---|
|
|
|
トークン化から除外する追加のストップワードのリスト。デフォルトでは、 |
カスタムストップワードを追加するには、stop_words を含めます:
analyzer_params = {
"type": "thai",
"stop_words": ["มิลวัส"],
}
Milvusは、組み込みの_thai_ 辞書に加えて、カスタムストップワードを適用します。
組み込みのthai アナライザは、以下のカスタムアナライザ設定と同等です:
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
{
"type": "stop",
"stop_words": ["_thai_"],
},
],
}
このアナライザーは、以下の処理ステップを適用します:
- トークン化:
thaiトークナイザーを使用して、空白に依存することなくタイ語のテキストを単語トークンに分割します。このトークナイザーは、空白や句読点のみからなるセグメントを除外します。 - 大文字小文字の正規化:
lowercaseフィルターを使用します。これは、タイ語と英語が混在するテキスト内のラテン文字に影響を与えます。 - 数字の正規化:
decimaldigitフィルターを使用して、タイ語の数字やその他のUnicode 10進数字をASCII数字に変換します。 - ストップワードの除去:
stopフィルターと、組み込みの_thai_辞書を使用します。 - ステミングなし:組み込みの
thaiアナライザーは、stemmerフィルターを適用しません。
analyzer_params を定義した後、コレクションスキーマを定義する際に、VARCHAR フィールドにこのアナライザーを適用できます。詳細については、「使用例」を参照してください。
例
アナライザーの設定をコレクションスキーマに適用する前に、run_analyzer メソッドを使用してその動作を確認してください。
アナライザの設定
analyzer_params = {
"type": "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', '123']