跳到主要内容
跳到主要内容

自然语言处理 (NLP) 函数

Experimental feature. Learn more.
Not supported in ClickHouse Cloud
危险

这是一个实验性功能,目前正在开发中,尚未准备好供一般使用。它将在未来版本中以不可预测的不向后兼容的方式更改。设置 allow_experimental_nlp_functions = 1 来启用它。

detectCharset

detectCharset 函数用于检测非UTF8编码输入字符串的字符集。

语法

参数

  • 待分析的文本 — 待分析的字符串集合(或句子)。String

返回值

  • 包含检测到的字符集代码的 String

示例

查询:

结果:

detectLanguage

检测UTF8编码输入字符串的语言。该函数使用 CLD2库 进行检测,并返回2字母的ISO语言代码。

detectLanguage 函数在输入字符串提供超过200个字符时效果最佳。

语法

参数

  • 待分析的文本 — 待分析的字符串集合(或句子)。String

返回值

  • 检测到的语言的2字母ISO代码

其他可能的结果:

  • un = 未知,无法检测任何语言。
  • other = 检测到的语言没有2字母代码。

示例

查询:

结果:

detectLanguageMixed

detectLanguage 函数类似,但 detectLanguageMixed 返回一个将2字母语言代码映射到文本中某种语言百分比的 Map

语法

参数

  • 待分析的文本 — 待分析的字符串集合(或句子)。String

返回值

  • Map(String, Float32):键是2字母ISO代码,值是该语言文本所占的百分比

示例

查询:

结果:

detectProgrammingLanguage

确定源代码的编程语言。计算源代码中的所有单字和双字命令。然后使用带权重的标记字典找到编程语言的最大权重并返回它。

语法

参数

  • 源代码 — 待分析的源代码的字符串表示。 String

返回值

示例

查询:

结果:

detectLanguageUnknown

detectLanguage 函数类似,但 detectLanguageUnknown 函数处理非UTF8编码的字符串。当字符集为UTF-16或UTF-32时,请优先使用此版本。

语法

参数

  • 待分析的文本 — 待分析的字符串集合(或句子)。String

返回值

  • 检测到的语言的2字母ISO代码

其他可能的结果:

  • un = 未知,无法检测任何语言。
  • other = 检测到的语言没有2字母代码。

示例

查询:

结果:

detectTonality

确定文本数据的情感。使用带标记的情感字典,其中每个词的情感范围从 -126。对于每个文本,它计算其词的平均情感值,并在范围 [-1,1] 内返回。

备注

该函数在当前形式下有限制。目前它使用位于 /contrib/nlp-data/tonality_ru.zst 的嵌入情感字典,并仅适用于俄语。

语法

参数

  • text — 待分析的文本。 String

返回值

  • text 中词的平均情感值。 Float32

示例

查询:

结果:

lemmatize

对给定的单词进行词形还原。需要字典才能操作,可以在这里获取。

语法

参数

  • 语言 — 应用规则的语言。 String
  • word — 需要进行词形还原的单词。必须为小写。 String

示例

查询:

结果:

配置

该配置指定应使用字典 en.bin 进行英语(en)单词的词形还原. .bin 文件可以从 这里 下载。

stem

对给定的单词进行词干提取。

语法

参数

  • 语言 — 应用规则的语言。使用两字母的 ISO 639-1 代码
  • word — 需要进行词干提取的单词。必须为小写。 String

示例

查询:

结果:

支持的语言 for stem()

备注

stem() 函数使用 Snowball stemming 库,请查看 Snowball 网站以获取最新语言等信息。

  • 阿拉伯语
  • 亚美尼亚语
  • 巴斯克语
  • 加泰罗尼亚语
  • 丹麦语
  • 荷兰语
  • 英语
  • 芬兰语
  • 法语
  • 德语
  • 希腊语
  • 印地语
  • 匈牙利语
  • 印尼语
  • 爱尔兰语
  • 意大利语
  • 立陶宛语
  • 尼泊尔语
  • 挪威语
  • 波特语
  • 葡萄牙语
  • 罗马尼亚语
  • 俄语
  • 塞尔维亚语
  • 西班牙语
  • 瑞典语
  • 泰米尔语
  • 土耳其语
  • 意第绪语

synonyms

查找给定单词的同义词。有两种类型的同义词扩展:plainwordnet

使用 plain 扩展类型时,我们需要提供一个指向简单文本文件的路径,其中每一行对应一个特定的同义词集。行中的单词必须用空格或制表符分隔。

使用 wordnet 扩展类型时,我们需要提供一个包含WordNet词库的目录的路径。词典必须包含WordNet意义索引。

语法

参数

  • 扩展名 — 搜索将要执行的扩展名称。 String
  • word — 将在扩展中搜索的单词。 String

示例

查询:

结果:

配置