Нормализация арабского текстаCompatible with Milvus 3.0.0+
Фильтр « arabic_normalization » — это встроенный фильтр токенов для арабского текста. Он нормализует варианты букв, характерные для арабского языка, и удаляет необязательные знаки, из-за которых эквивалентные арабские термины могут выглядеть по-разному при анализе текста.
Настройка
Для арабского текста в большинстве случаев следует использовать встроенный arabic анализатор. Встроенный анализатор включает этот фильтр наряду со стандартной токенизацией, преобразованием в нижний регистр, нормализацией десятичных цифр, арабским стеммингом и удалением арабских стоп-слов. Используйте « arabic_normalization » напрямую только в том случае, если вам необходимо создать собственный конвейер анализатора.
Чтобы использовать фильтр « arabic_normalization » в пользовательском анализаторе, добавьте его в раздел « filter » в файле « analyzer_params »:
analyzer_params = {
"tokenizer": "standard",
"filter": ["arabic_normalization"],
}
Фильтр arabic_normalization не имеет настраиваемых параметров.
Фильтр применяет следующие преобразования:
Преобразование |
Из |
В |
|---|---|---|
Варианты «Хамза + Алеф» |
|
|
Тех Марбута |
|
|
Алеф Максура |
|
|
Харакат |
|
Удалено |
Татвиль / Кашида |
|
Удалено |
Фильтр работает с токенами, сгенерированными токенизатором. Приведенная выше конфигурация является намеренно приведенным примером пользовательского анализатора и не включает полный конвейер обработки арабского языка.
Примеры
Прежде чем применять конфигурацию анализатора к схеме вашей коллекции, проверьте его поведение с помощью метода run_analyzer.
Конфигурация анализатора
analyzer_params = {
"tokenizer": "standard",
"filter": ["arabic_normalization"],
}
Проверка с помощью run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "آدم أحمد إسلام مدرسة كبرى كِتَابٌ عـــربي"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
Ожидаемый результат
['ادم', 'احمد', 'اسلام', 'مدرسه', 'كبري', 'كتاب', 'عربي']