词类知识标注
>>> from paddlenlp import Taskflow
>>> wordtag = Taskflow("knowledge_mining")
>>> wordtag("《孤女》是2010年九州出版社出版的小说,作者是余兼羽")
[{'text': '《孤女》是2010年九州出版社出版的小说,作者是余兼羽', 'items': [{'item': '《', 'offset': 0, 'wordtag_label': 'w', 'length': 1}, {'item': '孤女', 'offset': 1, 'wordtag_label': '作品类_实体', 'length': 2}, {'item': '》', 'offset': 3, 'wordtag_label': 'w', 'length': 1}, {'item': '是', 'offset': 4, 'wordtag_label': '肯定词', 'length': 1, 'termid': '肯定否定词_cb_是'}, {'item': '2010年', 'offset': 5, 'wordtag_label': '时间类', 'length': 5, 'termid': '时间阶段_cb_2010年'}, {'item': '九州出版社', 'offset': 10, 'wordtag_label': '组织机构类', 'length': 5, 'termid': '组织机构_eb_九州出版社'}, {'item': '出版', 'offset': 15, 'wordtag_label': '场景事件', 'length': 2, 'termid': '场景事件_cb_出版'}, {'item': '的', 'offset': 17, 'wordtag_label': '助词', 'length': 1, 'termid': '助词_cb_的'}, {'item': '小说', 'offset': 18, 'wordtag_label': '作品类_概念', 'length': 2, 'termid': '小说_cb_小说'}, {'item': ',', 'offset': 20, 'wordtag_label': 'w', 'length': 1}, {'item': '作者', 'offset': 21, 'wordtag_label': '人物类_概念', 'length': 2, 'termid': '人物_cb_作者'}, {'item': '是', 'offset': 23, 'wordtag_label': '肯定词', 'length': 1, 'termid': '肯定否定词_cb_是'}, {'item': '余兼羽', 'offset': 24, 'wordtag_label': '人物类_实体', 'length': 3}]}]
可配置参数说明:
batch_size
:批处理大小,请结合机器情况进行调整,默认为1。
linking
:实现基于词类的linking,默认为True。
task_path
:自定义任务路径,默认为None。
user_dict
:用户自定义词典文件,默认为None。
知识挖掘-词类知识标注任务共包含91种词性及专名类别标签,标签集合如下表:
WordTag标签集合 |
人物类_实体 |
组织机构类_军事组织机构_概念 |
文化类_制度政策协议 |
位置方位 |
术语类_医药学术语 |
信息资料_性别 |
否定词 |
人物类_概念 |
组织机构类_医疗卫生机构 |
文化类_姓氏与人名 |
世界地区类 |
术语类_生物体 |
链接地址 |
数量词 |
作品类_实体 |
组织机构类_医疗卫生机构_概念 |
生物类 |
世界地区类_国家 |
疾病损伤类 |
个性特征 |
数量词_序数词 |
作品类_概念 |
组织机构类_教育组织机构 |
生物类_植物 |
世界地区类_区划概念 |
疾病损伤类_植物病虫害 |
感官特征 |
数量词_单位数量词 |
组织机构类 |
组织机构类_教育组织机构_概念 |
生物类_动物 |
世界地区类_地理概念 |
宇宙类 |
场景事件 |
叹词 |
组织机构类_概念 |
物体类 |
品牌名 |
饮食类 |
事件类 |
介词 |
拟声词 |
组织机构类_企事业单位 |
物体类_概念 |
品牌名_品牌类型 |
饮食类_菜品 |
时间类 |
介词_方位介词 |
修饰词 |
组织机构类_企事业单位_概念 |
物体类_兵器 |
场所类 |
饮食类_饮品 |
时间类_特殊日 |
助词 |
修饰词_性质 |
组织机构类_国家机关 |
物体类_化学物质 |
场所类_概念 |
药物类 |
时间类_朝代 |
代词 |
修饰词_类型 |
组织机构类_国家机关_概念 |
其他角色类 |
场所类_交通场所 |
药物类_中药 |
时间类_具体时间 |
连词 |
修饰词_化 |
组织机构类_体育组织机构 |
文化类 |
场所类_交通场所_概念 |
术语类 |
时间类_时长 |
副词 |
外语单词 |
组织机构类_体育组织机构_概念 |
文化类_语言文字 |
场所类_网上场所 |
术语类_术语类型 |
词汇用语 |
疑问词 |
汉语拼音 |
组织机构类_军事组织机构 |
文化类_奖项赛事活动 |
场所类_网上场所_概念 |
术语类_符号指标类 |
信息资料 |
肯定词 |
w(标点) |
知识模板信息抽取
>>> from paddlenlp import Taskflow
>>> wordtag_ie = Taskflow("knowledge_mining", with_ie=True)
>>> wordtag_ie('《忘了所有》是一首由王杰作词、作曲并演唱的歌曲,收录在专辑同名《忘了所有》中,由波丽佳音唱片于1996年08月31日发行。')
[[{'text': '《忘了所有》是一首由王杰作词、作曲并演唱的歌曲,收录在专辑同名《忘了所有》中,由波丽佳音唱片于1996年08月31日发行。', 'items': [{'item': '《', 'offset': 0, 'wordtag_label': 'w', 'length': 1}, {'item': '忘了所有', 'offset': 1, 'wordtag_label': '作品类_实体', 'length': 4}, {'item': '》', 'offset': 5, 'wordtag_label': 'w', 'length': 1}, {'item': '是', 'offset': 6, 'wordtag_label': '肯定词', 'length': 1}, {'item': '一首', 'offset': 7, 'wordtag_label': '数量词_单位数量词', 'length': 2}, {'item': '由', 'offset': 9, 'wordtag_label': '介词', 'length': 1}, {'item': '王杰', 'offset': 10, 'wordtag_label': '人物类_实体', 'length': 2}, {'item': '作词', 'offset': 12, 'wordtag_label': '场景事件', 'length': 2}, {'item': '、', 'offset': 14, 'wordtag_label': 'w', 'length': 1}, {'item': '作曲', 'offset': 15, 'wordtag_label': '场景事件', 'length': 2}, {'item': '并', 'offset': 17, 'wordtag_label': '连词', 'length': 1}, {'item': '演唱', 'offset': 18, 'wordtag_label': '场景事件', 'length': 2}, {'item': '的', 'offset': 20, 'wordtag_label': '助词', 'length': 1}, {'item': '歌曲', 'offset': 21, 'wordtag_label': '作品类_概念', 'length': 2}, {'item': ',', 'offset': 23, 'wordtag_label': 'w', 'length': 1}, {'item': '收录', 'offset': 24, 'wordtag_label': '场景事件', 'length': 2}, {'item': '在', 'offset': 26, 'wordtag_label': '介词', 'length': 1}, {'item': '专辑', 'offset': 27, 'wordtag_label': '作品类_概念', 'length': 2}, {'item': '同名', 'offset': 29, 'wordtag_label': '场景事件', 'length': 2}, {'item': '《', 'offset': 31, 'wordtag_label': 'w', 'length': 1}, {'item': '忘了所有', 'offset': 32, 'wordtag_label': '作品类_实体', 'length': 4}, {'item': '》', 'offset': 36, 'wordtag_label': 'w', 'length': 1}, {'item': '中', 'offset': 37, 'wordtag_label': '词汇用语', 'length': 1}, {'item': ',', 'offset': 38, 'wordtag_label': 'w', 'length': 1}, {'item': '由', 'offset': 39, 'wordtag_label': '介词', 'length': 1}, {'item': '波丽佳音', 'offset': 40, 'wordtag_label': '人物类_实体', 'length': 4}, {'item': '唱片', 'offset': 44, 'wordtag_label': '作品类_概念', 'length': 2}, {'item': '于', 'offset': 46, 'wordtag_label': '介词', 'length': 1}, {'item': '1996年08月31日', 'offset': 47, 'wordtag_label': '时间类_具体时间', 'length': 11}, {'item': '发行', 'offset': 58, 'wordtag_label': '场景事件', 'length': 2}, {'item': '。', 'offset': 60, 'wordtag_label': 'w', 'length': 1}]}], [[{'HEAD_ROLE': {'item': '王杰', 'offset': 10, 'type': '人物类_实体'}, 'TAIL_ROLE': [{'item': '忘了所有', 'type': '作品类_实体', 'offset': 1}], 'GROUP': '创作', 'TRIG': [{'item': '作词', 'offset': 12}, {'item': '作曲', 'offset': 15}, {'item': '演唱', 'offset': 18}], 'SRC': 'REVERSE'}, {'HEAD_ROLE': {'item': '忘了所有', 'type': '作品类_实体', 'offset': 1}, 'TAIL_ROLE': [{'item': '王杰', 'offset': 10, 'type': '人物类_实体'}], 'GROUP': '创作者', 'SRC': 'HTG', 'TRIG': [{'item': '作词', 'offset': 12}, {'item': '作曲', 'offset': 15}, {'item': '演唱', 'offset': 18}]}, {'HEAD_ROLE': {'item': '忘了所有', 'type': '作品类_实体', 'offset': 1}, 'TAIL_ROLE': [{'item': '歌曲', 'offset': 21, 'type': '作品类_概念'}], 'GROUP': '类型', 'SRC': 'TAIL'}, {'HEAD_ROLE': {'item': '忘了所有', 'offset': 32, 'type': '作品类_实体'}, 'TAIL_ROLE': [{'item': '忘了所有', 'type': '作品类_实体', 'offset': 1}], 'GROUP': '收录', 'TRIG': [{'item': '收录', 'offset': 24}], 'SRC': 'REVERSE'}, {'HEAD_ROLE': {'item': '忘了所有', 'type': '作品类_实体', 'offset': 1}, 'TAIL_ROLE': [{'item': '忘了所有', 'offset': 32, 'type': '作品类_实体'}], 'GROUP': '收录于', 'SRC': 'HGT', 'TRIG': [{'item': '收录', 'offset': 24}]}, {'HEAD_ROLE': {'item': '忘了所有', 'offset': 32, 'type': '作品类_实体'}, 'TAIL_ROLE': [{'item': '王杰', 'type': '人物类_实体', 'offset': 10}], 'GROUP': '创作者', 'TRIG': [{'item': '专辑', 'offset': 27}], 'SRC': 'REVERSE'}, {'HEAD_ROLE': {'item': '王杰', 'type': '人物类_实体', 'offset': 10}, 'TAIL_ROLE': [{'item': '忘了所有', 'offset': 32, 'type': '作品类_实体'}], 'GROUP': '创作', 'SRC': 'HGT', 'TRIG': [{'item': '专辑', 'offset': 27}]}, {'HEAD_ROLE': {'item': '忘了所有', 'type': '作品类_实体', 'offset': 32}, 'TAIL_ROLE': [{'item': '唱片', 'offset': 44, 'type': '作品类_概念'}], 'GROUP': '类型', 'SRC': 'TAIL'}]]]
自定义抽取的schema
>>> from pprint import pprint
>>> schema = [
{
"head_role": "作品类_实体", #头实体词类
"group": "创作者", #关系名
"tail_role": [
{
"main": [
"人物类_实体" #尾实体词类
],
"support": [] #相关词类,可作为该关系的补充,不可作为尾实体独立存在
}
],
"trig_word": [
"作词", #触发词,对于没有触发词,而是由头尾实体直接触发的关系,可为null
],
"trig_type": "trigger", #trigger表明由触发词触发,tail表明为尾实体触发
"reverse": False, #是否为反向配置,即尾实体实际是头,头实体实际是尾
"trig_direction": "B", #触发P的方向,表示在自然表达中,尾实体在触发词的哪一边,L为左,R为右,B为双向都有可能,默认为B
"rel_group": "创作" #对应的反关系,即头尾实体对调后,对应的关系,用于逻辑推断
}]
>>> wordtag_ie.set_schema(schema)
>>> pprint(wordtag_ie('《忘了所有》是一首由王杰作词、作曲并演唱的歌曲,收录在专辑同名《忘了所有》中,由波丽佳音唱片于1996年08月31日发行。')[1])
[[{'GROUP': '创作',
'HEAD_ROLE': {'item': '王杰', 'offset': 10, 'type': '人物类_实体'},
'SRC': 'REVERSE',
'TAIL_ROLE': [{'item': '忘了所有', 'offset': 1, 'type': '作品类_实体'}],
'TRIG': [{'item': '作词', 'offset': 12}]},
{'GROUP': '创作者',
'HEAD_ROLE': {'item': '忘了所有', 'offset': 1, 'type': '作品类_实体'},
'SRC': 'HTG',
'TAIL_ROLE': [{'item': '王杰', 'offset': 10, 'type': '人物类_实体'}],
'TRIG': [{'item': '作词', 'offset': 12}]}]]
具体的WordTag-IE信息抽取的功能可以见WordTag-IE具体介绍 .
名词短语标注
>>> from paddlenlp import Taskflow
>>> nptag = Taskflow("knowledge_mining", model="nptag")
>>> nptag("糖醋排骨")
[{'text': '糖醋排骨', 'label': '菜品'}]
>>> nptag(["糖醋排骨", "红曲霉菌"])
[{'text': '糖醋排骨', 'label': '菜品'}, {'text': '红曲霉菌', 'label': '微生物'}]
# 使用`linking`输出粗粒度类别标签`category`,即WordTag的词汇标签。
>>> nptag = Taskflow("knowledge_mining", model="nptag", linking=True)
>>> nptag(["糖醋排骨", "红曲霉菌"])
[{'text': '糖醋排骨', 'label': '菜品', 'category': '饮食类_菜品'}, {'text': '红曲霉菌', 'label': '微生物', 'category': '生物类_微生物'}]
可配置参数说明:
batch_size
:批处理大小,请结合机器情况进行调整,默认为1。
max_seq_len
:最大序列长度,默认为64。
linking
:实现与WordTag类别标签的linking,默认为False。
task_path
:自定义任务路径,默认为None。