自然语言处理 (NLP) 函数
这是仍在开发中的实验性功能,尚未准备好广泛使用。在未来的版本中,它可能会以不可预测且向后不兼容的方式发生变化。请将 allow_experimental_nlp_functions 设置为 1 以启用该功能。
detectCharset
自 v22.2.0 起引入
检测非 UTF-8 编码输入字符串的字符集。
语法
参数
s— 要分析的文本。String
返回值
返回一个字符串,包含检测到的字符集编码。String
示例
基本用法
detectLanguage
引入版本:v22.2.0
检测 UTF-8 编码输入字符串的语言。 该函数使用 CLD2 库 进行检测,并返回由两个字母组成的 ISO 语言代码。
输入越长,语言检测的精度越高。
语法
参数
text_to_be_analyzed— 要分析的文本。String
返回值
返回检测到的语言对应的 2 字母 ISO 代码。其他可能的返回值:un = 未知,无法检测到任何语言;other = 检测到的语言没有 2 字母代码。String
示例
混合语言文本
detectLanguageMixed
引入自:v22.2.0
与 detectLanguage 函数类似,但 detectLanguageMixed 返回一个 Map,其键为 2 个字母的语言代码,值为该语言在文本中所占的百分比。
语法
参数
s— 要分析的文本String
返回值
返回一个 Map,其键为 2 个字母的 ISO 语言代码,对应的值为在该语言中检测到的文本所占百分比 Map(String, Float32)
示例
混合语言
detectLanguageUnknown
引入自:v22.2.0
与 detectLanguage 函数类似,但 detectLanguageUnknown 函数可处理非 UTF-8 编码的字符串。
当字符集为 UTF-16 或 UTF-32 时,优先使用此版本。
语法
参数
s— 要分析的文本。String
返回值
返回检测到的语言的 2 个字母的 ISO 代码。其他可能的结果:un = 未知,无法检测出任何语言;other = 检测到的语言没有对应的 2 字母代码。String
示例
基本用法
detectTonality
引入版本:v22.2.0
判断所提供文本数据的情感倾向。
当前形式下此函数存在一定限制:它使用内置情感字典,并且目前仅适用于俄语。
语法
参数
s— 要分析的文本。String
返回值
返回文本中各单词的平均情感值。Float32
示例
俄语情感分析
lemmatize
引入版本:v21.9.0
对给定单词执行词形还原。 此函数需要字典才能工作,可以从 GitHub 获取。关于从本地文件加载字典的更多信息,请参阅页面 "Defining Dictionaries".
语法
参数
返回值
返回该单词的词形还原形式 String
示例
英语词形还原
stem
引入版本:v21.9.0
使用 Snowball 算法对单个单词或单词数组执行词干提取。 每个输入字符串都必须是单个小写单词——包含空白字符的字符串会引发异常。 传入大写字符会产生未定义的结果。 对于标量输入 (包括 FixedString) ,返回 String;对于数组输入,返回 Array(String)。 支持 String 和 FixedString 的 Nullable 和 LowCardinality 变体。
语法
参数
word— 要提取词干的单个小写单词 (或单词数组) 。必须使用小写——大写字符会产生未定义的结果。接受 String、FixedString、Array(String)、Array(FixedString)、Array(Nullable(String)) 或 Array(Nullable(FixedString))。String或FixedString或Array(String)或Array(FixedString)language— 要应用其词干提取规则的语言。使用两个字母的 ISO 639-1 代码 (例如 'en'、'de'、'fr') ,参见 https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes。[`String`](/sql-reference/data-types/string)
返回值
单词的词干形式 (String) ,或由词干形式组成的数组 (Array(String)) 。String 或 Array(String)
示例
对单个单词提取词干
对单词数组进行词干提取
FixedString 的词干提取
Nullable 单词的词干提取
同义词 (synonyms)
引入版本:v21.9.0
查找给定单词的同义词。
同义词扩展有两种类型:
plainwordnet
对于 plain 扩展类型,你需要提供一个纯文本文件的路径,其中每一行对应一个同义词集合 (synonym set) 。
该行中的单词必须用空格或制表符分隔。
对于 wordnet 扩展类型,你需要提供一个包含 WordNet 词库 (thesaurus) 的目录路径。
该词库中必须包含 WordNet sense index。
语法
参数
返回值
返回给定单词的同义词数组。Array(String)
示例
查找同义词