Normalisierung arabischer TexteCompatible with Milvus 3.0.0+

Der Filter „ arabic_normalization “ ist ein integrierter Token-Filter für arabischen Text. Er normalisiert arabische Buchstabevarianten und entfernt optionale Zeichen, die dazu führen können, dass gleichbedeutende arabische Begriffe bei der Textanalyse unterschiedlich dargestellt werden.

Konfiguration

Verwenden Sie für arabischen Text in den meisten Fällen den integrierten arabic Analysator. Der integrierte Analysator enthält diesen Filter zusammen mit der Standard-Tokenisierung, der Umwandlung in Kleinbuchstaben, der Normalisierung von Dezimalziffern, der arabischen Wortstammbildung und der Entfernung arabischer Stoppwörter. Verwenden Sie „ arabic_normalization “ nur dann direkt, wenn Sie eine benutzerdefinierte Analysator-Pipeline erstellen müssen.

Um den Filter „ arabic_normalization “ in einem benutzerdefinierten Analysator zu verwenden, fügen Sie ihn im Abschnitt „ filter “ unter „ analyzer_params “ hinzu:

analyzer_params = {
    "tokenizer": "standard",
    "filter": ["arabic_normalization"],
}

Der Filter „ arabic_normalization “ verfügt über keine konfigurierbaren Parameter.

Der Filter wendet die folgenden Transformationen an:

Transformation

Von

Nach

Hamza- und Alef-Varianten

آ, أ, إ

ا

Teh Marbuta

ة

ه

Alef Maksura

ى

ي

Harakat

U+064B durch U+065F

Entfernt

Tatweel / Kashida

ـ

Entfernt

Der Filter wird auf die vom Tokenizer generierten Token angewendet. Die obige Konfiguration ist bewusst als Beispiel für einen benutzerdefinierten Analysator gedacht und umfasst nicht die vollständige Pipeline zur Verarbeitung arabischer Sprache.

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": "standard",
    "filter": ["arabic_normalization"],
}

Ü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

['ادم', 'احمد', 'اسلام', 'مدرسه', 'كبري', 'كتاب', 'عربي']

Übersetzt vonDeepL

Verwaltetes Milvus kostenlos testen

Zilliz Cloud ist unkompliziert, basiert auf Milvus und ist 10-mal schneller.

Loslegen
Feedback

War diese Seite hilfreich?