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

タイ語

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']
このページは役に立ちましたか?