Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Обработка текста

Справочник по токенизаторам

Разница между токенизацией Elasticsearch и нейронной токенизацией

Процесс токенизации Elasticsearch генерирует лингвистические токены, оптимизированные для поиска и извлечения. Это отличается от нейронной токенизации в контексте машинного обучения и обработки естественного языка. Нейронные токенизаторы переводят строки в более мелкие токены подслов, которые кодируются в векторы для потребления нейронными сетями. Elasticsearch не имеет встроенных нейронных токенизаторов.

Токенизатор получает поток символов, разбивает его на отдельные токены (обычно отдельные слова) и выводит поток токенов. Например, токенизатор whitespace разбивает текст на токены всякий раз, когда встречается пробел. Он преобразует текст "Quick brown fox!" в термины [Quick, brown, fox!].

Токенизатор также отвечает за запись следующего:

  • Порядок или позиция каждого термина (используется для запросов по фразам и близости слов)
  • Начальная и конечная позиции символов исходного слова, которое представляет термин (используется для выделения фрагментов поиска).
  • Тип токена, классификация каждого сгенерированного термина, например <ALPHANUM>, <HANGUL> или <NUM>. Более простые анализаторы генерируют только тип токена word.

Elasticsearch имеет ряд встроенных токенизаторов, которые могут быть использованы для создания настраиваемых анализаторов.

Токенизаторы, ориентированные на слова

Следующие токенизаторы обычно используются для токенизации полного текста на отдельные слова:

Стандартный токенизатор
Токенизатор standard разбивает текст на термины на границах слов, как определено алгоритмом Unicode Text Segmentation. Он удаляет большинство знаков препинания. Он является лучшим выбором для большинства языков.
Токенизатор по буквам
Токенизатор letter разбивает текст на термины всякий раз, когда встречается символ, который не является буквой.
Токенизатор с переводом в нижний регистр
Токенизатор lowercase, подобно токенизатору letter, разбивает текст на термины всякий раз, когда встречается символ, который не является буквой, но также переводит все термины в нижний регистр.
Токенизатор по пробелам
Токенизатор whitespace разбивает текст на термины при встрече любого символа пробела.
Токенизатор UAX URL email
Токенизатор uax_url_email похож на токенизатор standard, за исключением того, что он распознает URL-адреса и адреса электронной почты как отдельные токены.
Классический токенизатор
Токенизатор classic - это основанный на грамматике токенизатор для английского языка.
Токенизатор тайского языка
Токенизатор thai сегментирует тайский текст на слова.

Токенизаторы частичных слов

Эти токенизаторы разбивают текст или слова на небольшие фрагменты для частичного сопоставления слов:

Токенизатор n-грамм
Токенизатор ngram может разбивать текст на слова при встрече любого из указанного списка символов (например, пробелы или знаки препинания), а затем возвращает n-граммы каждого слова: скользящее окно непрерывных букв, например, quick → [qu, ui, ic, ck].
Токенизатор пограничных n-грамм
Токенизатор edge_ngram может разбивать текст на слова при встрече любого из указанного списка символов (например, пробелы или знаки препинания), а затем возвращает n-граммы каждого слова, привязанные к началу слова, например, quick → [q, qu, qui, quic, quick].

Токенизаторы структурированного текста

Следующие токенизаторы обычно используются со структурированным текстом, таким как идентификаторы, адреса электронной почты, почтовые индексы и пути, а не с полным текстом:

Токенизатор ключевых слов
Токенизатор keyword — это токенизатор «бездействия», который принимает любой заданный текст и выводит тот же текст как один термин. Его можно комбинировать с фильтрами токенов, такими как lowercase, чтобы нормализовать анализируемые термины.
Токенизатор шаблонов
Токенизатор pattern использует регулярное выражение, чтобы либо разбить текст на термины всякий раз, когда оно находит разделитель слов, либо захватить соответствующий текст в качестве терминов.
Простой токенизатор шаблонов
Токенизатор simple_pattern использует регулярное выражение для захвата совпадающего текста в качестве терминов. Он использует ограниченный подмножество функций регулярных выражений и, как правило, быстрее, чем токенизатор pattern.
Токенизатор группы символов
Токенизатор char_group настраивается с помощью наборов символов для разделения, что обычно менее затратно, чем выполнение регулярных выражений.
Простой токенизатор разделения шаблонов
Токенизатор simple_pattern_split использует то же ограниченное подмножество регулярных выражений, что и токенизатор simple_pattern, но разделяет вход на совпадениях, а не возвращает совпадения в качестве терминов.
Токенизатор иерархии путей
Токенизатор path_hierarchy принимает иерархическое значение, например, путь к файловой системе, разделяет его на разделители путей и генерирует термин для каждого компонента в дереве, например, /foo/bar/baz → [/foo, /foo/bar, /foo/bar/baz ].

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/analysis-tokenizers.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API