المسافات البيضاء
يقوم أداة التجزئة whitespace بتقسيم النص عند خمسة أحرف مسافة بيضاء ASCII: علامة الجدولة، وتغذية السطر، وتغذية النموذج، وإرجاع عربة النص، والمسافة.
قواعد التقطيع
يقوم أداة تحليل النص whitespace بتقسيم النص فقط عند أحرف المسافات البيضاء الخمسة التالية في ASCII:
| الحرف | الاسم | نقطة رمز يونيكود |
|---|---|---|
\t | علامة الجدولة الأفقية | U+0009 |
\n | تغذية السطر | U+000A |
\x0C أو \f | تغذية الصفحة | U+000C |
\r | إرجاع الحامل | U+000D |
' ' | مسافة | U+0020 |
يتم تجاهل هذه الفواصل، ولا تنتج الفواصل المتتالية رموزًا فارغة. تظل علامات الترقيم والأحرف الأخرى في الرموز. وعلى وجه الخصوص، لا تؤدي علامة الجدولة الرأسية (\x0B ، U+000B) والمسافة غير القابلة للكسر (\u00A0) والمسافة الأيدوغرافية (\u3000) إلى تقسيم الرموز.
تتبع هذه المجموعة معيار Rust char::is_ascii_whitespace()، التي تستبعد أحرف المسافات البيضاء الأخرى في يونيكود.
تستخدم الأمثلة التالية {"tokenizer": "whitespace"} بدون أي فلاتر. تستخدم المدخلات والمخرجات صيغة سلاسل Python: تمثل تسلسلات الهروب مثل \t و \u00A0 الأحرف الفعلية.
| الإدخال | رموز الإخراج |
|---|---|
"a\tb\nc\x0Cd\re f" | ["a", "b", "c", "d", "e", "f"] |
"Hello,World! foo_bar" | ["Hello,World!", "foo_bar"] |
"a\x0Bb" | ["a\x0Bb"] |
"a\u00A0b" | ["a\u00A0b"] |
"a\u3000b" | ["a\u3000b"] |
" a b " | ["a", "b"] |
التكوين
لتكوين محلل باستخدام أداة تجزئة الرموز whitespace ، قم بتعيين tokenizer إلى whitespace في analyzer_params.
analyzer_params = {
"tokenizer": "whitespace",
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "whitespace");
const analyzer_params = {
"tokenizer": "whitespace"
};
analyzerParams = map[string]any{"tokenizer": "whitespace"}
# restful
analyzerParams='{
"tokenizer": "whitespace"
}'
يمكن لمُقسِّم الرموز whitespace العمل بالاقتران مع مرشح واحد أو أكثر. على سبيل المثال، يُعرِّف الكود التالي مُحلِّلًا يستخدم مُقسِّم الرموز whitespace ومرشح lowercase:
analyzer_params = {
"tokenizer": "whitespace",
"filter": ["lowercase"]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "whitespace");
analyzerParams.put("filter", Collections.singletonList("lowercase"));
const analyzer_params = {
"tokenizer": "whitespace",
"filter": ["lowercase"]
};
analyzerParams = map[string]any{"tokenizer": "whitespace", "filter": []any{"lowercase"}}
# restful
analyzerParams='{
"tokenizer": "whitespace",
"filter": [
"lowercase"
]
}'
بعد تعريف analyzer_params ، يمكنك تطبيقها على حقل VARCHAR عند تعريف مخطط المجموعة. يتيح ذلك لـ Milvus معالجة النص الموجود في هذا الحقل باستخدام أداة التحليل المحددة من أجل التقطيع والتصفية بكفاءة. لمزيد من التفاصيل، راجع مثال الاستخدام.
أمثلة
قبل تطبيق تكوين المحلل على مخطط المجموعة الخاص بك، تحقق من سلوكه باستخدام طريقة run_analyzer.
تكوين المحلل
analyzer_params = {
"tokenizer": "whitespace",
"filter": ["lowercase"]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "whitespace");
analyzerParams.put("filter", Collections.singletonList("lowercase"));
// javascript
analyzerParams = map[string]any{"tokenizer": "whitespace", "filter": []any{"lowercase"}}
# restful
التحقق باستخدام run_analyzerCompatible with Milvus 2.5.11+
from pymilvus import (
MilvusClient,
)
client = MilvusClient(uri="http://localhost:19530")
# Sample text to analyze
sample_text = "The Milvus vector database is built for scale!"
# Run the whitespace analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("Whitespace 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("The Milvus vector database is built for scale!");
RunAnalyzerResp resp = client.runAnalyzer(RunAnalyzerReq.builder()
.texts(texts)
.analyzerParams(analyzerParams)
.build());
List<RunAnalyzerResp.AnalyzerResult> results = resp.getResults();
// javascript
import (
"context"
"fmt"
"github.com/milvus-io/milvus/client/v2/milvusclient"
)
ctx := context.Background()
client, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
APIKey: "root:Milvus",
})
if err != nil {
fmt.Println(err.Error())
// handle error
}
texts := []string{"The Milvus vector database is built for scale!"}
option := milvusclient.NewRunAnalyzerOption(texts...).
WithAnalyzerParams(analyzerParams)
result, err := client.RunAnalyzer(ctx, option)
if err != nil {
fmt.Println(err.Error())
// handle error
}
# restful
الناتج المتوقع
['the', 'milvus', 'vector', 'database', 'is', 'built', 'for', 'scale!']