阿拉伯语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 后,您可以在定义Collection Schema时将该分析器应用于VARCHAR 字段。有关详细信息,请参阅“使用示例”

示例

在将分析器配置应用于 Collection Schema 之前,请使用 `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 SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?