ClickHouse/docs/ru/sql-reference/functions/nlp-functions.md
2021-06-05 03:57:53 +00:00

4.4 KiB
Raw Blame History

toc_priority toc_title
67 NLP

Функции для работы с ествественным языком

tokenize, tokenizeWhitespace

Данные функции проводят токенизацию - разделение заданного текста на слова.

Синтаксис

tokenize(text)

Аргументы

  • text — Текст подлежащий токенизации. String.

Примеры

Запрос:

SELECT tokenize('I think it is a blessing in disguise.') as res;

Результат:

┌─res────────────────────────────────────────────────────┐
│ ['I','think','it','is','a','blessing','in','disguise'] │
└────────────────────────────────────────────────────────┘

stem

Данная функция проводит стемминг заданного слова.

Синтаксис

stem('language', word)

Аргументы

  • language — Язык, правила которого будут применены для стемминга. Допускается только нижний регистр. String.
  • word — Слово подлежащее стеммингу. Допускается только нижний регистр. String.

Examples

Query:

SELECT SELECT arrayMap(x -> stem('en', x), ['I', 'think', 'it', 'is', 'a', 'blessing', 'in', 'disguise']) as res;

Result:

┌─res────────────────────────────────────────────────┐
│ ['I','think','it','is','a','bless','in','disguis'] │
└────────────────────────────────────────────────────┘

lemmatize

Данная функция проводит лемматизацию для заданного слова.

Синтаксис

lemmatize('language', word)

Аргументы

  • language — Язык, правила которого будут применены для лемматизации. String.
  • word — Слово, подлежащее лемматизации. Допускается только нижний регистр. String.

Примеры

Запрос:

SELECT lemmatize('en', 'wolves');

Результат:

┌─lemmatize("wolves")─┐
│              "wolf" │
└─────────────────────┘

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

<lemmatizers>
    <lemmatizer>
        <lang>en</lang>
        <path>en.bin</path>
    </lemmatizer>
</lemmatizers>

synonyms

Находит синонимы к заданному слову.

Синтаксис

synonyms('extension_name', word)

Аргументы

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

Примеры

Запрос:

SELECT synonyms('list', 'important');

Результат:

┌─synonyms('list', 'important')────────────┐
│ ['important','big','critical','crucial'] │
└──────────────────────────────────────────┘

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

<synonyms_extensions>
    <extension>
        <name>en</name>
        <type>plain</type>
        <path>en.txt</path>
    </extension>
    <extension>
        <name>en</name>
        <type>wordnet</type>
        <path>en/</path>
    </extension>
</synonyms_extensions>