ChatIE(LLM大模型用于信息抽取)

news/2024/11/28 14:43:55/

Zero-Shot Information Extraction via Chatting with ChatGPT

  • paper:https://arxiv.org/abs/2302.10205

利用ChatGPT实现零样本信息抽取(Information Extraction,IE),看到零样本就能大概明白这篇文章将以ChatGPT作为一个基座然后补全前后端,来实现抽取任务。主要针对抽取中的三个重要任务:

对于句子:《我的爱情日记》是1990年在北京上映的中国…

  • 实体关系三元组抽取任务,如(我的爱情日记,上映日期,1990年)
  • 命名实体识别任务,如人物的实体有(吴天戈,…)
  • 事件抽取任务,如事件是(产品行为-上映)

ChatIE如下图所示,
在这里插入图片描述

具体来说,ChatIE实现零样本的策略是将其任务转化为具有多轮提问-回答问题,主要分为两个阶段:

  • 第一阶段,找出句子中可能存在的相应元素类型(对应三个任务分别为实体、关系或事件),通过这种方式可以提前过滤到不需要的信息,以减少搜索和计算复杂度。
    • 如上图中的上半部分,输入给chatGPT的信息为:“给定的句子为:sentence。给定实体/关系/事件类型列表:[…]。在这个句子中,可能包含了哪些实体/关系/事件类型”,然后得到一些关于人物/地点的实体,上映时间/导演等关系,上映等具体事件。
  • 第二阶段,对第一阶段识别出的每个元素按照任务执行相应的信息抽取。由于有些问题比较复杂,所以作者们设计了问题模板链,即某个元素的抽取可能取决于前一些元素的抽取。
    • 如上图中的下半部分,分不同的子任务处理方法不同。
# 命名关系
# 先定义实体的类别
df_nert = {'chinese': ['组织机构', '地点', '人物']
}
# 再输入到prompt中
ner_s1_p = {'chinese': '''给定的句子为:"{}"\n\n给定实体类型列表:{}\n\n在这个句子中,可能包含了哪些实体类型?\n如果不存在则回答:无\n按照元组形式回复,如 (实体类型1, 实体类型2, ……):'''
}
# 关系抽取
# 先定义抽取的schema
df_ret = {'chinese': {'所属专辑': ['歌曲', '音乐专辑'], '成立日期': ['机构', 'Date'], ....}
}
# 再输入到prompt中
re_s1_p = {'chinese': '''给定的句子为:"{}"\n\n给定关系列表:{}\n\n在这个句子中,可能包含了哪些关系?\n请给出关系列表中的关系。\n如果不存在则回答:无\n按照元组形式回复,如 (关系1, 关系2, ……):'''
}
# 事件抽取
# 先事件的schema
df_eet = {'chinese': {'灾害/意外-坠机': ['时间', '地点', '死亡人数', '受伤人数'],...}
}
# 再输入到prompt中
ee_s1_p = {'chinese': '''给定的句子为:"{}"\n\n给定事件类型列表:{}\n\n在这个句子中,可能包含了哪些事件类型?\n请给出事件类型列表中的事件类型。\n如果不存在则回答:无\n按照元组形式回复,如 (事件类型1, 事件类型2, ……):'''
}

代码已经开源,包含了详细的前后端处理。

  • https://github.com/cocacola-lab/ChatIE

http://www.ppmy.cn/news/39254.html

相关文章

【遗传算法、粒子群、改进遗传算法】基于智能算法的电力系统电网最优规划方案的研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

行业观察 | 芯片制造过程涉及的Corner的概念是什么?

本文简要总结芯片制造过程中所涉及到的Corner的概念。 更新:2023 / 4 / 9 行业观察 | 芯片制造过程涉及的Corner的概念是什么?Corner的概念PVT CornerProcess CornerVoltage CornerTemperature CornerRC CornerCorner 示例Corner的意义Corner的实现PVT …

浅谈自动化测试用例创建和文档

通过自动创建测试用例和文档,探索自然语言处理 (NLP) 在革新软件测试方面的变革力量。 技术的快速发展导致对高效和有效的软件测试方法的需求增加。该领域最有前途的进步之一是自然语言处理 (NLP) 技术的集成。NLP 是人工智能(AI)的一个子集,专注于通过…

Vue3中的ref模板引用的使用

ref用于对元素的标记&#xff0c;通过ref可以获取到对应元素上的属性和方法。 一、访问模板引用 在Vue3中为了通过组合式 API 获得该模板引用&#xff0c;我们需要声明一个同名的 ref。 <template><div><div ref"element">{{ item }}</div&g…

ReentrantLock与synchronized的区别

ReentrantLock与synchronized的区别&#x1f50e;区别1&#x1f50e;区别2&#x1f50e;区别3&#x1f50e;结尾synchronized 基于代码块的方式控制加锁与解锁 ReentrantLock 基于 lock(加锁) 与 unlock(解锁) 方式控制加锁与解锁 &#x1f50e;区别1 synchronized 只是单纯的…

ToBeWritten之ARM汇编基础铺垫

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…

chatGPT能生成图片吗-chatGPT如何用

要制作一个ChatGPT中文版的网页&#xff0c;您需要完成以下步骤&#xff1a; 确定技术栈&#xff1a;您需要选择合适的技术栈来进行开发。您可以选择Javascript&#xff0c;HTML和CSS来构建前端界面&#xff0c;使用Node.jsExpress.js来处理后端API的请求&#xff0c;使用Pytho…

【C++】---继承

文章目录继承的概念与定义继承的定义格式父类和子类的对象赋值转换继承中的作用域子类的默认成员函数菱形继承虚拟继承总结继承的概念与定义 继承是面向对象编程三大特性之一&#xff0c;是一种可以使代码复用最重要的手段&#xff0c;在原有类特性的基础上进行扩展&#xff0…