АрабскийCompatible with Milvus 3.0.0+

Анализатор « arabic » — это встроенный анализатор для арабского текста. Используйте этот анализатор, если вам нужно, чтобы Milvus нормализовал варианты арабских букв, удалил диакритические знаки и татвиль, преобразовал арабо-индийские цифры, применил арабскую стеминг-обработку и удалил арабские стоп-слова.

Настройка

Встроенные анализаторы представляют собой шаблоны анализаторов, предоставляемые Milvus. Чтобы использовать встроенный анализатор, установите для параметра ` type ` значение, соответствующее одному из предопределенных имен анализаторов, указанных в файле ` analyzer_params`.

Чтобы использовать встроенный арабский анализатор, установите для параметра ` type ` значение из списка arabic:

analyzer_params = {
    "type": "arabic",
}

Анализатор arabic принимает следующий дополнительный параметр:

Параметр

Тип

По умолчанию

Описание

stop_words

list[str]

_arabic_

Список дополнительных стоп-слов, которые следует исключить из токенизации. По умолчанию анализатор « arabic » использует встроенный словарь « _arabic_ ». Чтобы ознакомиться со словарем по умолчанию, обратитесь к списку арабских стоп-слов Milvus. Этот список взят из файла арабских стоп-слов Apache Lucene.

Чтобы добавить собственные стоп-слова, включите stop_words:

analyzer_params = {
    "type": "arabic",
    "stop_words": ["ميلفوس"],
}

Milvus применяет пользовательские стоп-слова в дополнение к встроенному словарю _arabic_.

Встроенный анализатор « arabic » эквивалентен следующей конфигурации пользовательского анализатора:

analyzer_params = {
    "tokenizer": "standard",
    "filter": [
        "lowercase",
        "decimaldigit",
        "arabic_normalization",
        {
            "type": "stemmer",
            "language": "arabic",
        },
        {
            "type": "stop",
            "stop_words": "_arabic_",
        },
    ],
}

Этот анализатор выполняет следующие этапы обработки:

  • Токенизация: использует токенизатор standard для разбиения текста на токены.
  • Нормализация цифр: использует фильтр « decimaldigit » для преобразования арабо-индийских и других десятичных цифр Unicode в цифры ASCII.
  • Нормализация арабских символов: использует фильтр arabic_normalization для нормализации вариантов буквы «Алеф», «Тех Марбута» и «Алеф Максура», а также для удаления знаков «Харакат» и «Татвиль».
  • Стеминг: использует фильтр « stemmer » с параметром « language », установленным в значение « arabic ».
  • Удаление стоп-слов: используется фильтр « stop » со встроенным словарем « _arabic_ ».

После определения analyzer_params можно применить анализатор к полю VARCHAR при определении схемы коллекции. Подробности см. в разделе «Пример использования».

Примеры

Прежде чем применять конфигурацию анализатора к схеме коллекции, проверьте его поведение с помощью метода ` run_analyzer `.

Настройка анализатора

analyzer_params = {
    "type": "arabic",
}

Проверка с помощью run_analyzer

from pymilvus import MilvusClient

client = MilvusClient(uri="http://localhost:19530")

sample_text = "كِتَابٌ عـــربي ١٢٣"

result = client.run_analyzer(sample_text, analyzer_params)
print(result)

Ожидаемый результат

['كتاب', 'عرب', '123']

ПереведеноDeepL

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?