Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções de processamento de linguagem natural (NLP)

detectCharset

Introduzido em: v22.2.0

Recurso experimental
Sem suporte no ClickHouse Cloud

Detecta o conjunto de caracteres de uma string de entrada codificada em um formato diferente de UTF-8.

Sintaxe

detectCharset(s)

Argumentos

  • s — O texto a ser analisado. String

Valor retornado

Retorna uma string com o código do conjunto de caracteres detectado String

Exemplos

Uso básico

SET allow_experimental_nlp_functions = 1;
SELECT detectCharset('Ich bleibe für ein paar Tage.')
WINDOWS-1252

detectLanguage

Introduzido em: v22.2.0

Recurso experimental
Sem suporte no ClickHouse Cloud

Detecta o idioma da string de entrada codificada em UTF-8. A função usa a biblioteca CLD2 para fazer a detecção e retorna o código de idioma ISO de 2 letras.

Quanto maior a entrada, mais precisa será a detecção do idioma.

Sintaxe

detectLanguage(s)

Argumentos

  • text_to_be_analyzed — O texto a ser analisado. String

Valor retornado

Retorna o código ISO de 2 letras do idioma detectado. Outros resultados possíveis: un = desconhecido, não foi possível detectar nenhum idioma; other = o idioma detectado não tem um código de 2 letras. String

Exemplos

Uso básico

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif.')
fr

detectLanguageMixed

Introduzida em: v22.2.0

Recurso experimental
Sem suporte no ClickHouse Cloud

Semelhante à função detectLanguage, detectLanguageMixed retorna um Map de códigos de idioma de 2 letras mapeados para a porcentagem de determinado idioma no texto.

Sintaxe

detectLanguageMixed(s)

Argumentos

  • s — O texto a ser analisado String

Valor retornado

Retorna um map cujas chaves são códigos ISO de 2 letras, e os valores correspondentes representam a porcentagem do texto identificada para cada idioma Map(String, Float32)

Exemplos

Idiomas mistos

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageMixed('二兎を追う者は一兎をも得ず二兎を追う者は一兎をも得ず A vaincre sans peril, on triomphe sans gloire.')
{'ja':0.62,'fr':0.36}

detectLanguageUnknown

Introduzido em: v22.2.0

Recurso experimental
Sem suporte no ClickHouse Cloud

Semelhante à função detectLanguage, exceto que a função detectLanguageUnknown funciona com strings codificadas em formatos que não são UTF-8. Prefira esta versão quando o conjunto de caracteres for UTF-16 ou UTF-32.

Sintaxe

detectLanguageUnknown('s')

Argumentos

  • s — O texto a ser analisado. String

Valor retornado

Retorna o código ISO de 2 letras do idioma detectado. Outros resultados possíveis: un = desconhecido, não foi possível detectar nenhum idioma, other = o idioma detectado não tem código de 2 letras. String

Exemplos

Uso básico

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')
de

detectTonality

Introduzido em: v22.2.0

Recurso experimental
Sem suporte no ClickHouse Cloud

Determina o sentimento do texto fornecido.

A função usa um dicionário emocional embutido e, no momento, funciona apenas para o idioma russo.

Sintaxe

detectTonality(s)

Argumentos

  • s — O texto a ser analisado. String

Valor retornado

Retorna o valor médio de sentimento das palavras do texto Float32

Exemplos

Análise de sentimento em russo

SET allow_experimental_nlp_functions = 1;

SELECT
    detectTonality('Шарик - хороший пёс'),
    detectTonality('Шарик - пёс'),
    detectTonality('Шарик - плохой пёс')
0.44445	0	-0.3

lemmatize

Introduzido em: v21.9.0

Recurso experimental
Sem suporte no ClickHouse Cloud

Realiza a lematização de uma palavra fornecida. Esta função precisa de dicionários para funcionar, que podem ser obtidos no GitHub. Para mais detalhes sobre como carregar um dicionário de um arquivo local, consulte a página "Definindo Dicionários".

Sintaxe

lemmatize(lang, word)

Argumentos

  • lang — Idioma cujas regras serão aplicadas. String
  • word — Palavra em letras minúsculas a ser lematizada. String

Valor retornado

Retorna a forma lematizada da palavra String

Exemplos

Lematização em inglês

SET allow_experimental_nlp_functions = 1;
SELECT lemmatize('en', 'wolves')
wolf

stem

Introduzido em: v21.9.0

Realiza stemming em uma palavra ou em um array de palavras usando os algoritmos Snowball. Cada string de entrada deve ser uma única palavra em minúsculas — strings que contenham espaços em branco causam uma exceção. O uso de caracteres maiúsculos produz resultados indefinidos. Retorna String para entradas escalares (incluindo FixedString) e Array(String) para entradas em array. Há suporte para as variantes Nullable e LowCardinality de String e FixedString. A lista de identificadores de idioma compatíveis está disponível em system.stemmers.

Sintaxe

stem(word, language)

Argumentos

  • word — Uma única palavra em minúsculas (ou um array de palavras) para reduzir ao radical. Deve estar em minúsculas — caracteres maiúsculos produzem resultados indefinidos. Aceita String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)) ou Array(Nullable(FixedString)). String ou FixedString ou Array(String) ou Array(FixedString)
  • language — Idioma cujas regras de stemming serão aplicadas. Os identificadores canônicos estão listados em system.stemmers (por exemplo, 'english', 'german', 'porter'). O Snowball também aceita códigos ISO 639 de 2 ou 3 letras (por exemplo, 'en', 'eng') como aliases quando definidos, mas a cobertura varia conforme o idioma — prefira os nomes de system.stemmers para garantir portabilidade. String

Valor retornado

A forma reduzida ao radical da palavra (String) ou um array de palavras reduzidas ao radical (Array(String)). String ou Array(String)

Exemplos

Reduzindo uma única palavra ao radical

SELECT stem('blessing', 'en') AS res
bless

Stemming de um array de palavras

SELECT stem(['blessing', 'disguise'], 'en') AS res
['bless','disguis']

Stemming de FixedString

SELECT stem(toFixedString('blessing', 10), 'en') AS res
bless

Aplicando stemming a uma palavra Nullable

SELECT stem(toNullable('blessing'), 'en') AS res
bless

synonyms

Introduzido na versão: v21.9.0

Recurso experimental
Sem suporte no ClickHouse Cloud

Encontra sinônimos de uma determinada palavra.

Há dois tipos de extensões de sinônimos:

  • plain
  • wordnet

Com o tipo de extensão plain, você precisa fornecer o caminho para um arquivo de texto simples, em que cada linha corresponde a um determinado conjunto de sinônimos. As palavras nessa linha devem ser separadas por espaços ou tabulações.

Com o tipo de extensão wordnet, você precisa fornecer o caminho para um diretório que contenha o tesauro WordNet. O tesauro deve conter um índice de sentidos do WordNet.

Sintaxe

synonyms(ext_name, word)

Argumentos

  • ext_name — Nome da extensão em que a busca será realizada. String
  • word — Palavra que será pesquisada na extensão. String

Valor retornado

Retorna um array de sinônimos para a palavra especificada. Array(String)

Exemplos

Encontrar sinônimos

SET allow_experimental_nlp_functions = 1;
SELECT synonyms('en', 'important')
['important','big','critical','crucial','essential']
Navigation