Arabic
arabic analyzer 是用于阿拉伯语文本的内置 analyzer。当你需要 Milvus 规范化阿拉伯字母变体、移除变音符号和 Tatweel、转换阿拉伯-印度数字、应用阿拉伯语词干提取,并移除阿拉伯语停用词时,请使用此 analyzer。
Configuration
内置 analyzer 是 Milvus 提供的 analyzer 模板。要使用内置 analyzer,请在 analyzer_params 中将 type 设置为预定义的 analyzer 名称。
要使用内置 Arabic analyzer,请将 type 设置为 arabic:
analyzer_params = {
"type": "arabic",
}
arabic analyzer 接受以下可选参数:
参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
|
|
| 要在分词过程中移除的额外停用词列表。默认情况下, |
要添加自定义停用词,请包含 stop_words:
analyzer_params = {
"type": "arabic",
"stop_words": ["ميلفوس"],
}
Milvus 会在内置 _arabic_ 词典之外应用自定义停用词。
内置 arabic analyzer 等同于以下自定义 analyzer 配置:
analyzer_params = {
"tokenizer": "standard",
"filter": [
"lowercase",
"decimaldigit",
"arabic_normalization",
{
"type": "stemmer",
"language": "arabic",
},
{
"type": "stop",
"stop_words": "_arabic_",
},
],
}
此 analyzer 会应用以下处理步骤:
- Tokenization:使用
standardtokenizer 将文本拆分为 token。 - Digit normalization:使用
decimaldigitfilter 将阿拉伯-印度数字和其他 Unicode 十进制数字转换为 ASCII 数字。 - Arabic normalization:使用
arabic_normalizationfilter 对 Alef 变体、Teh Marbuta 和 Alef Maksura 进行规范化,并移除 Harakat 和 Tatweel。 - Stemming:使用
stemmerfilter,并将language设置为arabic。 - Stop-word removal:使用
stopfilter 和内置_arabic_词典。
定义 analyzer_params 后,你可以在定义 collection schema 时将该 analyzer 应用于 VARCHAR 字段。详情请参阅 Example use。
Examples
在将 analyzer 配置应用到 Collection Schema 之前,请使用 run_analyzer 方法验证其行为。
Analyzer configuration
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']