المسافات البيضاء

يقوم أداة التجزئة 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!']

ترجمة بواسطةDeepL

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟