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

タイ語

thai トークナイザーは、スペースに依存せずにタイ語のテキストを単語トークンに分割します。タイ語、またはタイ語/English が混在するテキスト用のカスタムアナライザーパイプラインを構築する必要がある場合に、このトークナイザーを使用します。

設定​

Notes

タイ語のテキストには、ほとんどの場合、組み込みの thai アナライザーを使用してください。組み込みアナライザーには、このトークナイザーに加えて、小文字化、10 進数字の正規化、タイ語のストップワード削除が含まれています。thai トークナイザーを直接使用するのは、カスタムアナライザーパイプラインを構築する必要がある場合だけです。詳細は、タイ語アナライザー を参照してください。

thai トークナイザーを使用するアナライザーを設定するには、analyzer_params で tokenizer を thai に設定します。

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

thai トークナイザーには、設定可能なパラメーターはありません。

このトークナイザーは、1つ以上のフィルターと組み合わせて使用できます。たとえば、次の設定では、thai トークナイザーと lowercase および decimaldigit フィルターを使用します。

python
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
],
}

このカスタムパイプラインは、組み込みの _thai_ ストップワード辞書を含まないため、組み込みの thai アナライザーと同等ではありません。完全な定義済みパイプラインを使用するには、{"type": "thai"} を使用します。

このトークナイザーは、次のように動作します。

  • タイ語の分割: 空白に依存せずに、タイ語のテキストを単語トークンに分割します。

  • 空白と句読点のフィルタリング: 空白および句読点のみのセグメントを除外します。これは、句読点とスペースをトークンとして保持できる icu トークナイザーとは異なります。

  • 混在スクリプトのテキスト: タイ語/English が混在するテキストから、ラテン文字の単語トークンを出力します。

  • トークナイザーのみ: トークンの小文字化、Unicode 数字の正規化、ストップワードの削除は行いません。これらの処理には、フィルターを追加するか、組み込みの thai アナライザーを使用してください。

  • 位置のセマンティクス: スキップされた空白と句読点を含む文字ベースのトークン位置を使用します。これにより、フレーズマッチングと近接マッチングの動作が他の非ラテン系トークナイザーと一貫します。

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

例​

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

アナライザー設定​

python
analyzer_params = {
"tokenizer": "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', '๑๒๓']
このページは役に立ちましたか?