跳到主要内容
版本:v2.5.x

Stemmer

stemmer 过滤器将单词还原为其基本形式或词根形式(称为词干化),从而更容易匹配不同词性中含义相似的单词。stemmer 过滤器支持多种语言,可在各种语言环境中进行有效搜索和索引。

配置

stemmer 过滤器是 Milvus 的自定义过滤器。要使用它,请在过滤器配置中指定 "type": "stemmer",并使用 language 参数选择所需的语言进行词干处理。

Python
analyzer_params = {
"tokenizer": "standard",
"filter":[{
"type": "stemmer", # Specifies the filter type as stemmer
"language": "english", # Sets the language for stemming to English
}],
}

stemmer 过滤器接受以下可配置参数。

参数

参数

language

指定词干处理的语言。支持的语言包括 "arabic","danish","dutch","english","finnish","french","german","greek","hungarian","italian","norwegian","portuguese","romanian","russian","spanish","swedish","tamil""turkish"

stemmer 过滤器对 Tokenizer(分词器)生成的 Token(词元)进行操作,因此必须与 Tokenizer 结合使用。

定义 analyzer_params 后,可以在定义 Collection Schema 时将它们应用到 VARCHAR 字段。这样,Milvus 就可以使用指定的分析器对该字段中的文本进行处理,从而实现高效的标记化和过滤。有关详情,请参阅 示例使用

示例

在将分析器配置应用到 Collection Schema 之前,请使用 run_analyzer 方法验证其行为。

Analyzer 配置

Python
analyzer_params = {
"tokenizer": "standard",
"filter":[{
"type": "stemmer", # Specifies the filter type as stemmer
"language": "english", # Sets the language for stemming to English
}],
}

验证使用 run_analyzer

Python
# Sample text to analyze
sample_text = "running runs looked ran runner"

# Run the standard analyzer with the defined configuration
result = MilvusClient.run_analyzer(sample_text, analyzer_params)
print(result)
Shell
# restful
not support yet

预期输出

Python
['run', 'run', 'look', 'ran', 'runner']