【数据分析】用Python做事件抽取任务-快速上手方案

目录

  • 方法一:使用OmniEvent库
    • 安装OmniEvent
    • 使用OmniEvent进行事件抽取
    • OmniEvent优点
    • 缺点
  • 方法二:使用大模型
    • 使用GPT网页版进行事件抽取
      • 事件类型列表
    • 大模型优点
    • 缺点
  • 总结

在自然语言处理(NLP)领域,事件抽取是一项关键任务,它涉及从文本中识别和提取事件及其相关信息。

本文作者将介绍两种常见的事件抽取方法:使用清华大学开源的OmniEvent工具包ChatGPT大模型方法。

我们将分析这两种方法的优缺点,并提供一些代码示例来展示其实际应用。

方法一:使用OmniEvent库

OmniEvent是清华大学开源的一款用于事件抽取的库,支持多种事件抽取任务,包括触发词检测、事件论元抽取等。该库提供了预训练模型和易于使用的接口,极大简化了事件抽取的实现。

全面涵盖各种范式,并对广泛使用的英文和中文数据集提供公平、统一的评估。模块化实现使 OmniEvent 具有高度可扩展性。

安装OmniEvent

首先,我们需要安装OmniEvent库。可以使用以下命令进行安装:

pip install omnievent

使用OmniEvent进行事件抽取

以下是一个使用OmniEvent进行事件抽取的示例代码:


from OmniEvent import infer
device='cpu'# 初始化OmniEvent模型
def init_models(device='cpu'):ed_model, ed_tokenizer = infer.get_pretrained("s2s-mt5-ed",device=device)eae_model, eae_tokenizer = infer.get_pretrained("s2s-mt5-eae",device=device)return (ed_model, ed_tokenizer,eae_model,eae_tokenizer)# 进行事件抽取
def run_ee(models,news_text_list,device='cpu'):schemas = ["<ace>"]*len(news_text_list)ed_model, ed_tokenizer,eae_model,eae_tokenizer=modelsevents = infer.do_event_detection(ed_model, ed_tokenizer, news_text_list, schemas, device)instances = infer.prepare_for_eae_from_pred(news_text_list, events, schemas)if len(instances[0]["triggers"]) == 0:results = [{"text": instances[0]["text"],"events": []}]return resultsarguments = infer.do_event_argument_extraction(eae_model, eae_tokenizer, instances, device)results = infer.get_eae_result(instances, arguments)return resultstext = "“中比动漫文化周”12日在布鲁塞尔中国文化中心开幕,旨在通过动漫这一独特的艺术形式,促进两国文化的交流与理解。"
models=init_models(device)
ee=run_ee(models,[text])
# 输出结果for events in ee:print("文本:", events['text'])for event in events['events']:print(f"事件类型: {event['type']}")print(f"触发词: {event['trigger']}")print(f"论元: {event['arguments']}")

Output:

文本: “中比动漫文化周”12日在布鲁塞尔中国文化中心开幕,旨在通过动漫这一独特的艺术形式,促进两国文化的交流与理解。
事件类型: 组织行为开幕
触发词: 开幕
论元: [{'mention': '12日', 'offset': [9, 12], 'role': '时间'}, {'mention': '布鲁塞尔中国文化中心', 'offset': [13, 23], 'role': '地点'}, {'mention': '“中比动漫文化周”', 'offset': [0, 9], 'role': '活动名称'}]
CPU times: user 21.2 s, sys: 78.3 ms, total: 21.3 s
Wall time: 5.53 s

OmniEvent优点

  1. 易用性高:OmniEvent提供了简单易用的API,用户可以快速上手。
  2. 预训练模型:库中包含多种预训练模型,可直接用于实际任务,减少训练成本。
  3. 多任务支持:支持多种事件抽取任务,包括触发词检测和事件论元抽取。

缺点

  1. 依赖数据集:虽然预训练模型能应对大部分任务,但特定领域的事件抽取可能需要额外的训练数据。
  2. 运行效率低: 模型是直接将ED任务和EAE任务合并为EE任务,因此耗时较长。(可将其分开,再得到ED任务结果后,选择满足条件的数据进行下一步EAE任务的测试)

方法二:使用大模型

大模型(如GPT-4、BERT等)在各种NLP任务中表现优异,也可用于事件抽取。大模型的优势在于其强大的语言理解能力和泛化能力。

由于经费有限,本文只能用网页版用来演示效果。项目中实际开发可以使用Pythonlangchain工具包调用大模型api接口达到此效果。

使用GPT网页版进行事件抽取

input prompt:

给定的句子为:"“中比动漫文化周”12日在布鲁塞尔中国文化中心开幕,旨在通过动漫这一独特的艺术形式,促进两国文化的交流与理解。"给定事件类型列表:['灾害/意外-坠机', '司法行为-举报', '财经/交易-涨价', '组织关系-解雇', '组织关系-停职', '财经/交易-加息', '交往-探班', '人生-怀孕', '组织关系-辞/离职', '组织关系-裁员', '灾害/意外-车祸', '人生-离婚', '司法行为-起诉', '竞赛行为-禁赛', '人生-婚礼', '财经/交易-涨停', '财经/交易-上市', '组织关系-解散', '财经/交易-跌停', '财经/交易-降价', '组织行为-罢工', '司法行为-开庭', '竞赛行为-退役', '人生-求婚', '人生-庆生', '交往-会见', '竞赛行为-退赛', '交往-道歉', '司法行为-入狱', '组织关系-加盟', '人生-分手', '灾害/意外-袭击', '灾害/意外-坍/垮塌', '组织关系-解约', '产品行为-下架', '灾害/意外-起火', '灾害/意外-爆炸', '产品行为-上映', '人生-订婚', '组织关系-退出', '交往-点赞', '产品行为-发布', '人生-结婚', '组织行为-闭幕', '人生-死亡', '竞赛行为-夺冠', '人生-失联', '财经/交易-出售/收购', '竞赛行为-晋级', '竞赛行为-胜负', '财经/交易-降息', '组织行为-开幕', '司法行为-拘捕', '交往-感谢', '司法行为-约谈', '灾害/意外-地震', '人生-产子/女', '财经/交易-融资', '司法行为-罚款', '人生-出轨', '灾害/意外-洪灾', '组织行为-游行', '司法行为-立案', '产品行为-获奖', '产品行为-召回']在这个句子中,可能包含了哪些事件类型?
请给出事件类型列表中的事件类型。
如果不存在则回答:无
按照元组形式回复,如 (事件类型1, 事件类型2, ……)

output:
在这里插入图片描述
Input prompt:

事件类型"组织行为-开幕"对应的论元角色列表为:['时间', '地点', '活动名称']。
在给定的句子中,根据论元角色提取出事件论元。
如果论元角色没有相应的论元内容,则论元内容回答:无
按照表格形式回复,表格有两列且表头为(论元角色,论元内容):

Output:
在这里插入图片描述

事件类型列表

{'灾害/意外-坠机': ['时间', '地点', '死亡人数', '受伤人数'],'司法行为-举报': ['时间', '举报发起方', '举报对象'],'财经/交易-涨价': ['时间', '涨价幅度', '涨价物', '涨价方'],'组织关系-解雇': ['时间', '解雇方', '被解雇人员'],'组织关系-停职': ['时间', '所属组织', '停职人员'],'财经/交易-加息': ['时间', '加息幅度', '加息机构'],'交往-探班': ['时间', '探班主体', '探班对象'],'人生-怀孕': ['时间', '怀孕者'],'组织关系-辞/离职': ['时间', '离职者', '原所属组织'],'组织关系-裁员': ['时间', '裁员方', '裁员人数'],'灾害/意外-车祸': ['时间', '地点', '死亡人数', '受伤人数'],'人生-离婚': ['时间', '离婚双方'],'司法行为-起诉': ['时间', '被告', '原告'],'竞赛行为-禁赛': ['时间', '禁赛时长', '被禁赛人员', '禁赛机构'],'人生-婚礼': ['时间', '地点', '参礼人员', '结婚双方'],'财经/交易-涨停': ['时间', '涨停股票'],'财经/交易-上市': ['时间', '地点', '上市企业', '融资金额'],'组织关系-解散': ['时间', '解散方'],'财经/交易-跌停': ['时间', '跌停股票'],'财经/交易-降价': ['时间', '降价方', '降价物', '降价幅度'],'组织行为-罢工': ['时间', '所属组织', '罢工人数', '罢工人员'],'司法行为-开庭': ['时间', '开庭法院', '开庭案件'],'竞赛行为-退役': ['时间', '退役者'],'人生-求婚': ['时间', '求婚者', '求婚对象'],'人生-庆生': ['时间', '生日方', '生日方年龄', '庆祝方'],'交往-会见': ['时间', '地点', '会见主体', '会见对象'],'竞赛行为-退赛': ['时间', '退赛赛事', '退赛方'],'交往-道歉': ['时间', '道歉对象', '道歉者'],'司法行为-入狱': ['时间', '入狱者', '刑期'],'组织关系-加盟': ['时间', '加盟者', '所加盟组织'],'人生-分手': ['时间', '分手双方'],'灾害/意外-袭击': ['时间', '地点', '袭击对象', '死亡人数', '袭击者', '受伤人数'],'灾害/意外-坍/垮塌': ['时间', '坍塌主体', '死亡人数', '受伤人数'],'组织关系-解约': ['时间', '被解约方', '解约方'],'产品行为-下架': ['时间', '下架产品', '被下架方', '下架方'],'灾害/意外-起火': ['时间', '地点', '死亡人数', '受伤人数'],'灾害/意外-爆炸': ['时间', '地点', '死亡人数', '受伤人数'],'产品行为-上映': ['时间', '上映方', '上映影视'],'人生-订婚': ['时间', '订婚主体'],'组织关系-退出': ['时间', '退出方', '原所属组织'],'交往-点赞': ['时间', '点赞方', '点赞对象'],'产品行为-发布': ['时间', '发布产品', '发布方'],'人生-结婚': ['时间', '结婚双方'],'组织行为-闭幕': ['时间', '地点', '活动名称'],'人生-死亡': ['时间', '地点', '死者年龄', '死者'],'竞赛行为-夺冠': ['时间', '冠军', '夺冠赛事'],'人生-失联': ['时间', '地点', '失联者'],'财经/交易-出售/收购': ['时间', '出售方', '交易物', '出售价格', '收购方'],'竞赛行为-晋级': ['时间', '晋级方', '晋级赛事'],'竞赛行为-胜负': ['时间', '败者', '胜者', '赛事名称'],'财经/交易-降息': ['时间', '降息幅度', '降息机构'],'组织行为-开幕': ['时间', '地点', '活动名称'],'司法行为-拘捕': ['时间', '拘捕者', '被拘捕者'],'交往-感谢': ['时间', '致谢人', '被感谢人'],'司法行为-约谈': ['时间', '约谈对象', '约谈发起方'],'灾害/意外-地震': ['时间', '死亡人数', '震级', '震源深度', '震中', '受伤人数'],'人生-产子/女': ['时间', '产子者', '出生者'],'财经/交易-融资': ['时间', '跟投方', '领投方', '融资轮次', '融资金额', '融资方'],'司法行为-罚款': ['时间', '罚款对象', '执法机构', '罚款金额'],'人生-出轨': ['时间', '出轨方', '出轨对象'],'灾害/意外-洪灾': ['时间', '地点', '死亡人数', '受伤人数'],'组织行为-游行': ['时间', '地点', '游行组织', '游行人数'],'司法行为-立案': ['时间', '立案机构', '立案对象'],'产品行为-获奖': ['时间', '获奖人', '奖项', '颁奖机构'],'产品行为-召回': ['时间', '召回内容', '召回方']
}

大模型优点

  1. 强大的语言理解能力:大模型具有强大的语言理解和推理能力,能够应对复杂的事件抽取任务。
  2. 适应性强:无需针对特定任务进行大量调整,能较好地泛化到不同领域的任务。
  3. 持续更新:大模型通常由大型公司维护,更新频率高,性能不断提升。

缺点

  1. 成本高:调用大模型通常需要付费,成本较高。
  2. 响应时间:由于模型复杂度高,推理时间较长,可能影响实时性要求高的应用。
  3. 依赖网络:需要稳定的网络连接来访问模型服务。

总结

OmniEvent库和大模型各有优缺点,适用于不同的应用场景。如果您需要快速实现事件抽取并且对特定领域有较高的定制化需求,OmniEvent是一个不错的选择。如果您追求高精度和强泛化能力,并且预算充足,可以考虑使用大模型。

无论选择哪种方法,都需要根据具体需求和资源情况进行权衡。希望本文能为您的事件抽取任务提供一些有价值的参考。

大数据分析为运营和各行业带来了前所未有的机会,使企业能够更敏锐地洞察市场、优化运营,并更有效地应对竞争和变革。在信息时代,充分利用大数据分析,将成为企业取得竞争优势的不可忽视的关键要素。

本人数据分析领域的从业者,拥有专业背景和能力,可以为您的数据采集、挖掘和分析需求提供支持。期待着能够与您共同探索更多有意义的数据洞见,为您的项目和业务提供数据分析方面的帮助。

创作不易,如果你觉得有帮助,请点个赞支持一下。你的鼓励是我创作的最大动力,期待未来能为大家带来更多有趣的分析文章。感谢大家的阅读和支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/355301.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工程施工安全检测嵌入式解决方案

工程施工安全检测嵌入式解决方案 1 范围1.1 引言1.2 系统概述1.3 文档概述 2 工程施工安全检测系统应用场景2.1 作业操作安全检查2.2 受限空间作业安全检测2.3 应急设备操作行为检测2.4 动火作业安全检测 3 工程施工安全检测系统设计方案概述3.1 AI识别系统3.2 AI关键技术介绍3…

武汉工程大学24计算机考研数据,有学硕招收调剂,而专硕不招收调剂!

武汉工程大学是一所以工为主&#xff0c;覆盖工、理、管、经、文、法、艺术、医学、教育学等九大学科门类的多科性教学研究型大学&#xff0c;是湖北省重点建设高校、湖北省国内一流学科建设高校&#xff0c;入选卓越工程师教育培养计划、中西部高校基础能力建设工程、“新工科…

【计算机网络篇】数据链路层(11)在数据链路层扩展以太网

文章目录 &#x1f354;使用网桥在数据链路层扩展以太网&#x1f95a;网桥的主要结构和基本工作原理&#x1f388;网桥的主要结构&#x1f50e;网桥转发帧的例子&#x1f50e;网桥丢弃帧的例子&#x1f50e;网桥转发广播帧的例子 &#x1f95a;透明网桥&#x1f50e;透明网桥的…

深圳学区房断崖式跌价,3年跌去10万元,更可怕的还在后面

就在房市回暖之际&#xff0c;深圳的学区房却传来让人震惊的消息&#xff0c;深圳八卦岭有小区的房价三年时间从14万元每平方跌至4万元每平方&#xff0c;这对于当下的楼市无疑是重磅炸弹&#xff0c;对人们的购房行为将产生重要影响。 深圳这个受到关注的小区为一个宿舍小区&a…

【鸿蒙】HUAWEI DevEco Studio安装

HUAWEI DevEco Studio介绍 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE)&#xff0c; 助力高效开发。 DevEco Studio当前最新版本是&#xff1a; 3.1。 DevEco Studio计划里程碑 版本类型说明 下载 下载网址&#xff1a;DevEco Studio安装包官⽅下载 双击运行…

数据结构—排序、查找、图论和字符串算法之Java实例

一&#xff1a;引言 在编程的海洋中&#xff0c;算法是程序员的灵魂之光。它们不仅指引着代码的前进方向&#xff0c;更能解决难题&#xff0c;提升效率。虽然各式各样的算法琳琅满目&#xff0c;但其中有一些却是每位程序员必定会遇到且应当深刻掌握的。本文将带您走进这些至…

信息打点-协议应用_内网资产_CDN_WAF_负载均衡_防火墙

服务信息获取-协议应用&内网资产 常见端口默认对应的服务&#xff1a; 特殊服务端口&#xff1a; 端口扫描工具&#xff1a; 旁注查询 旁注查询&#xff0c;又称为旁站查询或同服务器网站查询&#xff0c;是一种信息安全和网络侦查技术&#xff0c;主要用于发现与目标网站…

java实现一个LRU缓存算法。

//LRU&#xff08;Least Recently Used&#xff09;缓存算法是一种常见的缓存淘汰策略&#xff0c; // 它的基本思想是保留最近被访问过的数据&#xff0c;淘汰最久未被访问的数据。下面是一个使用Java实现的简单LRU缓存算法&#xff1a; import java.util.LinkedHashMap; impo…

电脑上使用备忘录怎么查看编辑时间?能显示时间的备忘录

在快节奏的生活中&#xff0c;很多人喜欢使用备忘录来记录日常事项和重要信息。备忘录不仅能帮助我们捕捉灵感&#xff0c;还能确保重要任务不被遗漏。然而&#xff0c;有时候我们需要知道某条记录的编辑时间&#xff0c;以便于回溯和整理信息。如果备忘录不能显示编辑时间&…

SpringBoot复习

第一章 SpringBoot开发入门 1.Springboot的优点。 ① 可快速构建独立的Spring应用。 ② 直接嵌入Tomcat、Jetty和Undertow服务器&#xff08;无须部署WAR文件&#xff09; ③ 通过依赖启动器简化构建配置 ④ 自动化配置Spring和第三方库 ⑤ 提供生产就绪功能 ⑥ 极少的代码生成…

【Mybatis-plus】查询及更新为null或空字符串

前言 查询为 null 或者 空字符串时&#xff0c;可以使用 or() 关键字。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 查询 使用 LambdaQueryWrapper 查询 parentCode 为 null 或者 空字符串 的数据。 LambdaQueryWrapper<CompanyEntity> qu…

视频集市新增支持多格式流媒体拉流预览

流媒体除了常用实时流外还有大部分是以文件的形式存在&#xff0c;做融合预览必须要考虑多种兼容性能力&#xff0c;借用现有的ffmpeg生态可以迅速实现多种格式的支持&#xff0c;现在我们将按需拉流预览功能进行了拓展&#xff0c;正式支持了ffmpeg的功能&#xff0c;可快捷方…

探索FlowUs息流:个人和团队知识管理解决方案|FlowUs稳定保障你的笔记安全无忧

FlowUs息流&#xff1a;稳定运营保障你的笔记安全无忧 在知识管理工具的选择上&#xff0c;稳定性是用户最关心的问题之一。FlowUs息流以其稳定的运营记录&#xff0c;为用户提供了一个可靠的工作环境。我们深知&#xff0c;一个知识管理平台的稳定性直接影响到团队的生产力和…

后端不提供文件流接口,前台js使用a标签实现当前表格数据(数组非blob数据)下载成Excel

前言&#xff1a;开发过程中遇到的一些业务场景&#xff0c;如果第三方不让使用&#xff0c;后端不提供接口&#xff0c;就只能拿到table数据(Array)&#xff0c;实现excel文件下载。 废话不多说&#xff0c;直接上代码&#xff0c;方法后续自行封装即可&#xff1a; functio…

Retrofit类型安全的HTTP客户端库

简介 Retrofit是Square公司开发的一个类型安全的HTTP客户端库&#xff0c;用于Android和Java平台&#xff0c;它使得与Web服务的交互变得更加简单快捷。Retrofit将HTTP API转换成Java接口&#xff0c;让你可以用更简洁的代码形式调用RESTful API&#xff0c;Android网络编程重点…

物联网设备安装相关知识整理

拓扑图 对于ADAM-4150先接设备的整体的供电。 ADAM-4150就涉及到几个电子元器件的连接&#xff0c;一个是485-232的转换器&#xff0c;一个是将RS-232转换为USB的转接口&#xff0c;因为现在的计算机很多都去掉了RS-232接口而使用USB接口。 4150右侧有个拨码&#xff0c;分别两…

无需科学上网:轻松实现国内使用Coze.com平台自己创建的Bot(如何实现国内免费使用GPT-4o/Gemini等最新大模型)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 如何在国内使用 Coze.com 创建的 Bot 📒📝 创建Bot📝 实现国内使用📝 测试⚓️ 相关链接 ⚓️📖 介绍 📖 Coze.com 是一个强大的平台,允许用户创建各种类型的 Bot。然而,许多国内用户可能会遇到访问问题,导致无法…

100多个ChatGPT指令提示词分享

当前&#xff0c;ChatGPT几乎已经占领了整个互联网。全球范围内成千上万的用户正使用这款人工智能驱动的聊天机器人来满足各种需求。然而&#xff0c;并不是每个人都知道如何充分有效地利用ChatGPT的潜力。其实有许多令人惊叹的ChatGPT指令提示词&#xff0c;可以提升您与ChatG…

健康与生活助手:Kompas AI的高效应用

一、引言 在现代社会&#xff0c;随着生活节奏的加快和工作压力的增加&#xff0c;人们的健康问题日益凸显。健康管理已经成为每个人关注的重点。Kompas AI作为一款智能助手&#xff0c;通过其先进的人工智能技术&#xff0c;为用户提供全面的健康管理服务&#xff0c;帮助用户…

解锁5G新营销:视频短信的优势与全方位推广策略

随着5G时代的全面来临&#xff0c;企业的数字化转型步伐日益加快&#xff0c;视频短信作为新兴的数字营销工具&#xff0c;正逐步展现出其巨大的潜力。视频短信群发以其独特的形式和内容&#xff0c;将图片、文字、视频、声音融为一体&#xff0c;为用户带来全新的直观感受&…