ThaiCompatible with Milvus 3.0.0+
Der Analysator „ thai “ ist ein integrierter Analysator für thailändischen Text. Verwenden Sie diesen Analysator, wenn Milvus thailändischen Text in Wörter segmentieren, thailändische Ziffern normalisieren, gemischten lateinischen Text in Kleinbuchstaben umwandeln und thailändische 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 thailändischen Analysator zu verwenden, setzen Sie „ type “ auf „ thai “:
analyzer_params = {
"type": "thai",
}
Der Analysator „ thai “ 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": "thai",
"stop_words": ["มิลวัส"],
}
Milvus wendet zusätzlich zum integrierten „ _thai_ “-Wörterbuch benutzerdefinierte Stoppwörter an.
Der integrierte „ thai “-Analysator entspricht der folgenden Konfiguration für einen benutzerdefinierten Analysator:
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
{
"type": "stop",
"stop_words": ["_thai_"],
},
],
}
Dieser Analysator wendet die folgenden Verarbeitungsschritte an:
- Tokenisierung: Verwendet den
thaiTokenizer, um thailändischen Text in Wort-Token zu segmentieren, ohne sich auf Leerzeichen zu stützen. Der Tokenizer filtert Segmente heraus, die ausschließlich aus Leerzeichen und Satzzeichen bestehen. - Groß-/Kleinschreibungsnormalisierung: Verwendet den Filter „
lowercase“, der lateinische Buchstaben in gemischtem thailändisch-englischem Text beeinflusst. - Ziffernnormalisierung: Verwendet den Filter „
decimaldigit“, um thailändische Ziffern und andere Unicode-Dezimalziffern in ASCII-Ziffern umzuwandeln. - Entfernung von Stoppwörtern: Verwendet den Filter „
stop“ mit dem integrierten Wörterbuch „_thai_“. - Kein Stemming: Der integrierte „
thai“-Analysator wendet keinen „stemmer“-Filter an.
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": "thai",
}
Überprüfung mit run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "ฉันรักการค้นหาข้อความใน Milvus ๑๒๓"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
Erwartete Ausgabe
['ฉัน', 'รัก', 'ค้นหา', 'ข้อความ', 'milvus', '123']