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

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

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

Это экспериментальная функция, которая в настоящее время разрабатывается и не готова к общему использованию. Она будет изменена в непредсказуемые и несовместимые с предыдущими версиями способы в будущих релизах. Установите allow_experimental_nlp_functions = 1, чтобы включить ее.

detectCharset

Функция detectCharset определяет набор символов не закодированной в UTF8 входной строки.

Синтаксис

Аргументы

  • text_to_be_analyzed — Набор (или предложения) строк для анализа. 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 — Язык, к которому будут применяться правила. Используйте двухбуквенный ISO 639-1 код.
  • word — слово, которое нужно стеммировать. Должно быть в нижнем регистре. String.

Примеры

Запрос:

Результат:

Поддерживаемые языки для stem()

примечание

Функция stem() использует библиотеку Snowball stemming, смотрите сайт Snowball для обновленных языков и т. д.

  • арабский
  • армянский
  • баскский
  • каталонский
  • датский
  • нидерландский
  • английский
  • финский
  • французский
  • немецкий
  • греческий
  • хинди
  • венгерский
  • индонезийский
  • ирландский
  • итальянский
  • литовский
  • непали
  • норвежский
  • Портер
  • португальский
  • румынский
  • русский
  • сербский
  • испанский
  • шведский
  • тамильский
  • турецкий
  • идиш

synonyms

Находит синонимы к заданному слову. Существует два типа расширений синонимов: plain и wordnet.

При использовании типа расширения plain необходимо предоставить путь к простому текстовому файлу, где каждая строка соответствует определенному набору синонимов. Слова в этой строке должны быть разделены пробелами или табуляциями.

При использовании типа расширения wordnet необходимо предоставить путь к каталогу с тезаурусом WordNet, который должен содержать индекс смыслов WordNet.

Синтаксис

Аргументы

  • extension_name — Название расширения, в котором будет выполняться поиск. String.
  • word — Слово, которое будет искаться в расширении. String.

Примеры

Запрос:

Результат:

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