当前位置: 首页 > news >正文

大型语言模型在实体关系提取中的应用探索(二)

上一篇文章我们探讨了如何使用大语言模型进行实体关系的抽取。本篇文章我们将进一步探索这个话题。比较一下国内外几款知名大模型在相同的实体关系提取任务下的表现。由于精力有限,我们无法全面测试各模型的实体关系抽取能力,因此,看到的效果以及分析的结论,也仅限于在该任务下的探讨,不能作为各大模型在该方面能力的结论。这次我们选中用于实验的大模型如下:

国外:ChatGPT3.5(OpenAI)、Bard(Google)、Llama2-13B(Facebook)

国内:文心一言(百度)、通义千问(阿里)、混元(腾讯)

    为了避免出现在第一篇文章中的现象,即GPT 3.5(Old)模型在回答问题时,超过了我的提示预期,给我带来了巨大的惊喜,所以这次我调整了大语言模型的“提示”信息,在信息中明确加入了对“账号平台”的抽取,如下:

请帮我抽取“####”后内容中的黑客组织及其账号与账号平台,并输出为json格式

####

ATW 组织发布的“ATW-对华战争”帖

2021 年 10 月,ATW 组织开始频繁活动,不断在电报群组(https://t.me/s/ATW2022,Email:AgainstTheWest@riseup.net,备份 Email:apt49@riseup.net)、推特(@_AgainstTheWest,https://mobile.twitter.com/_AgainstTheWest)、Breadched(账号:AgainstTheWest)等境外社交平台开设新账号,扩大宣传途径,并表现出较明显的亲美西方政治倾向,多次声明“攻击目标是俄罗斯、白俄罗斯和中国、伊朗、朝鲜”、“愿意与美国、欧盟政府共享所有文件”、“愿受雇于相关机构”。

 

    后续实验中,输入给所有大语言模型的“提示”全部一致,即都是上面的这段信息内容。

ChatGPT3.5

{

  "黑客组织": "ATW 组织",

  "账号信息": [{

      "平台": "电报群组",

      "链接": "https://t.me/s/ATW2022"

    },{

      "平台": "电子邮件",

      "地址": "AgainstTheWest@riseup.net"

    },{

      "平台": "备份电子邮件",

      "地址": "apt49@riseup.net"

    },{

      "平台": "推特",

      "账号": "@_AgainstTheWest",

      "链接": "https://mobile.twitter.com/_AgainstTheWest"

    },{

      "平台": "Breadched",

      "账号": "AgainstTheWest"

    }]

}

 

    从上面的输出可以看到,与本系列前一篇文章中GPT3.5的输出内容一致。完整的按照我们的提示抽取出了黑客组织、账号平台以及账号信息。并且为抽取出的账号信息,做了更明确的定义。如:“apt49@riseup.net”被理解为“地址”;“ https://t.me/s/ATW2022”被理解为链接。笔者在设定黑客组织的账号模型时,认为域名、电话、邮箱、应用账号等都可被视为账号。因为这些信息在不同的应用场景下,都的确代表了一种身份。所以ChatGPT给出的答案笔者是很认同的。

我们进一步分析其识别能力,有两个细节需要注意。一个是其将“电报群组(Telegram)”的相关账号信息拆解成了三个平台;另一个是其为“推特”平台识别出了两个账号。在仔细体会了ChatGPT的输出后,笔者觉得在初次处理这组数据时,笔者可能更倾向于将电报群组账号,邮件账号以及备份邮件账号写成类似“推特”的样子,就是一个账号平台下有三个账号。估计这样的数据组织方式也会是相当一部分工程师的选择。但是认真考虑ChatGPT的答案,你会发现它的分法非常合理。因为邮件地址一定是一类特殊账号,其本质是有别于“电报群组”账号的,所以为邮件地址单独定义账号平台是更合理的选择。至于文本中邮件地址出现在“电报群组”相关上下文的位置,笔者则认为更多是为了表达这些邮箱地址是通过“电报群组”的账号关联获得的。另外,ChatGPT抽取了“推特”中的url信息,相信有相当一部分工程师,在接受到我们输入给ChatGPT同样的需求时,是不会将url提取出来作为账号信息的。但是仔细分析输入文本,我们认为ChatGPT将url识别为一种账号是合理的。

ChatGPT的答案也并非无懈可击。由于其对账号做了更精准的描述,其Json格式以账号分类作为字段名,在我们没有掌握ChatGPT的全账号分类前,我们无法使用通过固定字段名获取账号的方式,只能通过遍历Json对象的方式来解析获取各类账号。数据解析的复杂度比通过固定字段名称访问要大一些。但整体而言,ChatGPT提供的识别能力相较与其带来的处理复杂度,是可完全被接受的。

鉴于ChatGPT给出的出色回答。我们将在后续大模型的答案分析中,以此的作为比较的基础。

Bard

{

  "组织": "ATW",

  "账号": [{

      "平台": "电报",

      "账号": "https://t.me/s/ATW2022"

    },{

      "平台": "电子邮件",

      "账号": "AgainstTheWest@riseup.net"

    },{

      "平台": "电子邮件",

      "账号": "apt49@riseup.net"

    },{

      "平台": "推特",

      "账号": "@_AgainstTheWest"

    },{

      "平台": "Breadched",

      "账号": "AgainstTheWest"

    }]

}

    从Bard的结果看,其与ChatGPT的输出非常接近。更好的一处结果是,其将两个邮件地址的账号平台统一成了“电子邮件”。一处明显的不足是,其没有抽取出推特的url。一处中性的变化是,其所有的账号类信息的字段名,都是“账号”,这更有利于后续的解析处理,但账号的类型识别又需要处理时采用类似模式识别来解决了。

Llama2-13B

{

  "organization": "ATW",

  "accounts": [{

      "name": "AgainstTheWest",

      "platform": "Telegram",

      "url": "https://t.me/s/ATW2022",

      "email": "AgainstTheWest@riseup.net",

      "backup_email": "apt49@riseup.net"

    },{

      "name": "@_AgainstTheWest",

      "platform": "Twitter",

      "url": "https://mobile.twitter.com/_AgainstTheWest"

    }],

  "platforms": [

    "Telegram",

    "Twitter"

  ]

}

    如果我们没有看到过上面两个例子。第一次看到Llama2的结果,还是会认为数据组织的结构是不错的。除了少识别了一个账号平台外,其它信息基本都按要求识别出来了。但有了上面两个先入为主的例子,我们会认为其答案的条例性相对弱一些,没有帮助我们提升数据组织的认知。再有,其输出全部为英文,没有中文。正确的将“电报群组”翻译为了“Telegram”。

文心一言

  "黑客组织": "ATW", 

  "账号平台": [{ 

      "平台名称": "电报群组", 

      "账号信息": [{ 

          "账号": "ATW2022", 

          "链接": "https://t.me/s/ATW2022" 

        },{ 

          "账号": "AgainstTheWest@riseup.net", 

          "链接": "Email:AgainstTheWest@riseup.net" 

        },{ 

          "账号": "apt49@riseup.net", 

          "链接": "备份 Email:apt49@riseup.net" 

        }] 

    },{ 

      "平台名称": "推特", 

      "账号信息": [{ 

          "账号": "@_AgainstTheWest", 

          "链接": "https://mobile.twitter.com/_AgainstTheWest" 

        }] 

    },{ 

      "平台名称": "Breadched", 

      "账号信息": { 

        "账号": "AgainstTheWest", 

        "链接": "账号:AgainstTheWest" 

      }}] 

}

    文心一言的回答整体结构与Llama2相似,但是它没有漏掉任何信息,所有信息都识别到了。甚至感觉其对自己的输出做了强制对齐,它为每一个账号信息数据都加入了一个以“链接”命名的字段,用于存放链接账号。只是这个信息对齐略显生硬。

通义千问

{

  "黑客组织": {

    "名称": "ATW 组织",

    "政治倾向": "亲美西方"

  },

  "电报群组": [

    "https://t.me/s/ATW2022"

  ],

  "电子邮件": [

    "AgainstTheWest@riseup.net",

    "apt49@riseup.net"

  ],

  "推特": [

    "@_AgainstTheWest",

    "https://mobile.twitter.com/_AgainstTheWest"

  ],

  "Breadched": [

    "AgainstTheWest"

  ]

}

    通义千问的回答中多了一个“政治倾向”的信息输出,这个信息是我们在提问时没有要求的。从答案看,通义千问各要素的提取以及账号平台的划分与ChatGPT、Bard一致。但是与ChatGPT相比,其账号没有进一步的分类,这使得如果需要更细致的处理账号,需要后续通过处理程序进行模式识别来解决。需要额外提到的是,通义千问的Json结构是最简练的。

混元

{

  "黑客组织": "ATW",

  "账号平台": [

    "电报群组",

    "推特",

    "Breadched"

  ],

  "账号": [

    "ATW2022@riseup.net",

    "AgainstTheWest@riseup.net",

    "apt49@riseup.net",

    "_AgainstTheWest@mobile.twitter.com",

    "AgainstTheWest@Breadched"

  ],

  "宣传倾向": "亲美西方政治"

}

    以上答案不是通过混元模型的试用界面获得的,当输入测试的提示时,混元会直接告诉你它不支持这种任务。最后,笔者是通过调用混元模型的API接口获得的实验结果。从输出结果上看,其采用了一种更笼统的数据组织方式。最大的问题是ATW2022@riseup.net这个账号信息并不存在,是它的一种幻觉。

一个花絮是,腾讯的售后在笔者申请试用混元后,回访笔者希望用混元的什么能力。笔者回答希望试用它的实体关系识别能力。对方明确对笔者说到,目前混元在这部分能力比较弱。这次强拉“混元”上台,主要还是因为在国内进行比较,“BAT”少了谁家都不太合适。目前的测试情况的确如售后所言,“混元”目前不太支持这个类型的任务,期待“混元”后续的版本迎头赶上吧。

结语

    从我们实验的效果看,除混元、Llama2外,其它四个大语言模型基本都能够识别出我们所要求的信息。输出格式的差异可以通过后续的处理程序对齐。信息抽取的有效性让我们充分看到了大语言模型在实体关系抽取这类作业上能力。它将为我们打通一些我们之前无法企及的应用效果的道路。

相关文章:

大型语言模型在实体关系提取中的应用探索(二)

上一篇文章我们探讨了如何使用大语言模型进行实体关系的抽取。本篇文章我们将进一步探索这个话题。比较一下国内外几款知名大模型在相同的实体关系提取任务下的表现。由于精力有限,我们无法全面测试各模型的实体关系抽取能力,因此,看到的效果…...

Easy Excel设置表格样式

1. 设置通用样式 import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.xxx.npi.config.easypoi.EasyExcelDateConverter; import lombok.Data; import …...

HarmonyOS/OpenHarmony应用开发

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目, 目标是面向全场景、全连接、全智能时代, 搭建一个智能终端设备操作系统的框架和平台, 促进万物互联产业的繁荣发展。 了解OpenHarmony HarmonyOS是华为通过OpenHarmony项目,结合商业…...

孩子都能学会的FPGA:第二十一课——用线性反馈移位寄存器实现伪随机序列

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…...

国内 AI 成图第一案!你来你会怎么判?

我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用…...

快速登录界面关于如何登录以及多账号列表解析以及config配置文件是如何读取(1)

快速登录界面关于如何登录以及多账号列表解析以及config配置文件是如何读取 1、快速登录界面关于如何登录以及快速登录界面账号如何显示 如图所示:根据按下按钮一键登录中途会发生什么。 关于一键登录按钮皮肤skin的设置: <Button name"QuickLoginOkBtn" text&q…...

finebi 新手入门案例

finebi 新手入门案例 连锁超市销售数据分析 步骤&#xff1a; 准备公共数据新建分析主题处理数据在数据中分析在图形中分析数据大屏 准备公共数据 点击公共数据 点击新建文件夹 修改文件夹名称 上传数据 鼠标悬停在文件夹上&#xff0c;右侧出现 鼠标悬停在文件夹上&#x…...

1. 小游戏(贪心)

题干&#xff1a; 谷同学很喜欢玩计算机游戏&#xff0c;特别是战略游戏&#xff0c;但是有时他不能尽快找到解所以常常感到很沮丧。现在面临如下问题&#xff1a;他必须在一个中世纪的城堡里设防&#xff0c;城堡里的道路形成一棵无向树。要在结点上安排最少的士兵使得他们可以…...

记录 | c++打印变量类型

c打印变量类型: 使用 typeid(变量名).name() int main(){std::cout << "type of ss : " << typeid(ss).name() << std::endl; }...

nodejs_vue+vscode美容理发店会员管理系统un1dm

按照设计开发一个系统的常用流程来描述系统&#xff0c;可以把系统分成分析阶段&#xff0c;设计阶段&#xff0c;实现阶段&#xff0c;测试阶段。所以在编写系统的说明文档时&#xff0c;根据系统所处的阶段来描述系统的内容。 绪论&#xff1a;这是对选题的背景&#xff0c;意…...

C语言 操作符详解

C语言学习 目录 文章目录 前言 一、算术操作符 二、移位操作符 2.1 左移操作符 2.2 右移操作符 三、位操作符 3.1 按位与操作符 & 3.2 按位或操作符 | 3.3 按位异或操作符 ^ 四、赋值操作符 五、单目操作符 5.1 逻辑反操作符&#xff01; 5.2 正值、负值-操作符 5.3 取地址…...

成为AI产品经理——回归模型评估(MSE、RMSE、MAE、R方)

分类问题的评估是看实际类别和预测类别是否一致&#xff0c;它的评估指标主要有混淆矩阵、AUC、KS。回归问题的评估是看实际值和预测值是否一致&#xff0c;它的评估指标包括MAE、MSE、RMSE、R方。 如果我们预测第二天某支股票的价格&#xff0c;给一个模型 y1.5x&#xff0c;…...

【C++11(一)】右值引用以及列表初始化

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; C11 1. 前言2. 统一的列表初始化3. initializer…...

通俗理解Jenkins是什么?

目录 通俗理解 Jenkins是什么&#xff1f; 通俗理解 假设你有一个软件项目&#xff0c;多个开发者在一起写代码。每当有人提交新的代码时&#xff0c;你想要自动地构建、测试这些代码&#xff0c;确保它们没有引入问题。 Jenkins就像一个聪明的助手&#xff0c;会在有人提交…...

格雷希尔帮助仪器仪表测试时快速密封的G60C系列接头其优势有哪些

仪器仪表在工业领域中扮演着重要的角色&#xff0c;如&#xff1a;压力表&#xff0c;压力传感器、压力变送器、压力开关、压力歧管等这些&#xff0c;在工业领域中都是随处可见的&#xff0c;其数据的精度直接影响着产品在生产过程中的质量和安全性&#xff1b;因此&#xff0…...

系统运维工具KSysAK——让运维回归简单

系统运维工具KSysAK——让运维回归简单 1.基本信息 1.1概述 系统异常定位分析工具KSysAK是云峦操作系统研发及运维人员总结开发及运维经验&#xff0c;设计和研发的多个运维工具的集合&#xff0c;可以覆盖系统的日常监控、线上问题诊断和系统故障修复等常见运维场景。 工具…...

NowCoder | KY11 二叉树遍历

NowCoder | KY11 二叉树遍历 OJ链接 简单来说就是构建这个二叉树定义结构体通过递归方式根据输入的字符串构建二叉树。对于输入字符串中的每个字符&#xff0c;如果是 ‘#’ 表示空节点&#xff0c;否则创建一个新节点&#xff0c;并递归地构建左右子树。 #include <limit…...

android.view.WindowLeaked解决方法

问题 我在使用WindowManager添加一个button&#xff0c; windowManager.addView(button,layoutParams);然后关闭当前的这个Activity的时候遇到了WindowLeak这个问题&#xff0c;也就是所谓的窗体泄露。 原因 主要原因是因为android只允许在UI主线程操作&#xff0c;我在使用W…...

浪潮信息KeyarchOS的飞跃之路

1.背景 在正式向大家介绍KOS之前&#xff0c;我们先关注这样一些问题。 传统操作系统在大规模数据处理、高性能计算和人工智能应用方面面临着一些瓶颈问题&#xff0c;包括存储和访问效率、数据传输和通信效率、并行计算性能等等问题。为了能够更好的改进这些问题&#xff0c…...

C++基础 -41- 迭代器

每个stl 模板接口都有一个专用的迭代器 迭代器就是 stl 库中的 一个特殊指针&#xff0c;功能与指针类似(类似但不是) 迭代器定义格式 迭代器的使用,使用迭代器遍历向量容器的参数 代码运行结果 无论使用普通方式还是迭代器方式去都可以遍历vector容器...

zookeeper心跳检测 (实操课程)

本系列是zookeeper相关的实操课程&#xff0c;课程测试环环相扣&#xff0c;请按照顺序阅读来学习和测试zookeeper。 阅读本文之前&#xff0c;请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录&#xff08;实操课程系列&#xff09;zookeeper 客户端常用命令简单记录…...

社区新零售:重塑零售业的全新模式

社区新零售&#xff1a;重塑零售业的全新模式 近年来&#xff0c;新零售业成为了研究的焦点&#xff0c;它是一种以互联网为基础的零售形式。新零售通过运用先进技术手段&#xff0c;如大数据和人工智能&#xff0c;对商品的生产、流通和销售过程进行升级改造&#xff0c;重新构…...

北京华联BHGMall“宠粉模式”不断迭代,强体验注互动成行业UP主

在今年双11热度遇冷后&#xff0c;双十二被官宣取消&#xff0c;而这背后本质已经间接印证&#xff1a;传统“电商大促”的模式&#xff0c;已经难以为继。反观线下消费市场&#xff0c;则是以持续恢复和增长成为经济恢复的亮点&#xff0c;从线下客流量的快速回升&#xff0c;…...

前端时间的失败总结复盘

分享失败经验&#xff0c;前段时间的总结复盘&#xff1a; 与伙伴合作面对异常决策要及时提出质疑&#xff0c;怼&#xff0c;别太客气&#xff0c;客气起来&#xff0c;小心翼翼在意他人情绪那么这个项目就会让人难受&#xff0c;不要因为因为伙伴身上有标签/光环/权威就觉得…...

Ribbon 负载均衡

1、负载均衡整体流程 2、负载均衡流程逐级跟踪运行 (1) LoadBlanced 注解可以使LoadBalancerInterceptor拦截到&#xff1b; (2)LoadBalancerInterceptor 实现了ClientHttpRequestInterceptor接口&#xff1b; (3)ClientHttpRequestInterceptor接口释义如下&#xff1b; (4)int…...

微服务实战系列之Cache(技巧篇)

前言 凡工具必带使用说明书&#xff0c;如不合理的使用&#xff0c;可能得到“意外收获”。这就好比每个人擅长的领域有所差异&#xff0c;如果放错了位置或用错了人&#xff0c;也一定会让 Leader 们陷入两难之地&#xff1a;“上无法肩负领导之重托&#xff0c;下难免失去伙伴…...

6.17验证二叉树(LC98-M)

算法&#xff1a; 中序遍历下&#xff0c;输出的二叉搜索树节点的数值是有序序列。 有了这个特性&#xff0c;验证二叉搜索树&#xff0c;就相当于变成了判断一个序列是不是递增的了。 具体地&#xff1a;中序遍历时&#xff0c;判断当前节点是否大于中序遍历的前一个节点&a…...

【Linux】编译器-gcc/g++与调试器-gdb的使用

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.gcc/g语法 2.gcc的使用及…...

Google Guava 散列工具使用详解

文章目录 散列哈希函数哈希码布隆过滤器 散列 Guava 提供了一组散列&#xff08;哈希&#xff09;相关的工具类和方法&#xff0c;包括哈希函数接口、哈希算法实现、哈希码&#xff08;HashCode&#xff09;类、布隆过滤器&#xff08;BloomFilter&#xff09;等等。 Guava 提…...

AIGC-文生视频

stable diffusion的前传&#xff1a; 轻松理解 VQ-VAE&#xff1a;首个提出 codebook 机制的生成模型 - 知乎近两年&#xff0c;有许多图像生成类任务的前沿工作都使用了一种叫做"codebook"的机制。追溯起来&#xff0c;codebook机制最早是在VQ-VAE论文中提出的。相比…...

软件上传网站/东莞seo代理

最近数码圈新机发布的少&#xff0c;但操作系统却打的火热。这边鸿蒙OS2.0刚刚公测&#xff0c;那边Android 12系统就正式登场了。谷歌正式发布Android 12(1)开放的系统风格与操作界面这么多年以来&#xff0c;国产手机用的基本上都是安卓系统&#xff0c;虽然它们在此基础上设…...

郑州市政府网站的建设与发展/网络事件营销

1. 在 app 目录下新建一个文件 helpers.php 2. 在 composer.json 文件的 autoload 字典中添加 "files":["app/helpers.php"] 3. 执行命令&#xff1a;composer dumpautoload OK搞定 4. 这其实是与composer中的自动加载有关 -> 链接 转自&#xff1a;htt…...

手机微信可以做网站吗/网络营销策划方案ppt模板

django-check-seo为 Django CMS 用户替换 Yoast 或 SEMrush 的部分功能。换句话说&#xff0c;django-check-seo 会告诉你你的网站 SEO 是否存在问题。同时&#xff0c;这些建议对很多搜索引擎都有效。安装如果你的网站是基于 django-cms 的&#xff0c;并且 Python 和 Django …...

做受视频播放网站/seo怎么学

2019独角兽企业重金招聘Python工程师标准>>> 商业总是在无穷变化之中 而坚持仍然是必要的 长期坚持固有价值&#xff0c; 就构筑了竞争门槛&#xff0c; 这就是利润的源泉。 转载于:https://my.oschina.net/anthonychen/blog/127098...

网站建设 案例展示/关键词优化技巧

果粉之家&#xff0c;专业苹果手机技术研究十年&#xff01;您身边的苹果专家~在今年WWDC21开发者大会上&#xff0c;苹果在介绍iOS 15系统重大变化时&#xff0c;还曾提到一个不太引人注目的小变化。那就是在iOS 15上&#xff0c;用户可以直接在App内申请内购退款&#xff0c;…...

17zwd一起做网站/百度seo关键词怎么做

如果你经常阅读Python的官方文档&#xff0c;可以看到很多文档都有示例代码。比如re模块就带了很多示例代码&#xff1a; >>> import re >>> m re.search((?<abc)def, abcdef) >>> m.group(0) def 可以把这些示例代码在Python的交互式环境下输…...