Stemmer
يعمل مرشح " stemmer " على اختزال الكلمات إلى صيغتها الأساسية أو الجذرية (المعروفة باسم "الاستخلاص")، مما يسهل مطابقة الكلمات ذات المعاني المتشابهة عبر مختلف صيغ التصريف. ويدعم مرشح " stemmer " لغات متعددة، مما يتيح إجراء عمليات بحث وفهرسة فعالة في سياقات لغوية متنوعة.
التكوين
يُعد مرشح « stemmer » مرشحًا مخصصًا في Milvus. لاستخدامه، حدد « "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
}],
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter",
Collections.singletonList(
new HashMap<String, Object>() {{
put("type", "stemmer");
put("language", "english");
}}
)
);
const analyzer_params = {
"tokenizer": "standard",
"filter":[{
"type": "stemmer", // Specifies the filter type as stop
"language": "english",
}],
};
analyzerParams = map[string]any{"tokenizer": "standard",
"filter": []any{map[string]any{
"type": "stemmer",
"language": "english",
}}}
# restful
analyzerParams='{
"tokenizer": "standard",
"filter": [
{
"type": "stemmer",
"language": "english"
}
]
}'
يقبل مرشح « stemmer » المعلمات القابلة للتكوين التالية.
المعلمة |
الوصف |
|---|---|
|
يحدد لغة عملية استخلاص الجذور. تشمل اللغات المدعومة: |
يعمل مرشح " stemmer " على المصطلحات التي يولدها أداة التقطيع، لذا يجب استخدامه بالاقتران مع أداة التقطيع.
بالنسبة للنص العربي، استخدم المحلل المدمج arabic في معظم الحالات. يتضمن المحلل المدمج عملية استخلاص الجذور العربية إلى جانب تطبيع النص العربي، وتطبيع الأرقام العشرية، وإزالة الكلمات الممنوعة العربية. استخدم مرشح « stemmer » مباشرةً فقط عندما تحتاج إلى إنشاء مسار محلل مخصص.
بعد تعريف « analyzer_params » (أدوات التحليل)، يمكنك تطبيقها على حقل « VARCHAR » (التحليل) عند تعريف مخطط المجموعة. وهذا يسمح لـ Milvus بمعالجة النص في هذا الحقل باستخدام أداة التحليل المحددة من أجل التقطيع والتصفية بكفاءة. لمزيد من التفاصيل، راجع «مثال على الاستخدام».
أمثلة
قبل تطبيق تكوين المحلل على مخطط المجموعة الخاص بك، تحقق من سلوكه باستخدام طريقة run_analyzer.
تكوين المحلل
analyzer_params = {
"tokenizer": "standard",
"filter":[{
"type": "stemmer", # Specifies the filter type as stemmer
"language": "english", # Sets the language for stemming to English
}],
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter",
Collections.singletonList(
new HashMap<String, Object>() {{
put("type", "stemmer");
put("language", "english");
}}
)
);
// javascript
analyzerParams = map[string]any{"tokenizer": "standard",
"filter": []any{map[string]any{
"type": "stemmer",
"language": "english",
}}}
# restful
analyzerParams='{
"tokenizer": "standard",
"filter": [
{
"type": "stemmer",
"language": "english"
}
]
}'
التحقق باستخدام run_analyzerCompatible with Milvus 2.5.11+
from pymilvus import (
MilvusClient,
)
client = MilvusClient(uri="http://localhost:19530")
# 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)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.vector.request.RunAnalyzerReq;
import io.milvus.v2.service.vector.response.RunAnalyzerResp;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.build();
MilvusClientV2 client = new MilvusClientV2(config);
List<String> texts = new ArrayList<>();
texts.add("running runs looked ran runner");
RunAnalyzerResp resp = client.runAnalyzer(RunAnalyzerReq.builder()
.texts(texts)
.analyzerParams(analyzerParams)
.build());
List<RunAnalyzerResp.AnalyzerResult> results = resp.getResults();
// javascript
import (
"context"
"encoding/json"
"fmt"
"github.com/milvus-io/milvus/client/v2/milvusclient"
)
client, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
APIKey: "root:Milvus",
})
if err != nil {
fmt.Println(err.Error())
// handle error
}
bs, _ := json.Marshal(analyzerParams)
texts := []string{"running runs looked ran runner"}
option := milvusclient.NewRunAnalyzerOption(texts).
WithAnalyzerParams(string(bs))
result, err := client.RunAnalyzer(ctx, option)
if err != nil {
fmt.Println(err.Error())
// handle error
}
# restful
not support yet
الناتج المتوقع
['run', 'run', 'look', 'ran', 'runner']