跳到主要内容

Decompounder

decompounder 过滤器根据指定的字典将复合词拆分为单个组成部分,从而更容易搜索复合术语的部分。该过滤器对于经常使用复合词的语言(如德语)特别有用。

配置

decompounder 过滤器是 Zilliz Cloud 中的自定义过滤器,通过在过滤器配置中设置 "type": "decompounder" 并将word_list设置为您需要的值的方式来指定。

analyzer_params = {
"tokenizer": "standard",
"filter":[{
"type": "decompounder", # Specifies the filter type as decompounder
"word_list": ["dampf", "schiff", "fahrt", "brot", "backen", "automat"],
}],
}

decompounder 过滤器接受以下可选参数。

参数

描述

word_list

用于拆分复合术语的词组件列表。该字典决定了复合词如何被分解为单个术语。

decompounder 过滤器作用于分词器生成的词项,因此必须与分词器结合使用。有关 Zilliz Cloud 中可用的分词器列表,请参阅分词器参考

定义 analyzer_params 后,您可以在定义 Collection Schema 时将其应用于 VARCHAR 字段。这使得 Zilliz Cloud 能够使用指定的分析器处理该字段中的文本,以实现高效的分词和过滤。更多信息,请参阅使用示例

示例输出

在完成 Analyzer 配置后,您可以使用 run_analyzer 方法来验证分词效果是否符合预期。

Analyzer 配置

analyzer_params = {
"tokenizer": "standard",
"filter":[{
"type": "decompounder", # Specifies the filter type as decompounder
"word_list": ["dampf", "schiff", "fahrt", "brot", "backen", "automat"],
}],
}

使用 run_analyzer 验证效果

from pymilvus import (
MilvusClient,
)

client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")

# Sample text to analyze
sample_text = "dampfschifffahrt brotbackautomat"

# Run the standard analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("Standard analyzer output:", result)

预期结果

['dampf', 'schiff', 'fahrt', 'brotbackautomat']