什么是字段抽取函数
基本概念
信息抽取是从基础数据中抽取待创建图谱的实体、属性信息以及实体间的相互关系。目的是从原始数据(包括结构化数据或非结构化数据)中抽取结构化的信息。
在通过普通抽取方式进行信息抽取时,即用交互界面配置或用格式化编辑进行信息抽取时,需要配置字段抽取函数。配置字段抽取函数后,KG服务会根据所配置的字段抽取函数进行信息抽取,即从原始数据中抽取结构化的信息。更多详情请见配置信息抽取。
字段抽取函数说明
KG服务支持的信息抽取函数如表1所示。其中,“字段”表示基础数据中的字段名,在抽取函数中引用字段时,使用格式为“${字段}”,例如抽取基础数据中属性“name”的字段,在抽取函数中引用字段的格式为“trim(${name})”。
抽取函数 |
函数说明 |
抽取函数示例 |
抽取前数据示例 |
抽取后数据示例 |
---|---|---|---|---|
trim(字段) |
裁剪字段前后的空白字符 |
trim(${name}) |
"name":" mike" |
"mike" |
substring (字段, int pos, int len) |
获取从该字段值第pos个字符(从0开始)开始的长度为len的子串 |
substring (${id}, 1, 6) |
"id":"a000111" |
"000111" |
split(字段, string pattern) |
将字段值以pattern为分隔符分割,得到一个列表。pattern可以是一个正则表达式,所有与pattern匹配的子串都作为分隔符。 |
split(${roles}, ', ') |
"roles":"role1,role2" |
["role1", "role2"] |
concat(字段1,字段2, ...) |
将字段1、字段2...依次拼接成一个长字符串。此处字段值也可以是一个字符串常量。 |
concat(${name}, '--', ${id}) |
"name": "mike", "id": "a000111" |
"mike--a000111" |
regexp_replace(字段, string pattern, string replacement) |
将字段值中与正则表达式pattern匹配的部分替换为replacement |
regexp_replace(${info}, 'hello', 'world') |
"info":"helloworld" |
"worldworld" |
upper(字段) |
将字段中英文字母全部转为大写 |
upper(${name}) |
"name":"mike" |
"MIKE" |
lower(字段) |
将字段中英文字母全部转为小写 |
lower(${name}) |
"name":"JOHN" |
"john" |
initcap(字段) |
将字段中英文首字母转为大写 |
initcap(${city}) |
"city":"hangzhou" |
"Hangzhou" |
coalesce(字段1,字段2, ...) |
返回字段1,字段2, ...中第一个不为空的字段 |
coalesce(${name},${名字}, ${中文名} ...) |
"name":" ", "名字":" ", "中文名”:"小明” |
“小明” |
parse_array(字段) |
尝试将字段值解析为一个列表 |
parse_array(${list}) |
"list":["item1","item2"] |
['item1','item2'] |
array_get(字段, int index) |
获取列表类型的字段中的第index个值(index从0开始) |
array_get(parse_array(${list}), 0) |
"list":["item1","item2"] |
"item1" |