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

Функции обработки естественного языка (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-буквенный ISO код определенного языка.

Другие возможные результаты:

  • 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-буквенный ISO код определенного языка.

Другие возможные результаты:

  • 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.

Примеры

Запрос:

Результат:

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