知识图谱(使用doccano完成关系抽取)【第九章】

一、 关系抽取概念

关系抽取就是从一段文本中抽取出 (主体,关系,客体) 这样的三元组,用英文表示就是(subject , relation,object)这样的三元组。

具体定义: 给定一个句子 S,其中包含实体 A 和实体 B,预测两个实体间的关系r ∈ R (R代表数据集中所有关系的集合) . 或者说,抽取实体之间的关系是将非结构化的文本信息转化为结构化的信息,最终以关系三元组〈S,P,O〉的形式来描述. 其中,S 和O为主、客实体,P为预测出的两个实体之间的关系。

  • 关系抽取两大任务:
    • 识别文本中的subject和object (实体识别任务)
    • 判断这两个实体属于哪种关系 (关系分类)
  • 关系抽取是一个文本分类问题(而之前学习的NER是序列标注问题 ) ,相比于情感分析、新闻分类等其他任务,关系抽取主要有3个特点:
    • 领域众多,关系模型构建复杂. 针对一个或者多个限定领域的关系抽取的研究时间较长,研究者投入的精力相对开发领域多,因此方法众多,技术成熟.
    • 数据来源广,主要有结构化、半结构化、无结构3类. 结构化数据针对表格文档、数据库等;半结构化数据针对如维基百科、百度百科等;无结构属于纯文本数据.
    • 关系种类繁多且复杂,噪音数据无法避免,实体间的关系多样,有一种或者多种关系.

二、关系抽取的常用方法

2.1基于规则方式实现关系抽取

  • 基于规则的知识抽取主要还是通过人工定义一些抽取规则,从文本中抽取出三元组信息 (实体-关系-实体) . 重点即是定义规则. 虽然定义规则这种抽取方式看起来有点 low,但却简单实用,很多时候,效果比很多高深的算法还要好一些 (非绝对,具体领域具体分析) .
  • 基于规则方法的实现在后续章节介绍

2.2 基于Pipeline流水线方法实现关系抽取(先做NER再做关系抽取)

  • Pipeline方法是指在实体识别已经完成的基础上再进行实体之间关系的抽取.
  • 基于Pipline流水线方法的实现在后续章节介绍

2.3 基于Joint联合抽取方法实现关系抽取

  • Joint联合抽取方法通过修改标注方法和模型结构直接输出文本中包含的(ei ,rk, ej)三元组. Joint联合抽取方法又分为: "参数共享的联合模型" 和 "联合解码的联合模型":
  • 基于joint联合抽取方法的实现在后续章节介绍.

2.2和2.3都是使用深度学习的方式

三、 关系抽取任务常见问题

3.1正常关系抽取

  • 正常关系 (Normal) 问题:
    • 即三元组之间没有重叠, 数据中只有一个实体对及关系
    • 如: "《人间》是王菲演唱歌曲"中存在1种关系: (王菲-歌手-人间)

3.2单一实体关系重叠(SEO)

  • 单一实体关系重叠问题 (Single Entity Overlap (SEO) )
    • 数据中一个实体参与到了多个关系中
    • 如: "叶春叙出生于浙江,毕业于黄埔军校"中存在两种关系: (叶春叙-毕业院校-黄埔军校) 、 (叶春叙-出生地-浙江)

3.3实体对重叠(EPO)

  • 实体对重叠(Entity Pair Overlap (EPO)):

    • 数据中一个实体对有两种不同的关系类型
    • 如: "周星驰导演了《功夫》,并担任男主角"中存在2种关系: (周星驰-演员-《功夫》) 、 (周星驰-导演-《功夫》)

3.4小结

  • 正常关系 (Normal) 问题:数据中只有一个实体对及关系

  • 单一实体关系重叠问题 (Single Entity Overlap (SEO) ):数据中一个实体参与到了多个关系中

  • 实体对重叠(Entity Pair Overlap (EPO)):数据中一个实体对有两种不同的关系类型

四、doccano关系标注

(1)启动doccano

首先,在终端中运行下面的代码来启动WebServer

复制代码
conda activate docc
# 启动webserver(端口号可以随意设置)
doccano webserver --port 8888

然后,打开另一个终端,运行下面的代码启动---任务队列:

复制代码
conda activate docc
# 启动任务队列
doccano task

(2)创建任务

选择Sequence Labeling

数据导入:

导入成功:

创建标签:

标签创建完成

开始打标签:

结果导出:

结果分析:

相关推荐
阿杰学AI2 小时前
AI核心知识132—大语言模型之 AI for Science(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·ai for science·ai4s
Yuanxl9032 小时前
Torchvision 0.26:深度学习视觉库全面解析
网络·人工智能·pytorch·深度学习
Narrastory2 小时前
Note:强化学习(三)
人工智能·深度学习·强化学习
做个文艺程序员2 小时前
Spring Boot 封装 OpenClAW 服务层最佳实践【OpenClAW + Spring Boot 系列 第2篇】
java·人工智能·spring boot·开源
qyr67892 小时前
全球多旋翼无人机动力系统市场分析报告
大数据·人工智能·数据分析·市场报告·多旋翼无人机动力系统
Techblog of HaoWANG2 小时前
目标检测与跟踪(15)-- conda 环境与 roslaunch 节点解释器不一致问题的排查与工程化修复
人工智能·目标检测·计算机视觉·机器人·conda
2501_947908202 小时前
2026钢铁冶金重载机器人怎么选?五大品牌深度对比与焊接应用方案
人工智能·机器人
爱编程的小吴2 小时前
PyTorch+Transformer大模型入门到精通:LLM训练、推理、量化、部署全攻略
人工智能·pytorch·transformer
Yuanxl9032 小时前
pytorch-优化器
人工智能·pytorch·python