Zeichensatz entfernenCompatible with Milvus 2.5.11+
Der Filter „ removepunct “ entfernt Token, die Satzzeichen oder Leerzeichen enthalten, aus dem Token-Stream. Verwenden Sie ihn, wenn Sie eine sauberere Textverarbeitung wünschen, die sich auf aussagekräftige Inhaltswörter statt auf Satzzeichen konzentriert.
Dieser Filter ist am effektivsten in Verbindung mit den Tokenisierern „ jieba “, „ lindera “ und „ icu “, die Satzzeichen als separate Token beibehalten (z. B. „ "Hello!" “ → „ ["Hello", "!"] “). Der Tokenizer „ standard “ verwirft Interpunktionszeichen während der Tokenisierung. Der Tokenizer „ whitespace “ behält Interpunktionszeichen bei, einschließlich solcher innerhalb eines Tokens. In Kombination mit „ whitespace “ entfernt „ removepunct “ das gesamte Token, wenn es Interpunktionszeichen oder Leerzeichen enthält; einzelne Zeichen werden dabei nicht aus dem Token entfernt.
Konfiguration
Der Filter „ removepunct “ ist in Milvus integriert. Um ihn zu verwenden, geben Sie einfach seinen Namen im Abschnitt „ filter “ unter „ analyzer_params “ an.
analyzer_params = {
"tokenizer": "jieba",
"filter": ["removepunct"]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "jieba");
analyzerParams.put("filter", Collections.singletonList("removepunct"));
// node
analyzerParams = map[string]any{"tokenizer": "jieba", "filter": []any{"removepunct"}}
# restful
Der Filter „ removepunct “ verarbeitet die vom Tokenizer erzeugten Terme und muss daher in Kombination mit einem Tokenizer verwendet werden.
Nachdem Sie „ analyzer_params “ definiert haben, können Sie diese bei der Definition eines Sammlungsschemas auf ein „ VARCHAR “-Feld anwenden. Dadurch kann Milvus den Text in diesem Feld mit dem angegebenen Analysator verarbeiten, um eine effiziente Tokenisierung und Filterung zu gewährleisten. Weitere Informationen finden Sie unter „Anwendungsbeispiel“.
Beispiele
Bevor Sie die Analyzer-Konfiguration auf Ihr Sammlungsschema anwenden, überprüfen Sie deren Verhalten mithilfe der Methode „ run_analyzer “.
Analysator-Konfiguration
analyzer_params = {
"tokenizer": "icu",
"filter": ["removepunct"]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "icu");
analyzerParams.put("filter", Collections.singletonList("removepunct"));
// node
analyzerParams = map[string]any{"tokenizer": "icu", "filter": []string{"removepunct"}}
# restful
Überprüfung mit run_analyzer
from pymilvus import (
MilvusClient,
)
client = MilvusClient(uri="http://localhost:19530")
# Sample text to analyze
sample_text = "Привет! Как дела?"
# 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("Привет! Как дела?");
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{"Привет! Как дела?"}
option := milvusclient.NewRunAnalyzerOption(texts).
WithAnalyzerParams(string(bs))
result, err := client.RunAnalyzer(ctx, option)
if err != nil {
fmt.Println(err.Error())
// handle error
}
# restful
Erwartete Ausgabe
['Привет', 'Как', 'дела']