detectCharset
Добавленный в: v22.2.0
Экспериментальная возможность Не поддерживается в ClickHouse CloudОпределяет кодировку входной строки, если она закодирована не в UTF-8.
Синтаксис
detectCharset(s)Аргументы
s— Текст для анализа.String
Возвращаемое значение
Возвращает строку с кодом обнаруженной кодировки String
Примеры
Базовое использование
SET allow_experimental_nlp_functions = 1;
SELECT detectCharset('Ich bleibe für ein paar Tage.')WINDOWS-1252detectLanguage
Добавленный в: v22.2.0
Экспериментальная возможность Не поддерживается в ClickHouse CloudОпределяет язык входной строки в кодировке UTF-8. Для определения функция использует библиотеку CLD2 и возвращает двухбуквенный код языка по ISO.
Чем длиннее входная строка, тем точнее определяется язык.
Синтаксис
detectLanguage(s)Аргументы
text_to_be_analyzed— Текст для анализа.String
Возвращаемое значение
Возвращает двухбуквенный ISO-код определённого языка. Другие возможные результаты: un = неизвестно, язык определить не удалось; other = у определённого языка нет двухбуквенного кода. String
Примеры
Базовое использование
SET allow_experimental_nlp_functions = 1;
SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif.')frdetectLanguageMixed
Добавленный в: v22.2.0
Экспериментальная возможность Не поддерживается в ClickHouse CloudПодобно функции detectLanguage, detectLanguageMixed возвращает Map с двухбуквенными кодами языков, которым сопоставлена процентная доля соответствующего языка в тексте.
Синтаксис
detectLanguageMixed(s)Аргументы
s— Текст для анализаString
Возвращаемое значение
Возвращает Map, где ключи — двухбуквенные ISO-коды, а соответствующие значения — доля текста, определённого как данный язык Map(String, Float32)
Примеры
Смешанные языки
SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageMixed('二兎を追う者は一兎をも得ず二兎を追う者は一兎をも得ず A vaincre sans peril, on triomphe sans gloire.'){'ja':0.62,'fr':0.36}detectLanguageUnknown
Добавленный в: v22.2.0
Экспериментальная возможность Не поддерживается в ClickHouse CloudПодобно функции detectLanguage, функция detectLanguageUnknown работает со строками, закодированными не в UTF-8.
Используйте эту версию, если ваша кодировка — UTF-16 или UTF-32.
Синтаксис
detectLanguageUnknown('s')Аргументы
s— Текст для анализа.String
Возвращаемое значение
Возвращает двухбуквенный ISO-код определённого языка. Другие возможные результаты: un = неизвестно, язык определить не удалось; other = у определённого языка нет двухбуквенного кода. String
Примеры
Базовое использование
SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')dedetectTonality
Добавленный в: v22.2.0
Экспериментальная возможность Не поддерживается в ClickHouse CloudОпределяет тональность переданных текстовых данных.
В настоящее время функция использует встроенный словарь эмоциональной окраски и работает только с русским языком.
Синтаксис
detectTonality(s)Аргументы
s— Текст для анализа.String
Возвращаемое значение
Возвращает среднее значение тональности слов в тексте Float32
Примеры
Анализ тональности текста на русском языке
SET allow_experimental_nlp_functions = 1;
SELECT
detectTonality('Шарик - хороший пёс'),
detectTonality('Шарик - пёс'),
detectTonality('Шарик - плохой пёс')0.44445 0 -0.3lemmatize
Добавленный в: v21.9.0
Экспериментальная возможность Не поддерживается в ClickHouse CloudВыполняет лемматизацию указанного слова. Для работы этой функции требуются словари, которые можно получить на github. Подробнее о загрузке словаря из локального файла см. на странице "Определение словарей".
Синтаксис
lemmatize(lang, word)Аргументы
lang— Язык, правила которого будут применяться.Stringword— Слово в нижнем регистре, которое нужно лемматизировать.String
Возвращаемое значение
Лемматизированная форма слова String
Примеры
Лемматизация английских слов
SET allow_experimental_nlp_functions = 1;
SELECT lemmatize('en', 'wolves')wolfstem
Добавленный в: v21.9.0
Выполняет стемминг слова или массива слов с помощью алгоритмов Snowball. Каждая входная строка должна состоять из одного слова в нижнем регистре — строки, содержащие пробельные символы, вызывают исключение. Передача символов в верхнем регистре приводит к неопределённым результатам. Для скалярных входных данных (включая FixedString) возвращает String, а для входных массивов — Array(String). Поддерживаются варианты Nullable и LowCardinality для типов String и FixedString. Список поддерживаемых идентификаторов языков доступен в system.stemmers.
Синтаксис
stem(word, language)Аргументы
word— Одно слово в нижнем регистре (или массив слов) для стемминга. Должно быть в нижнем регистре — символы в верхнем регистре приводят к неопределённому результату. Принимает String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)) или Array(Nullable(FixedString)).StringилиFixedStringилиArray(String)илиArray(FixedString)language— Язык, для которого будут применяться правила стемминга. Канонические идентификаторы перечислены в system.stemmers (например, 'english', 'german', 'porter'). Snowball также принимает 2- или 3-буквенные коды ISO 639 (например, 'en', 'eng') в качестве псевдонимов там, где они определены, но их поддержка зависит от языка — для переносимости предпочтительнее использовать имена изsystem.stemmers.String
Возвращаемое значение
Форма основы слова (String) или массив основ слов (Array(String)). String или Array(String)
Примеры
Стемминг одного слова
SELECT stem('blessing', 'en') AS resblessСтемминг для массива слов
SELECT stem(['blessing', 'disguise'], 'en') AS res['bless','disguis']Стемминг для FixedString
SELECT stem(toFixedString('blessing', 10), 'en') AS resblessСтемминг слова типа Nullable
SELECT stem(toNullable('blessing'), 'en') AS resblesssynonyms
Добавленный в: v21.9.0
Экспериментальная возможность Не поддерживается в ClickHouse CloudНаходит синонимы заданного слова.
Есть два типа расширений синонимов:
plainwordnet
Для типа расширения plain необходимо указать путь к обычному текстовому файлу, где каждая строка соответствует определённому набору синонимов.
Слова в строке должны быть разделены пробелами или символами табуляции.
Для типа расширения wordnet необходимо указать путь к каталогу, содержащему тезаурус WordNet.
Тезаурус должен содержать индекс смыслов WordNet.
Синтаксис
synonyms(ext_name, word)Аргументы
ext_name— Имя расширения, в котором будет выполняться поиск.Stringword— Слово, для которого будет выполняться поиск в расширении.String
Возвращаемое значение
Возвращает массив синонимов для указанного слова. Array(String)
Примеры
Поиск синонимов
SET allow_experimental_nlp_functions = 1;
SELECT synonyms('en', 'important')['important','big','critical','crucial','essential']