You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文本列提取特定关键词生成新列?GREL实现方案问询

提取自由文本关键词并生成新列(GREL实现方案)

完全可以用GREL(General Refine Expression Language)实现这个需求,以下是不同场景下的具体实现方式:

单关键词提取

场景1:文本精确等于目标关键词

假设你的文本列名为文本内容,要提取的关键词是机器学习,生成新列时使用以下GREL表达式:

if(value == "机器学习", "机器学习", null)

匹配成功时返回关键词,否则返回空值。

场景2:文本包含目标关键词(模糊匹配)

如果只需判断文本中是否存在关键词,无需精确匹配整句,用find()函数检测关键词位置:

if(find(value, "机器学习") != -1, "机器学习", null)

find()返回关键词在文本中的起始索引,未找到则返回-1,据此判断是否提取关键词。

大小写不敏感匹配

如果需要忽略大小写差异,先统一转换为小写再检测:

if(find(toLower(value), toLower("机器学习")) != -1, "机器学习", null)

多关键词提取

如果需要匹配多个关键词并返回匹配结果,可结合forEach()和filter()函数:

返回第一个匹配到的关键词

forEach(["机器学习", "深度学习", "人工智能"], k, if(find(value, k) != -1, k, null)).filter(v, v != null)[0]

遍历关键词列表,找到第一个存在于文本中的关键词并返回。

返回所有匹配到的关键词(逗号分隔)

join(forEach(["机器学习", "深度学习", "人工智能"], k, if(find(value, k) != -1, k, null)).filter(v, v != null), ", ")

将所有匹配到的关键词拼接成字符串返回。

操作步骤(以OpenRefine为例)

  • 选中目标文本列,点击列菜单 → 添加列基于此列
  • 在弹出的对话框中输入上述GREL表达式,设置新列名称
  • 点击确定即可生成包含提取关键词的新列

内容的提问来源于stack exchange,提问作者xoxoxox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:03:10