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

アラビア語

arabic アナライザーは、アラビア語テキスト用の組み込みアナライザーです。Zilliz Cloud でアラビア文字の異形を正規化し、分音記号とタトウィールを削除し、アラビア・インド数字を変換し、アラビア語のステミングを適用し、アラビア語のストップワードを削除する必要がある場合に、このアナライザーを使用します。

構成​

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

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

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

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

パラメーター型デフォルト説明
stop_wordslist[str]_arabic_トークン化から削除する追加のストップワードのリストです。デフォルトでは、arabic アナライザーは組み込みの _arabic_ 辞書を使用します。デフォルトの辞書を確認するには、アラビア語のストップワードリスト を参照してください。このリストは、Apache Lucene のアラビア語ストップワードファイル を基にしています。

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

python
analyzer_params = {
"type": "arabic",
"stop_words": ["ميلفوس"],
}

Zilliz Cloud は、組み込みの _arabic_ 辞書に加えてカスタムストップワードを適用します。

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

python
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 メソッドを使用してその動作を確認してください。

アナライザーの構成​

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

run_analyzer を使用した検証​

python
from pymilvus import MilvusClient

client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")

sample_text = "كِتَابٌ عـــربي ١٢٣"

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

期待される出力​

plaintext
['كتاب', 'عرب', '123']
このページは役に立ちましたか?