跳到主要内容
版本:Cloud 开发指南

Remove Punct
公测版

removepunct 过滤器会从 token 流中移除单独存在的标点符号。 当你希望进行更干净的文本处理、专注于有意义的内容词而非标点时,可以使用该过滤器。

📘说明
  • 该过滤器在 jiebalinderaicu tokenizer 中最有效,因为这些 tokenizer 会将标点保留为独立的 token(例如 "Hello!"["Hello", "!"])。

  • 对于 standardwhitespace 等 tokenizer,它们在分词阶段就会丢弃标点,因此 removepunct 在这些情况下不会产生作用。

配置

removepunct 过滤器已内置在 Zilliz Cloud 中。要使用它,只需在 analyzer_paramsfilter 部分指定其名称即可。

analyzer_params = {
"tokenizer": "jieba",
"filter": ["removepunct"]
}

removepunct 过滤器作用于分词器生成的词项,因此必须与分词器结合使用。

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

示例输出

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

Analyzer 配置

analyzer_params = {
"tokenizer": "icu",
"filter": ["removepunct"]
}

使用 run_analyzer 验证效果

from pymilvus import (
MilvusClient,
)

client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")

# Sample text to analyze
sample_text = "Привет! Как дела?"

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

预期结果

['Привет', 'Как', 'дела']