Cncharonly
Le filtre cncharonly supprime les jetons contenant des caractères non chinois. Ce filtre est utile lorsque vous souhaitez vous concentrer uniquement sur le texte chinois, en éliminant tous les jetons contenant d'autres caractères, chiffres ou symboles.
Configuration
Le filtre cncharonly est intégré à Milvus. Pour l'utiliser, il suffit de spécifier son nom dans la section filter de analyzer_params.
analyzer_params = {
"tokenizer": "jieba",
"filter": ["cncharonly"],
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "jieba");
analyzerParams.put("filter", Collections.singletonList("cncharonly"));
const analyzer_params = {
"tokenizer": "jieba",
"filter": ["cncharonly"],
};
analyzerParams = map[string]any{"tokenizer": "jieba", "filter": []any{"cncharonly"}}
# restful
analyzerParams='{
"tokenizer": "jieba",
"filter": [
"cncharonly"
]
}'
Le filtre cncharonly fonctionne sur les termes générés par le tokenizer, il doit donc être utilisé en combinaison avec un tokenizer. Pour obtenir une liste des tokenizers disponibles dans Milvus, reportez-vous à Jieba et à ses pages apparentées.
Après avoir défini analyzer_params, vous pouvez les appliquer à un champ VARCHAR lors de la définition d'un schéma de collection. Cela permet à Milvus de traiter le texte de ce champ à l'aide de l'analyseur spécifié pour une tokenisation et un filtrage efficaces. Pour plus de détails, voir Exemple d'utilisation.
Exemples
Avant d'appliquer la configuration de l'analyseur à votre schéma de collecte, vérifiez son comportement à l'aide de la méthode run_analyzer.
Configuration de l'analyseur
analyzer_params = {
"tokenizer": "jieba",
"filter": ["cncharonly"],
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "jieba");
analyzerParams.put("filter", Collections.singletonList("cncharonly"));
// javascript
analyzerParams = map[string]any{"tokenizer": "jieba", "filter": []any{"cncharonly"}}
# restful
Vérification à l'aide de run_analyzerCompatible with Milvus 2.5.11+
from pymilvus import (
MilvusClient,
)
client = MilvusClient(uri="http://localhost:19530")
# Sample text to analyze
sample_text = "Milvus 是 LF AI & Data Foundation 下的一个开源项目,以 Apache 2.0 许可发布。"
# Run the jieba tokenizer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("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("Milvus 是 LF AI & Data Foundation 下的一个开源项目,以 Apache 2.0 许可发布。");
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{"Milvus 是 LF AI & Data Foundation 下的一个开源项目,以 Apache 2.0 许可发布。"}
option := milvusclient.NewRunAnalyzerOption(texts).
WithAnalyzerParams(string(bs))
result, err := client.RunAnalyzer(ctx, option)
if err != nil {
fmt.Println(err.Error())
// handle error
}
# restful
Résultat attendu
['是', '下的一个开源项目', '以', '许可发布']