Перейти к основному содержимому
Перейти к основному содержимому

Функции обработки естественного языка (NLP)

Experimental feature. Learn more.
Not supported in ClickHouse Cloud
осторожно

Это экспериментальная функция, которая в настоящее время находится в разработке и не готова к общему использованию. Она будет изменяться непредсказуемым образом с несовместимыми изменениями в будущих релизах. Установите 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.

Примеры

Запрос:

Результат:

Конфигурация