アラビア語Compatible with Milvus 3.0.0+
arabic アナライザーは、アラビア語テキスト用の組み込みアナライザーです。Milvusにアラビア文字の異体字の正規化、発音記号やタトウィールの削除、アラビア・インド系数字の変換、アラビア語のステミングの適用、およびアラビア語のストップワードの削除を行わせる必要がある場合は、このアナライザーを使用してください。
設定
組み込みアナライザーは、Milvusが提供するアナライザーテンプレートです。組み込みアナライザーを使用するには、analyzer_params 内の `type ` を、あらかじめ定義されたアナライザー名に設定してください。
組み込みのアラビア語アナライザーを使用するには、type をarabic に設定します:
analyzer_params = {
"type": "arabic",
}
arabic アナライザは、以下のオプションパラメータを受け付けます:
パラメータ |
型 |
デフォルト |
説明 |
|---|---|---|---|
|
|
|
トークン化から除外する追加のストップワードのリスト。デフォルトでは、 |
カスタムストップワードを追加するには、stop_words を含めます:
analyzer_params = {
"type": "arabic",
"stop_words": ["ميلفوس"],
}
Milvusは、組み込みの_arabic_ 辞書に加えて、カスタムストップワードを適用します。
組み込みのarabic アナライザは、以下のカスタムアナライザ設定と同等です:
analyzer_params = {
"tokenizer": "standard",
"filter": [
"lowercase",
"decimaldigit",
"arabic_normalization",
{
"type": "stemmer",
"language": "arabic",
},
{
"type": "stop",
"stop_words": "_arabic_",
},
],
}
このアナライザーは、以下の処理ステップを適用します:
- トークン化:
standardトークナイザーを使用して、テキストをトークンに分割します。 - 数字の正規化:
decimaldigitフィルターを使用して、アラビア・インド系およびその他のUnicode 10進数字をASCII数字に変換します。 - アラビア語の正規化:
arabic_normalizationフィルターを使用して、アレフの異体字、テ・マルブータ、アレフ・マクスラを正規化し、ハラカトおよびタトゥイールを削除します。 - ステミング:`
language` を `arabic` に設定した `stemmer` フィルターを使用します。 - ストップワードの除去:組み込みの
_arabic_辞書を使用して、stopフィルターを使用します。
analyzer_params を定義した後、コレクションスキーマを定義する際に、VARCHAR フィールドにこのアナライザーを適用できます。詳細については、「使用例」を参照してください。
例
アナライザの設定をコレクションスキーマに適用する前に、run_analyzer メソッドを使用してその動作を確認してください。
アナライザの設定
analyzer_params = {
"type": "arabic",
}
xml-ph-0000@deepl.internal を使用した検証run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "كِتَابٌ عـــربي ١٢٣"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
期待される出力
['كتاب', 'عرب', '123']