ArabischCompatible with Milvus 3.0.0+
Der Analysator „ arabic “ ist ein integrierter Analysator für arabischen Text. Verwenden Sie diesen Analysator, wenn Milvus arabische Buchstabenvarianten normalisieren, diakritische Zeichen und Tatweel entfernen, arabisch-indische Ziffern konvertieren, arabisches Stemming anwenden und arabische Stoppwörter entfernen soll.
Konfiguration
Integrierte Analysatoren sind von Milvus bereitgestellte Analysatorvorlagen. Um einen integrierten Analysator zu verwenden, setzen Sie „ type “ auf einen vordefinierten Analysatornamen unter „ analyzer_params “.
Um den integrierten arabischen Analysator zu verwenden, setzen Sie „ type “ auf „ arabic “:
analyzer_params = {
"type": "arabic",
}
Der Analysator „ arabic “ akzeptiert den folgenden optionalen Parameter:
Parameter |
Typ |
Standard |
Beschreibung |
|---|---|---|---|
|
|
|
Eine Liste zusätzlicher Stoppwörter, die bei der Tokenisierung entfernt werden sollen. Standardmäßig verwendet der „ |
Um benutzerdefinierte Stoppwörter hinzuzufügen, fügen Sie „ stop_words “ ein:
analyzer_params = {
"type": "arabic",
"stop_words": ["ميلفوس"],
}
Milvus wendet zusätzlich zum integrierten „ _arabic_ “-Wörterbuch benutzerdefinierte Stoppwörter an.
Der integrierte „ arabic “-Analysator entspricht der folgenden Konfiguration für einen benutzerdefinierten Analysator:
analyzer_params = {
"tokenizer": "standard",
"filter": [
"lowercase",
"decimaldigit",
"arabic_normalization",
{
"type": "stemmer",
"language": "arabic",
},
{
"type": "stop",
"stop_words": "_arabic_",
},
],
}
Dieser Analysator wendet die folgenden Verarbeitungsschritte an:
- Tokenisierung: Verwendet den „
standard“-Tokenizer, um Text in Token zu zerlegen. - Ziffernnormalisierung: Verwendet den Filter „
decimaldigit“, um arabisch-indische und andere Unicode-Dezimalziffern in ASCII-Ziffern umzuwandeln. - Arabische Normalisierung: Verwendet den Filter „
arabic_normalization“, um Alef-Varianten, Teh Marbuta und Alef Maksura zu normalisieren sowie Harakat und Tatweel zu entfernen. - Stemming: Verwendet den Filter „
stemmer“, wobei „language“ auf „arabic“ gesetzt ist. - Entfernung von Stoppwörtern: Verwendet den Filter „
stop“ mit dem integrierten Wörterbuch „_arabic_“.
Nachdem Sie „ analyzer_params “ definiert haben, können Sie den Analysator bei der Definition eines Sammlungsschemas auf ein „ VARCHAR “-Feld anwenden. Weitere Informationen finden Sie unter „Anwendungsbeispiel“.
Beispiele
Bevor Sie die Analysator-Konfiguration auf Ihr Sammlungsschema anwenden, überprüfen Sie deren Verhalten mithilfe der Methode „ run_analyzer “.
Analysator-Konfiguration
analyzer_params = {
"type": "arabic",
}
Überprüfung mithilfe von run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "كِتَابٌ عـــربي ١٢٣"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
Erwartete Ausgabe
['كتاب', 'عرب', '123']