阿拉伯语规范化Compatible with Milvus 3.0.0+
arabic_normalization 过滤器是一个用于阿拉伯语文本的内置标记过滤器。它可对阿拉伯语特有的字母变体进行规范化处理,并移除那些可能导致等效阿拉伯语术语在文本分析过程中显示不一致的可选标记。
配置
对于阿拉伯语文本,在大多数情况下请使用内置的 arabic 分析器。该内置分析器集成了此过滤器,同时还包含标准分词、转小写、小数位规范化、阿拉伯语词干提取以及阿拉伯语停用词移除功能。仅当需要构建自定义分析器管道时,才应直接使用 `arabic_normalization `。
要在自定义分析器中使用arabic_normalization 过滤器,请将其添加到analyzer_params 中的filter 部分:
analyzer_params = {
"tokenizer": "standard",
"filter": ["arabic_normalization"],
}
arabic_normalization 过滤器没有可配置的参数。
该过滤器执行以下转换:
转换 |
源 |
转换为 |
|---|---|---|
哈姆扎 + 阿莱夫变体 |
|
|
带点“Teh” |
|
|
阿莱夫·马克苏拉 |
|
|
哈拉卡特 |
|
已删除 |
塔特维尔 / 卡希达 |
|
已移除 |
该过滤器对分词器生成的令牌进行处理。上述配置是一个特意设计的自定义分析器示例,并不包含完整的阿拉伯语处理管道。
示例
在将分析器配置应用到您的Collection Schema之前,请使用run_analyzer 方法验证其行为。
分析器配置
analyzer_params = {
"tokenizer": "standard",
"filter": ["arabic_normalization"],
}
使用以下方法进行验证run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "آدم أحمد إسلام مدرسة كبرى كِتَابٌ عـــربي"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
预期输出
['ادم', 'احمد', 'اسلام', 'مدرسه', 'كبري', 'كتاب', 'عربي']