ThaiCompatible with Milvus 3.0.0+
Der Tokenizer „ thai “ segmentiert thailändischen Text in Wort-Token, ohne sich dabei auf Leerzeichen zu stützen. Verwenden Sie diesen Tokenizer, wenn Sie eine benutzerdefinierte Analysator-Pipeline für thailändischen oder gemischten thailändisch-englischen Text erstellen möchten.
Konfiguration
Für thailändischen Text verwenden Sie in den meisten Fällen den integrierten thai Analysator. Der integrierte Analysator umfasst diesen Tokenizer sowie die Umwandlung in Kleinbuchstaben, die Normalisierung von Dezimalziffern und das Entfernen thailändischer Stoppwörter. Verwenden Sie den „ thai “-Tokenizer nur dann direkt, wenn Sie eine benutzerdefinierte Analysator-Pipeline erstellen müssen.
Um einen Analysator mit dem Tokenizer „ thai “ zu konfigurieren, setzen Sie „ tokenizer “ in der Datei „ analyzer_params “ auf „ thai “.
analyzer_params = {
"tokenizer": "thai",
}
Der Tokenizer „ thai “ verfügt über keine konfigurierbaren Parameter.
Der Tokenizer kann mit einem oder mehreren Filtern arbeiten. Die folgende Konfiguration verwendet beispielsweise den Tokenizer „ thai “ mit dem lowercase und decimaldigit Filtern:
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
],
}
Diese benutzerdefinierte Pipeline entspricht nicht dem integrierten „ thai “-Analysator, da sie nicht das integrierte „ _thai_ “-Stopwort-Wörterbuch enthält. Verwenden Sie für die vollständige vordefinierte Pipeline {"type": "thai"}.
Der Tokenizer verhält sich wie folgt:
- Thai-Segmentierung: Segmentiert thailändischen Text in Wort-Token, ohne sich auf Leerzeichen zu stützen.
- Filterung von Leerzeichen und Satzzeichen: Filtert Segmente heraus, die ausschließlich aus Leerzeichen und Satzzeichen bestehen. Dies unterscheidet sich vom
icuTokenizer, der Satzzeichen und Leerzeichen als Token beibehalten kann. - Text mit gemischten Schriftzeichen: Gibt lateinische Wort-Token in gemischtem Thai/Englisch-Text aus.
- Nur Tokenizer: Wandelt Token nicht in Kleinbuchstaben um, normalisiert keine Unicode-Ziffern und entfernt keine Stoppwörter. Fügen Sie Filter hinzu oder verwenden Sie den integrierten
thaiAnalysator für diese Schritte. - Positionssemantik: Verwendet zeichenbasierte Token-Positionen, die übersprungene Leerzeichen und Satzzeichen einbeziehen, wodurch das Verhalten beim Phrasen- und Proximity-Abgleich mit anderen nicht-lateinischen Tokenizern konsistent bleibt.
Nachdem Sie „ analyzer_params “ definiert haben, können Sie den Analysator bei der Definition eines Sammlungsschemas auf ein Feld vom Typ „ VARCHAR “ 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 = {
"tokenizer": "thai",
}
Überprüfung mithilfe von 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', '๑๒๓']