Spasi

Pembagi teks whitespace membagi teks berdasarkan lima karakter spasi kosong ASCII: tab, line feed, form feed, carriage return, dan spasi.

Aturan tokenisasi

Tokenizer whitespace memisahkan teks hanya pada lima karakter spasi kosong ASCII berikut:

KarakterNamaTitik kode Unicode
\tTabulasi horizontalU+0009
\nPindah barisU+000A
\x0C atau \fPindah halamanU+000C
\rKembali gerbongU+000D
' 'SpasiU+0020

Pemisah-pemisah ini diabaikan, dan pemisah yang berurutan tidak menghasilkan token kosong. Tanda baca dan karakter lainnya tetap ada dalam token. Secara khusus, tab vertikal (\x0B, U+000B), spasi anti-pemecahan (\u00A0), dan spasi ideografis (\u3000) tidak memicu pemisahan.

Kumpulan ini mengikuti aturan Rust’s char::is_ascii_whitespace(), yang mengecualikan karakter spasi kosong Unicode lainnya.

Contoh-contoh berikut menggunakan {"tokenizer": "whitespace"} tanpa filter. Masukan dan keluaran menggunakan notasi string Python: urutan escape seperti \t dan \u00A0 mewakili karakter sebenarnya.

MasukanToken keluaran
"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"]

Konfigurasi

Untuk mengonfigurasi penganalisis menggunakan tokenizer ` whitespace `, atur ` tokenizer ` menjadi ` whitespace ` di ` 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"
}'

Tokenizer spasi kosong dapat bekerja bersama dengan satu atau lebih filter. Misalnya, kode berikut mendefinisikan penganalisis yang menggunakan tokenizer whitespace dan filter 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"
  ]
}'

Setelah mendefinisikan analyzer_params, Anda dapat menerapkannya ke bidang VARCHAR saat mendefinisikan skema koleksi. Hal ini memungkinkan Milvus memproses teks di bidang tersebut menggunakan penganalisis yang ditentukan untuk tokenisasi dan penyaringan yang efisien. Untuk detailnya, lihat Contoh penggunaan.

Contoh

Sebelum menerapkan konfigurasi penganalisis ke skema koleksi Anda, verifikasi perilakunya menggunakan metode ` run_analyzer `.

Konfigurasi penganalisis

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

Verifikasi menggunakan 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

Hasil yang diharapkan

['the', 'milvus', 'vector', 'database', 'is', 'built', 'for', 'scale!']

Diterjemahkan olehDeepL

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?