Функции обработки естественного языка (NLP)
Это экспериментальная функциональность, которая в данный момент находится в разработке и не готова для широкого использования. В будущих версиях она будет меняться непредсказуемым образом, нарушая обратную совместимость. Установите allow_experimental_nlp_functions = 1, чтобы включить её.
detectCharset
Впервые появилась в версии v22.2.0
Определяет кодировку (набор символов) входной строки, закодированной в формате, отличном от UTF-8.
Синтаксис
Аргументы
s— текст для анализа.String
Возвращаемое значение
Возвращает строку с кодом обнаруженной кодировки символов. String
Примеры
Базовое использование
detectLanguage
Добавлена в версии: v22.2.0
Определяет язык входной строки в кодировке UTF-8. Функция использует библиотеку CLD2 для определения языка и возвращает двухбуквенный ISO‑код языка.
Чем длиннее входные данные, тем точнее будет определение языка.
Синтаксис
Аргументы
text_to_be_analyzed— текст для анализа.String
Возвращаемое значение
Возвращает двухбуквенный ISO-код обнаруженного языка. Другие возможные результаты: un = неизвестно, не удалось определить ни один язык; other = обнаруженный язык не имеет двухбуквенного кода. String
Примеры
Текст на смешанном языке
detectLanguageMixed
Добавлена в: v22.2.0
Аналогична функции detectLanguage, но detectLanguageMixed возвращает Map, в котором 2-буквенным кодам языков сопоставлены значения с процентом соответствующего языка в тексте.
Синтаксис
Аргументы
s— текст для анализаString
Возвращаемое значение
Возвращает отображение (map), в котором ключи — 2-буквенные ISO-коды, а соответствующие значения — процент текста, определённого для этого языка Map(String, Float32)
Примеры
Смешанные языки
detectLanguageUnknown
Введена в: v22.2.0
Аналогична функции detectLanguage, за исключением того, что функция detectLanguageUnknown работает со строками, закодированными не в UTF8.
Используйте эту версию, когда ваш набор символов — UTF-16 или UTF-32.
Синтаксис
Аргументы
s— текст для анализа.String
Возвращаемое значение
Возвращает двухбуквенный код языка по стандарту ISO для обнаруженного языка. Другие возможные результаты: un = неизвестно, не удалось определить какой-либо язык, other = обнаруженный язык не имеет двухбуквенного кода. String
Примеры
Базовое использование
detectTonality
Добавлено в: v22.2.0
Определяет тональность переданных текстовых данных.
В текущей реализации эта функция ограничена тем, что использует встроенный эмоциональный словарь и работает только для русского языка.
Синтаксис
Аргументы
s— текст для анализа.String
Возвращаемое значение
Возвращает среднее значение тональности слов в тексте Float32
Примеры
Анализ тональности текста на русском языке
lemmatize
Добавлена в версии: v21.9.0
Выполняет лемматизацию заданного слова. Для работы этой функции необходимы словари, которые можно получить с GitHub. Подробнее о загрузке словаря из локального файла см. раздел «Определение словарей».
Синтаксис
Аргументы
lang— Язык, для которого будут применены правила.Stringword— Слово в нижнем регистре, которое нужно лемматизировать.String
Возвращаемое значение
Возвращает лемматизированную форму слова String
Примеры
Лемматизация английского языка
stem
Добавлено в: v21.9.0
Выполняет стемминг слова или массива слов с использованием алгоритмов Snowball. Каждая входная строка должна содержать только одно слово в нижнем регистре — строки с пробельными символами вызывают исключение. Передача символов в верхнем регистре приводит к неопределённым результатам. Возвращает String для скалярных входных данных (включая FixedString) и Array(String) для входных массивов. Поддерживаются варианты Nullable и LowCardinality для типов String и FixedString.
Синтаксис
Аргументы
word— Одно слово в нижнем регистре (или массив слов) для стемминга. Должно быть в нижнем регистре — символы в верхнем регистре приводят к неопределённому результату. Принимает String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)) или Array(Nullable(FixedString)).StringилиFixedStringилиArray(String)илиArray(FixedString)language— Язык, для которого будут применяться правила стемминга. Используйте двухбуквенный код ISO 639-1 (например, 'en', 'de', 'fr'), см. https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes.String
Возвращаемое значение
Стеммированная форма слова (String) или массив стеммированных слов (Array(String)). String или Array(String)
Примеры
Стемминг одного слова
Стемминг для массива слов
Стемминг типа FixedString
Стемминг для слова типа Nullable
synonyms
Добавлена в версии: v21.9.0
Находит синонимы заданного слова.
Существует два типа расширений синонимов:
plainwordnet
Для типа расширения plain необходимо указать путь к простому текстовому файлу, где каждая строка соответствует определённому множеству синонимов.
Слова в этой строке должны быть разделены пробелами или символами табуляции.
Для типа расширения wordnet необходимо указать путь к каталогу, содержащему тезаурус WordNet.
Тезаурус должен содержать WordNet sense index.
Синтаксис
Аргументы
ext_name— Название расширения, в котором будет выполняться поиск.Stringword— Слово, по которому будет выполняться поиск в расширении.String
Возвращаемое значение
Возвращает массив синонимов для указанного слова. Array(String)
Примеры
Поиск синонимов