Справочник по токенизаторам
Разница между токенизацией 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