Natural Language Processing
Natural Language Processing functions reference.
detectCharset
Detects the character set of a non-UTF8-encoded input string.
Syntax
detectCharset(s)Arguments
s— The text to analyze.String
Returned value
Returns a string containing the code of the detected character set String
Examples
Basic usage
SELECT detectCharset('Ich bleibe für ein paar Tage.')WINDOWS-1252Introduced in version 22.2.
detectLanguage
Detects the language of the UTF8-encoded input string. The function uses the CLD2 library for detection and returns the 2-letter ISO language code.
The longer the input, the more precise the language detection will be.
Syntax
detectLanguage(s)Arguments
text_to_be_analyzed— The text to analyze.String
Returned value
Returns the 2-letter ISO code of the detected language. Other possible results: un = unknown, can not detect any language, other = the detected language does not have 2 letter code. String
Examples
Mixed language text
SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif. Where there\'s a will, there\'s a way.')frIntroduced in version 22.2.
detectLanguageMixed
Similar to the detectLanguage function, but detectLanguageMixed returns a Map of 2-letter language codes that are mapped to the percentage of the certain language in the text.
Syntax
detectLanguageMixed(s)Arguments
s— The text to analyzeString
Returned value
Returns a map with keys which are 2-letter ISO codes and corresponding values which are a percentage of the text found for that language Map(String, Float32)
Examples
Mixed languages
SELECT detectLanguageMixed('二兎を追う者は一兎をも得ず二兎を追う者は一兎をも得ず A vaincre sans peril, on triomphe sans gloire.'){'ja':0.62,'fr':0.36}Introduced in version 22.2.
detectLanguageUnknown
Similar to the detectLanguage function, except the detectLanguageUnknown function works with non-UTF8-encoded strings.
Prefer this version when your character set is UTF-16 or UTF-32.
Syntax
detectLanguageUnknown('s')Arguments
s— The text to analyze.String
Returned value
Returns the 2-letter ISO code of the detected language. Other possible results: un = unknown, can not detect any language, other = the detected language does not have 2 letter code. String
Examples
Basic usage
SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')deIntroduced in version 22.2.
detectProgrammingLanguage
Determines the programming language from a given source code snippet.
Syntax
detectProgrammingLanguage('source_code')Arguments
source_code— String representation of the source code to analyze.String
Returned value
Returns programming language String
Examples
C++ code detection
SELECT detectProgrammingLanguage('#include <iostream>')C++Introduced in version 22.2.
detectTonality
Determines the sentiment of the provided text data.
:::note Limitation This function is limited in its current form in that it makes use of the embedded emotional dictionary and only works for the Russian language. :::
Syntax
detectTonality(s)Arguments
s— The text to be analyzed.String
Returned value
Returns the average sentiment value of the words in text Float32
Examples
Russian sentiment analysis
SELECT
detectTonality('Шарик - хороший пёс'),
detectTonality('Шарик - пёс'),
detectTonality('Шарик - плохой пёс')0.44445, 0, -0.3Introduced in version 22.2.
lemmatize
Performs lemmatization on a given word. This function needs dictionaries to operate, which can be obtained from github. For more details on loading a dictionary from a local file see page "Defining Dictionaries".
Syntax
lemmatize(lang, word)Arguments
lang— Language which rules will be applied.Stringword— Lowercase word that needs to be lemmatized.String
Returned value
Returns the lemmatized form of the word String
Examples
English lemmatization
SELECT lemmatize('en', 'wolves')wolfIntroduced in version 21.9.
stem
Performs stemming on a given word.
Syntax
stem(lang, word)Arguments
lang— Language which rules will be applied. Use the two letter ISO 639-1 code.Stringword— Lowercase word that needs to be stemmed.String
Returned value
Returns the stemmed form of the word String
Examples
English stemming
SELECT arrayMap(x -> stem('en', x),
['I', 'think', 'it', 'is', 'a', 'blessing', 'in', 'disguise']) AS res['I','think','it','is','a','bless','in','disguis']Introduced in version 21.9.
synonyms
Finds synonyms of a given word.
There are two types of synonym extensions:
plainwordnet
With the plain extension type you need to provide a path to a simple text file, where each line corresponds to a certain synonym set.
Words in this line must be separated with space or tab characters.
With the wordnet extension type you need to provide a path to a directory with the WordNet thesaurus in it.
The thesaurus must contain a WordNet sense index.
Syntax
synonyms(ext_name, word)Arguments
ext_name— Name of the extension in which search will be performed.Stringword— Word that will be searched in extension.String
Returned value
Returns array of synonyms for the given word. Array(String)
Examples
Find synonyms
SELECT synonyms('list', 'important')['important','big','critical','crucial']Introduced in version 21.9.