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

タイ語

thai アナライザーは、タイ語テキスト用の組み込みアナライザーです。Zilliz Cloud でタイ語テキストを単語に分割し、タイ語の数字を正規化し、混在するラテン文字を小文字に変換し、タイ語のストップワードを削除する必要がある場合は、このアナライザーを使用します。

設定​

組み込みアナライザーは、Milvus が提供するアナライザーテンプレートです。組み込みアナライザーを使用するには、analyzer_params の type に定義済みのアナライザー名を設定します。

組み込みのタイ語アナライザーを使用するには、type を thai に設定します。

python
analyzer_params = {
"type": "thai",
}

thai アナライザーは、次のオプションパラメーターを受け入れます。

パラメーター型デフォルト値説明
stop_wordslist[str]_thai_トークン化から削除する追加のストップワードのリストです。デフォルトでは、thai アナライザーは組み込みの _thai_ ディクショナリを使用します。デフォルトのディクショナリを確認するには、Zilliz Cloud のタイ語ストップワードリストを参照してください。このリストは、Apache Lucene のタイ語ストップワードファイルを由来としています。

カスタムストップワードを追加するには、stop_words を指定します。

python
analyzer_params = {
"type": "thai",
"stop_words": ["มิลวัส"],
}

Zilliz Cloud は、組み込みの _thai_ ディクショナリに加えて、カスタムストップワードを適用します。

組み込みの thai アナライザーは、次のカスタムアナライザー構成と同等です。

python
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
{
"type": "stop",
"stop_words": ["_thai_"],
},
],
}

このアナライザーは、次の処理手順を適用します。

  • トークン化: thai トークナイザーを使用して、空白に依存せずにタイ語テキストを単語トークンに分割します。トークナイザーは、空白および句読点のみのセグメントを除外します。詳細については、タイ語トークナイザーを参照してください。

  • 大文字と小文字の正規化: lowercase フィルターを使用します。これは、タイ語/English が混在するテキスト内のラテン文字に影響します。

  • 数字の正規化: decimaldigit フィルターを使用して、タイ語の数字やその他の Unicode 10 進数字を ASCII 数字に変換します。

  • ストップワードの削除: 組み込みの _thai_ ディクショナリとともに stop フィルターを使用します。

  • ステミングなし: 組み込みの thai アナライザーは stemmer フィルターを適用しません。

analyzer_params を定義した後、コレクションスキーマを定義する際に、アナライザーを VARCHAR フィールドに適用できます。詳細については、使用例を参照してください。

例​

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

アナライザー構成​

python
analyzer_params = {
"type": "thai",
}

run_analyzer を使用した検証​

python
from pymilvus import MilvusClient

client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")

sample_text = "ฉันรักการค้นหาข้อความใน Milvus ๑๒๓"

result = client.run_analyzer(sample_text, analyzer_params)
print(result)

期待される出力​

plaintext
['ฉัน', 'รัก', 'ค้นหา', 'ข้อความ', 'milvus', '123']
このページは役に立ちましたか?