Функции обработки естественного языка (NLP)
Это экспериментальная функция, которая в настоящее время находится в разработке и не готова к общему использованию. Она будет изменяться непредсказуемым образом с несовместимыми изменениями в будущих релизах. Установите allow_experimental_nlp_functions = 1
, чтобы активировать её.
detectCharset
Функция detectCharset
определяет кодировку входной строки, не закодированной в UTF8.
Синтаксис
Аргументы
text_to_be_analyzed
— Набор (или предложения) строк для анализа. String.
Возвращаемое значение
String
, содержащая код определенной кодировки
Примеры
Запрос:
Результат:
detectLanguage
Определяет язык входной строки, закодированной в UTF8. Функция использует библиотеку CLD2 для определения языка и возвращает 2-буквенный код языка по стандарту ISO.
Функция detectLanguage
работает наилучшим образом при наличии более 200 символов во входной строке.
Синтаксис
Аргументы
text_to_be_analyzed
— Набор (или предложения) строк для анализа. String.
Возвращаемое значение
- 2-буквенный код языка, который был определен
Другие возможные результаты:
un
= неизвестно, не удается определить язык.other
= обнаруженный язык не имеет 2-буквенного кода.
Примеры
Запрос:
Результат:
detectLanguageMixed
Похожие на функцию detectLanguage
, но detectLanguageMixed
возвращает Map
2-буквенных языковых кодов, сопоставленных с процентом определенного языка в тексте.
Синтаксис
Аргументы
text_to_be_analyzed
— Набор (или предложения) строк для анализа. String.
Возвращаемое значение
Map(String, Float32)
: Ключи — это 2-буквенные коды по стандарту ISO, а значения — это процент текста, найденного для этого языка.
Примеры
Запрос:
Результат:
detectProgrammingLanguage
Определяет язык программирования из исходного кода. Вычисляет все униграммы и биграммы команд в исходном коде. Затем, используя размеченный словарь с весами униграмм и биграмм команд для различных языков программирования, находит язык с наибольшим весом и возвращает его.
Синтаксис
Аргументы
source_code
— строковое представление исходного кода для анализа. String.
Возвращаемое значение
- Язык программирования. String.
Примеры
Запрос:
Результат:
detectLanguageUnknown
Похожая на функцию detectLanguage
, однако функция detectLanguageUnknown
работает с не закодированными в UTF8 строками. Предпочитайте эту версию, когда ваша кодировка — UTF-16 или UTF-32.
Синтаксис
Аргументы
text_to_be_analyzed
— Набор (или предложения) строк для анализа. String.
Возвращаемое значение
- 2-буквенный код языка, который был определен
Другие возможные результаты:
un
= неизвестно, не удается определить язык.other
= обнаруженный язык не имеет 2-буквенного кода.
Примеры
Запрос:
Результат:
detectTonality
Определяет тональность текстовых данных. Использует размеченный словарь тональности, в котором каждому слову присваивается тональность в диапазоне от -12
до 6
. Для каждого текста вычисляется среднее значение тональности его слов и возвращается в диапазоне [-1,1]
.
Эта функция ограничена в своей текущей форме. В настоящее время она использует встроенный эмоциональный словарь по адресу /contrib/nlp-data/tonality_ru.zst
и работает только для русского языка.
Синтаксис
Аргументы
text
— Текст для анализа. String.
Возвращаемое значение
- Среднее значение тональности слов в
text
. Float32.
Примеры
Запрос:
Результат:
lemmatize
Выполняет лемматизацию заданного слова. Для работы нужны словари, которые можно получить здесь.
Синтаксис
Аргументы
language
— Язык, к правилам которого будет применяться. String.word
— Слово, требующее лемматизации. Должно быть написано в нижнем регистре. String.
Примеры
Запрос:
Результат:
Конфигурация
Эта конфигурация указывает, что словарь en.bin
должен использоваться для лемматизации английских (en
) слов. Файлы с расширением .bin
можно скачать по адресу
здесь.
stem
Выполняет стемминг заданного слова.
Синтаксис
Аргументы
language
— Язык, к правилам которого будет применяться. Используйте 2-буквенный ISO 639-1 код.word
— слово, которое нужно привести к корню. Должно быть написано в нижнем регистре. String.
Примеры
Запрос:
Результат:
Поддерживаемые языки для stem()
Функция stem() использует библиотеку Snowball stemming, смотрите сайт Snowball для обновлений языков и т. д.
- арабский
- армянский
- баскский
- каталанский
- датский
- нидерландский
- английский
- финский
- французский
- немецкий
- греческий
- хинди
- венгерский
- индонезийский
- ирландский
- итальянский
- литовский
- непальский
- норвежский
- Портер
- португальский
- румынский
- русский
- сербский
- испанский
- шведский
- тамильский
- турецкий
- идиш
synonyms
Находит синонимы к заданному слову. Существуют два типа расширений синонимов: plain
и wordnet
.
При типе расширения plain
необходимо указать путь к простому текстовому файлу, в котором каждая строка соответствует определенному набору синонимов. Слова в этой строке должны разделяться пробелами или символами табуляции.
При типе расширения wordnet
необходимо указать путь к каталогу с тезаурусом WordNet. Тезаурус должен содержать индекс смыслов WordNet.
Синтаксис
Аргументы
extension_name
— Название расширения, в котором будет выполнен поиск. String.word
— Слово, которое будет искаться в расширении. String.
Примеры
Запрос:
Результат:
Конфигурация