阿拉伯語Compatible with Milvus 3.0.0+

arabic 分析器是專為阿拉伯文設計的內建分析器。當您需要 Milvus 對阿拉伯文字母變體進行標準化、移除標點符號與 Tatweel、轉換阿拉伯-印度數字、套用阿拉伯文詞幹化,以及移除阿拉伯文停用詞時,請使用此分析器。

設定

內建分析器是 Milvus 提供的分析器範本。若要使用內建分析器,請將 `type ` 設定為 `analyzer_params` 中預先定義的分析器名稱。

若要使用內建的阿拉伯語分析器,請將 `type ` 設定為 `arabic`:

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

arabic 分析器接受以下選填參數:

參數

類型

預設值

說明

stop_words

list[str]

_arabic_

一組需從分詞過程中移除的額外停用詞清單。預設情況下,arabic 分析器會使用內建的_arabic_ 字典。如需檢視預設字典,請參閱 Milvus阿拉伯語停用詞清單。該清單來源為 Apache Lucene阿拉伯語停用詞檔案

若要新增自訂停用詞,請加入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 十進位數字轉換為 ASCII 數字。
  • 阿拉伯文正規化:使用arabic_normalization 篩選器,對阿萊夫(Alef)變體、帶綁結的泰(Teh Marbuta)及帶點的阿萊夫(Alef Maksura)進行正規化,並移除哈拉卡特(Harakat)與塔特維爾(Tatweel)。
  • 詞幹提取:使用stemmer 篩選器,並將language 設定為arabic
  • 停用詞移除:使用stop 篩選器,並搭配內建的_arabic_ 字典。

定義analyzer_params 後,您可在定義集合架構時,將此分析器套用至VARCHAR 欄位。詳細資訊請參閱「使用範例」。

範例

在將分析器設定套用至您的集合架構之前,請先使用 `run_analyzer ` 方法驗證其行為。

分析器設定

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

使用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']

翻譯者DeepL

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?