Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funciones de procesamiento del lenguaje natural (NLP)

detectCharset

Introducido en: v22.2.0

Funcionalidad experimental
No es compatible con ClickHouse Cloud

Detecta el juego de caracteres de una cadena de entrada codificada en un formato distinto de UTF-8.

Sintaxis

detectCharset(s)

Argumentos

  • s — Texto que se va a analizar. String

Valor devuelto

Devuelve una cadena que contiene el código del juego de caracteres detectado String

Ejemplos

Uso básico

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

detectLanguage

Introducido en: v22.2.0

Funcionalidad experimental
No es compatible con ClickHouse Cloud

Detecta el idioma de la cadena de entrada codificada en UTF-8. La función utiliza la biblioteca CLD2 para la detección y devuelve el código de idioma ISO de dos letras.

Cuanto más larga sea la entrada, más precisa será la detección del idioma.

Sintaxis

detectLanguage(s)

Argumentos

  • text_to_be_analyzed — El texto que se va a analizar. String

Valor devuelto

Devuelve el código ISO de 2 letras del idioma detectado. Otros resultados posibles: un = desconocido, no se puede detectar ningún idioma; other = el idioma detectado no tiene un código de 2 letras. String

Ejemplos

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

Introducido en: v22.2.0

Funcionalidad experimental
No es compatible con ClickHouse Cloud

Similar a la función detectLanguage, pero detectLanguageMixed devuelve un Map de códigos de idioma de 2 letras asociados al porcentaje de cada idioma en el texto.

Sintaxis

detectLanguageMixed(s)

Argumentos

  • s — El texto que se va a analizar String

Valor devuelto

Devuelve un mapa cuyas claves son códigos ISO de 2 letras y cuyos valores indican el porcentaje del texto detectado para ese idioma Map(String, Float32)

Ejemplos

Idiomas mezclados

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

detectLanguageUnknown

Introducido en: v22.2.0

Funcionalidad experimental
No es compatible con ClickHouse Cloud

Similar a la función detectLanguage, excepto que la función detectLanguageUnknown funciona con cadenas codificadas en formatos distintos de UTF-8. Prefiera esta versión cuando el juego de caracteres sea UTF-16 o UTF-32.

Sintaxis

detectLanguageUnknown('s')

Argumentos

  • s — El texto que se va a analizar. String

Valor devuelto

Devuelve el código ISO de 2 letras del idioma detectado. Otros resultados posibles: un = desconocido, no se puede detectar ningún idioma; other = el idioma detectado no tiene un código de 2 letras. String

Ejemplos

Uso básico

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

detectTonality

Introducido en: v22.2.0

Funcionalidad experimental
No es compatible con ClickHouse Cloud

Determina la tonalidad emocional de los datos de texto proporcionados.

La función utiliza un diccionario emocional integrado y actualmente solo funciona con el idioma ruso.

Sintaxis

detectTonality(s)

Argumentos

  • s — El texto que se va a analizar. String

Valor devuelto

Devuelve el valor medio del sentimiento de las palabras del texto Float32

Ejemplos

Análisis de sentimiento del ruso

SET allow_experimental_nlp_functions = 1;

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

lemmatize

Introducido en: v21.9.0

Funcionalidad experimental
No es compatible con ClickHouse Cloud

Realiza la lematización de una palabra dada. Esta función requiere diccionarios para funcionar, que pueden obtenerse de github. Para obtener más información sobre cómo cargar un diccionario desde un archivo local, consulte la página "Definición de diccionarios".

Sintaxis

lemmatize(lang, word)

Argumentos

  • lang — Idioma al que se aplicarán las reglas. String
  • word — Palabra en minúsculas que debe lematizarse. String

Valor devuelto

Devuelve la forma lematizada de la palabra String

Ejemplos

Lematización en inglés

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

stem

Introducido en: v21.9.0

Aplica stemming a una palabra o a un Array de palabras mediante los algoritmos Snowball. Cada cadena de entrada debe ser una única palabra en minúsculas; las cadenas que contienen espacios en blanco provocan una excepción. Si se pasan caracteres en mayúsculas, los resultados no están definidos. Devuelve String para entradas escalares (incluido FixedString) y Array(String) para entradas de Array. Se admiten variantes Nullable y LowCardinality de String y FixedString. La lista de identificadores de idioma admitidos está disponible en system.stemmers.

Sintaxis

stem(word, language)

Argumentos

  • word — Una única palabra en minúsculas (o un array de palabras) a la que aplicar stemming. Debe estar en minúsculas; los caracteres en mayúsculas producen resultados indefinidos. Acepta String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)) o Array(Nullable(FixedString)). String o FixedString o Array(String) o Array(FixedString)
  • language — Idioma cuyas reglas de stemming se aplicarán. Los identificadores canónicos se enumeran en system.stemmers (p. ej., 'english', 'german', 'porter'). Snowball también acepta códigos ISO 639 de 2 o 3 letras (p. ej., 'en', 'eng') como alias cuando están definidos, pero la cobertura varía según el idioma; para una mayor portabilidad, prefiera los nombres de system.stemmers. String

Valor devuelto

La forma con stemming de la palabra (String), o un array de palabras con stemming (Array(String)). String o Array(String)

Ejemplos

Aplicación de stemming a una única palabra

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

Aplicar stemming a un array de palabras

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

Stemming de un FixedString

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

Aplicación de stemming a una palabra Nullable

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

synonyms

Introducido en: v21.9.0

Funcionalidad experimental
No es compatible con ClickHouse Cloud

Encuentra sinónimos de una palabra determinada.

Hay dos tipos de extensiones de sinónimos:

  • plain
  • wordnet

Con el tipo de extensión plain, debes proporcionar la ruta a un archivo de texto simple, donde cada línea corresponde a un determinado conjunto de sinónimos. Las palabras de esta línea deben estar separadas por espacios o tabuladores.

Con el tipo de extensión wordnet, debes proporcionar la ruta a un directorio que contenga el tesauro de WordNet. El tesauro debe contener un índice de sentidos de WordNet.

Sintaxis

synonyms(ext_name, word)

Argumentos

  • ext_name — Nombre de la extensión en la que se realizará la búsqueda. String
  • word — Palabra que se buscará en la extensión. String

Valor devuelto

Devuelve un array de sinónimos para la palabra indicada. Array(String)

Ejemplos

Buscar sinónimos

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