ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

简介: ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

零样本信息抽取(Information Extraction,IE)旨在从无标注文本中建立IE系统,因为很少涉及人为干预,该问题非常具有挑战性。但零样本IE不再需要标注数据时耗费的时间和人力,因此十分重要。近来的大规模语言模型(例如GPT-3,Chat GPT)在零样本设置下取得了很好的表现,这启发我们探索基于提示的方法来解决零样本IE任务。我们提出一个问题:不经过训练来实现零样本信息抽取是否可行?我们将零样本IE任务转变为一个两阶段框架的多轮问答问题(Chat IE),并在三个IE任务中广泛评估了该框架:实体关系三元组抽取、命名实体识别和事件抽取。在两个语言的6个数据集上的实验结果表明,Chat IE取得了非常好的效果,甚至在几个数据集上(例如NYT11-HRL)上超过了全监督模型的表现。我们的工作能够为有限资源下IE系统的建立奠定基础。

1.方法介绍

结果展示:

  • Description

通过ChatIE 和提示功能的增强,它旨在从原始句子中自动提取结构化信息,并对输入句子进行有价值的深度分析。利用有价值的结构化信息可以帮助企业做出深刻的业务改进决策。demo.

Task Name Lauguages
RE entity-relation joint extraction Chinese, English
NER named entity recoginzation Chinese, English
EE event extraction Chinese, English

1.1 RE

This task aims to extract triples from plain texts, such as (China, capital, Beijing) , (《如懿传》, 主演, 周迅).

  • Input
    • sentence: a plain text.
    • relation type list (rtl)* : {'relation type 1': ['subject1', 'object1'], 'relation type 2': ['subject2', 'object2'], ...}

PS: 表示可选,我们为它们设置默认值。但是为了更好地提取,您应该根据应用程序场景指定三个列表。

  • Examples

    • sentence: Four other Google executives the chief financial officer , George Reyes ; the senior vice president for business operations , Shona Brown ; the chief legal officer , David Drummond ; and the senior vice president for product management , Jonathan Rosenberg earned salaries of $ 250,000 each .
    • rtl: default, see file "default-types"

    • ouptut:

* **sentence:** 第五部:《如懿传》《如懿传》是一部古装宫廷情感电视剧,由汪俊执导,周迅、霍建华、张钧甯、董洁、辛芷蕾、童瑶、李纯、邬君梅等主演。  
* **rtl:** default, see file "default-types"  
* **ouptut:**  
![](https://ai-studio-static-online.cdn.bcebos.com/5fcebba27e7546f48c14188fcf02a276d2dd6f5a68614866a652d0d60cd0368a)

1.2 NER

该任务旨在从纯文本中提取实体, such as (LOC, Beijing) , (人物, 周恩来).

  • Input

    • sentence: a plain text.
    • entity type list (etl)* : ['entity type 1', 'entity type 2', ...]
  • Examples

    • sentence: James worked for Google in Beijing, the capital of China.
    • etl: ['LOC', 'MISC', 'ORG', 'PER']
    • ouptut:
* **sentence:** 中国共产党创立于中华民国大陆时期,由陈独秀和李大钊领导组织。   
* **etl:** ['组织机构', '地点', '人物']  
* **ouptut:**  
![](https://ai-studio-static-online.cdn.bcebos.com/c6974afefaf54eac8b86a6a33bcbe64c2d08843c30bb487f9253cd65ecca19e1)

1.3 EE

该任务旨在从纯文本中提取事件, such as {Life-Divorce: {Person: Bob, Time: today, Place: America}} , {竞赛行为-晋级: {时间: 无, 晋级方: 西北狼, 晋级赛事: 中甲榜首之争}}.

  • Input

    • sentence: a plain text.
    • event type list (etl)* : {'event type 1': ['argument role 1', 'argument role 2', ...], ...}
    • sentence: Yesterday Bob and his wife got divorced in Guangzhou.
    • etl: default, see file "default-types"
    • ouptut:

* **sentence:** 在2022年卡塔尔世界杯决赛中,阿根廷以点球大战险胜法国。  
* **etl:** default, see file "default-types"  
* **ouptut:**  
![](https://ai-studio-static-online.cdn.bcebos.com/ea4ff46b927542fd99456eab0b1470b6e5e303caca874ac886685e3c28fc34ca)

2.本地使用教学

react+flask

  1. cd front-end and Run npm install to download required dependencies.
  2. Run npm run start. GPT4IE should open up in a new browser tab.
  3. cd back-end and Run python run.py.
  4. note: node-version v14.17.4 npm-version 9.6.0
  5. you may need to configure proxy on your machine.

3.Prompt提示词

3.1 EE提示词

--------------Stage I-------------------------------------------
#text denotes the input sentence
事件类型列表: ['财经/交易-出售/收购', '财经/交易-跌停', '财经/交易-加息', '财经/交易-降价', '财经/交易-降息', '财经/交易-融资', '财经/交易-上市', '财经/交易-涨价', '财经/交易-涨停', '产品行为-发布', '产品行为-获奖', '产品行为-上映', '产品行为-下架', '产品行为-召回', '交往-道歉', '交往-点赞', '交往-感谢', '交往-会见', '交往-探班', '竞赛行为-夺冠', '竞赛行为-晋级', '竞赛行为-禁赛', '竞赛行为-胜负', '竞赛行为-退赛', '竞赛行为-退役', '人生-产子/女', '人生-出轨', '人生-订婚', '人生-分手', '人生-怀孕', '人生-婚礼', '人生-结婚', '人生-离婚', '人生-庆生', '人生-求婚', '人生-失联', '人生-死亡', '司法行为-罚款', '司法行为-拘捕', '司法行为-举报', '司法行为-开庭', '司法行为-立案', '司法行为-起诉', '司法行为-入狱', '司法行为-约谈', '灾害/意外-爆炸', '灾害/意外-车祸', '灾害/意外-地震', '灾害/意外-洪灾', '灾害/意外-起火', '灾害/意外-坍/垮塌', '灾害/意外-袭击', '灾害/意外-坠机', '组织关系-裁员', '组织关系-辞/离职', '组织关系-加盟', '组织关系-解雇', '组织关系-解散', '组织关系-解约', '组织关系-停职', '组织关系-退出', '组织行为-罢工', '组织行为-闭幕', '组织行为-开幕', '组织行为-游行']。
给定一句话:'{text}'。
请问此句话对应的事件类型有哪些? 要求回答形式: '事件类型: 事件类型内容'。
--------------Stage II-------------------------------------------
#vent_type and role_list together form the schema for event extraction, where event_type comes from Stage I.
#Optional schemas are as follows: {'财经/交易-出售/收购': ['时间', '出售方', '交易物', '出售价格', '收购方'], '财经/交易-跌停': ['时间', '跌停股票'], '财经/交易-加息': ['时间', '加息幅度', '加息机构'], '财经/交易-降价': ['时间', '降价方', '降价物', '降价幅度'], '财经/交易-降息': ['时间', '降息幅度', '降息机构'], '财经/交易-融资': ['时间', '跟投方', '领投方', '融资轮次', '融资金额', '融资方'], '财经/交易-上市': ['时间', '地点', '上市企业', '融资金额'], '财经/交易-涨价': ['时间', '涨价幅度', '涨价物', '涨价方'], '财经/交易-涨停': ['时间', '涨停股票'], '产品行为-发布': ['时间', '发布产品', '发布方'], '产品行为-获奖': ['时间', '获奖人', '奖项', '颁奖机构'], '产品行为-上映': ['时间', '上映方', '上映影视'], '产品行为-下架': ['时间', '下架产品', '被下架方', '下架方'], '产品行为-召回': ['时间', '召回内容', '召回方'], '交往-道歉': ['时间', '道歉对象', '道歉者'], '交往-点赞': ['时间', '点赞方', '点赞对象'], '交往-感谢': ['时间', '致谢人', '被感谢人'], '交往-会见': ['时间', '地点', '会见主体', '会见对象'], '交往-探班': ['时间', '探班主体', '探班对象'], '竞赛行为-夺冠': ['时间', '冠军', '夺冠赛事'], '竞赛行为-晋级': ['时间', '晋级方', '晋级赛事'], '竞赛行为-禁赛': ['时间', '禁赛时长', '被禁赛人员', '禁赛机构'], '竞赛行为-胜负': ['时间', '败者', '胜者', '赛事名称'], '竞赛行为-退赛': ['时间', '退赛赛事', '退赛方'], '竞赛行为-退役': ['时间', '退役者'], '人生-产子/女': ['时间', '产子者', '出生者'], '人生-出轨': ['时间', '出轨方', '出轨对象'], '人生-订婚': ['时间', '订婚主体'], '人生-分手': ['时间', '分手双方'], '人生-怀孕': ['时间', '怀孕者'], '人生-婚礼': ['时间', '地点', '参礼人员', '结婚双方'], '人生-结婚': ['时间', '结婚双方'], '人生-离婚': ['时间', '离婚双方'], '人生-庆生': ['时间', '生日方', '生日方年龄', '庆祝方'], '人生-求婚': ['时间', '求婚者', '求婚对象'], '人生-失联': ['时间', '地点', '失联者'], '人生-死亡': ['时间', '地点', '死者年龄', '死者'], '司法行为-罚款': ['时间', '罚款对象', '执法机构', '罚款金额'], '司法行为-拘捕': ['时间', '拘捕者', '被拘捕者'], '司法行为-举报': ['时间', '举报发起方', '举报对象'], '司法行为-开庭': ['时间', '开庭法院', '开庭案件'], '司法行为-立案': ['时间', '立案机构', '立案对象'], '司法行为-起诉': ['时间', '被告', '原告'], '司法行为-入狱': ['时间', '入狱者', '刑期'], '司法行为-约谈': ['时间', '约谈对象', '约谈发起方'], '灾害/意外-爆炸': ['时间', '地点', '死亡人数', '受伤人数'], '灾害/意外-车祸': ['时间', '地点', '死亡人数', '受伤人数'], '灾害/意外-地震': ['时间', '死亡人数', '震级', '震源深度', '震中', '受伤人数'], '灾害/意外-洪灾': ['时间', '地点', '死亡人数', '受伤人数'], '灾害/意外-起火': ['时间', '地点', '死亡人数', '受伤人数'], '灾害/意外-坍/垮塌': ['时间', '坍塌主体', '死亡人数', '受伤人数'], '灾害/意外-袭击': ['时间', '地点', '袭击对象', '死亡人数', '袭击者', '受伤人数'], '灾害/意外-坠机': ['时间', '地点', '死亡人数', '受伤人数'], '组织关系-裁员': ['时间', '裁员方', '裁员人数'], '组织关系-辞/离职': ['时间', '离职者', '原所属组织'], '组织关系-加盟': ['时间', '加盟者', '所加盟组织'], '组织关系-解雇': ['时间', '解雇方', '被解雇人员'], '组织关系-解散': ['时间', '解散方'], '组织关系-解约': ['时间', '被解约方', '解约方'], '组织关系-停职': ['时间', '所属组织', '停职人员'], '组织关系-退出': ['时间', '退出方', '原所属组织'], '组织行为-罢工': ['时间', '所属组织', '罢工人数', '罢工人员'], '组织行为-闭幕': ['时间', '地点', '活动名称'], '组织行为-开幕': ['时间', '地点', '活动名称'], '组织行为-游行': ['时间', '地点', '游行组织', '游行人数']}
事件类型: '{event_type}' 对应的论元角色列表为: {role_list}。
请根据论元角色列表在上述句子中提取出事件论元, 并以表格形式给出, 表头分别为 '事件类型', '论元角色', '论元内容'。
如果某个论元角色没有相应的论元内容,论元内容回答: 无。

#anilla Prompt (Single-turn)
#text denotes the input sentence
#For event_type_{} and role_list_{}, please refer to ChatIE (Two-stage) above
事件类型: '{event_type_1}' 对应的论元角色列表为: {role_list_1}, 事件类型: '{event_type_2}' 对应的论元角色列表为: {role_list_2}, ...
给定一句话:'{text}'。
请提取出上述句子的事件论元, 并以表格形式给出, 表头分别为 '事件类型', '论元角色', '论元内容'。
如果某个论元角色没有相应的论元内容,论元内容回答: 无。

3.2 RE

部分展示

假设你是一个实体关系五元组抽取模型。我会给你头实体类型列表subject_types,尾实体类型列表object_types,关系列表relations,再给你一个句子,请你根据这三个列表抽出句子中的subject和object,并组成五元组,且形式为(subject, subject_type, relation, object, object_type)。

给定的句子为:"{}"

relations:['所属专辑', '成立日期', '海拔', '官方语言', '占地面积', '父亲', '歌手', '制片人', '导演', '首都', '主演', '董事长', '祖籍', '妻子', '母亲', '气候', '面积', '主角', '自', '校长', '丈夫', '主持人', '主题曲', '修业年限', '作曲', '号', '上映时间', '票房', '饰演', '配音', '获奖']

subject_types:['国家', '行政区', '文学作品', '人物', '影视作品', '学校', '图书作品', '地点', '历史人物', '景点', '歌曲', '学科专业', '企业', '电视综艺', '机构', '企业/品牌', ' 娱乐人物']

object_types:['国家', '人物', 'Text', 'Date', '地点', '气候', '城市', '歌曲', '企业', 'Number', '音乐专辑', '学校', '作品', '语言']

3.3 NER

--------------Vanilla Prompt(单轮)-------------------------------------
假设你是一个命名实体识别模型,现在我会给你一个句子,请根据我的要求识别出每个句子中的实体,实体类型只要三种:组织机构、地点、人物。请用列表的形式展示,其中列表的第一个元素为实体名称,第二个元素为实体类型。如果该句子中不含有指定的实体类型,你可以输出:[]。输出格式形为:["实体名称1", "实体类型1"], ["实体名称2", "实体类型2"], …。除了这个列表以外请不要输出别的多余的话。这个句子是:""

--------------Stage I-------------------------------------------

--------------Stage II-------------------------------------------
假设你是一个命名实体识别模型,现在我会给你一个句子,请根据我的要求识别出每个句子中的实体,并用列表的形式展示。其中列表的第一个元素为实体名称,第二个元素为实体类型。如果该句子中不含有指定的实体类型,你可以输出:[]。输出格式形为:["实体名称1", "实体类型1"], ["实体名称2", "实体类型2"], …。除了这个列表以外请不要输出别的多余的话。请识别出以下句子中类型为“组织机构”的实体:""
假设你是一个命名实体识别模型,现在我会给你一个句子,请根据我的要求识别出每个句子中的实体,并用列表的形式展示。其中列表的第一个元素为实体名称,第二个元素为实体类型。如果该句子中不含有指定的实体类型,你可以输出:[]。输出格式形为:["实体名称1", "实体类型1"], ["实体名称2", "实体类型2"], …。除了这个列表以外请不要输出别的多余的话。遇到国家的名字时,可以将其识别成地点类型实体。请识别出以下句子中类型为“地点”的实体:""
假设你是一个命名实体识别模型,现在我会给你一个句子,请根据我的要求识别出每个句子中的实体,并用列表的形式展示。其中列表的第一个元素为实体名称,第二个元素为实体类型。如果该句子中不含有指定的实体类型,你可以输出:[]。输出格式形为:["实体名称1", "实体类型1"], ["实体名称2", "实体类型2"], …。除了这个列表以外请不要输出别的多余的话。请识别出以下句子中类型为“人物”的实体:""

4.更多案例展示

4.1 RE

4.2 NER

4.3 EE

4.4 其他

项目码源见文末

项目链接跳转

更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

![](https://ai-studio-static-online.cdn.bcebos.c

相关文章
|
自然语言处理 算法 机器人
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
|
6月前
|
机器学习/深度学习 自然语言处理 算法
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
97 0
|
6月前
bert知识库问答 实现建筑领域的问答匹配 文本相似性计算 完整代码数据
bert知识库问答 实现建筑领域的问答匹配 文本相似性计算 完整代码数据
61 0
|
8月前
|
机器学习/深度学习 自然语言处理 文字识别
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
GraphIE:通过建模实例间和标签间依赖性联合抽取实体、关系和事件 论文解读
事件触发词检测、实体提及识别、事件论元抽取和关系抽取是信息抽取中的四个重要任务,它们被联合执行(联合信息抽取- JointIE),以避免错误传播并利用任务实例之间的依赖关系
113 1
|
9月前
|
机器学习/深度学习 自然语言处理
【论文速递】ACL 2022 - 查询和抽取:将事件抽取细化为面向类型的二元解码
事件抽取通常被建模为一个多分类问题,其中事件类型和论元角色被视为原子符号。这些方法通常仅限于一组预定义的类型。
86 1
|
9月前
|
机器学习/深度学习 自然语言处理 BI
FourIE:基于图卷积网络的跨任务实例表征交互和标签依赖的联合信息抽取模型
现有的信息抽取(IE)工作主要是分别解决四个主要任务(实体提及识别、关系抽取、事件触发词检测和论元抽取),无法从任务之间的相互依赖中获益。
80 2
|
9月前
|
JSON 算法 数据格式
优化cv2.findContours()函数提取的目标边界点,使语义分割进行远监督辅助标注
可以看到cv2.findContours()函数可以将目标的所有边界点都进行导出来,但是他的点存在一个问题,太过密集,如果我们想将语义分割的结果重新导出成labelme格式的json文件进行修正时,这就会存在点太密集没有办法进行修改,这里展示一个示例:没有对导出的结果进行修正,在labelme中的效果图。
86 0
|
10月前
|
数据采集 机器学习/深度学习 自然语言处理
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
146 0
|
12月前
|
机器学习/深度学习 算法
在对数据进行预处理时,怎样处理类别型特征?
在对数据进行预处理时,怎样处理类别型特征?