メインコンテンツまでスキップ
バージョン: User Guides (BYOC)

Stemmer

stemmer フィルターは、単語をその基本形または語幹(ステミングと呼ばれる処理)に還元し、異なる活用形を持つ類似の意味の単語を簡単にマッチングできるようにします。stemmer フィルターは複数の言語をサポートしており、さまざまな言語環境において効果的な検索およびインデックス作成を実現します。

設定

stemmer フィルターは Zilliz Cloud におけるカスタムフィルターです。このフィルターを使用するには、フィルター設定で "type": "stemmer" を指定し、さらに language パラメータを設定してステミングに使用する言語を選択します。

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 フィルターはトークナイザーによって生成された語彙項(term)に対して動作するため、トークナイザーと組み合わせて使用する必要があります。

analyzer_params を定義した後、コレクションスキーマを定義する際に VARCHAR 型フィールドに適用できます。これにより、Zilliz Cloud はそのフィールドのテキストを指定されたアナライザーを使用して効率的にトークン化およびフィルタリング処理を行います。詳細については、Example use を参照してください。

コレクションスキーマにアナライザー設定を適用する前に、run_analyzer メソッドを使用してその動作を検証してください。

アナライザー設定

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

run_analyzer を使用した検証

from pymilvus import (
MilvusClient,
)

client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")

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

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

期待される出力

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