知识图谱(使用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

数据导入:

导入成功:

创建标签:

标签创建完成

开始打标签:

结果导出:

结果分析:

相关推荐
万象新讯11 分钟前
申请 AWS Activate 的初创企业要满足什么条件,需准备哪些资料?
大数据·人工智能·aws
SelectDB技术团队11 分钟前
从 ClickHouse 迁移到 Doris:SQL 兼容、同步与验证清单
数据库·人工智能·sql·clickhouse·apache doris·selectdb·湖仓架构升级
ECT-OS-JiuHuaShan14 分钟前
哲学是迭代学,数学是拓扑学
开发语言·人工智能·学习·算法·机器学习·php·拓扑学
安吉升科技15 分钟前
文博场馆双目视觉客流智能感知系统:技术原理与功能架构
人工智能
欧特克_Glodon18 分钟前
OpenCV计算机视觉开发入门与实践<四十二>:手势识别
c++·人工智能·opencv·计算机视觉·手势识别
Chengbei1119 分钟前
红队新工具 ToShell 解析:自带 Web 控制台,AES+SM4 国密加密,载荷随机免杀,自主 Agent 自动完成渗透任务
人工智能·tcp/ip·安全·web安全·http·网络安全·系统安全
霸道流氓气质19 分钟前
Spring AI Alibaba vs LangChain4j:Java AI 框架选型深度指南
java·人工智能·spring
AI分享猿26 分钟前
百智云智能PPT 实测:一句话生成整套材料,还能上传自己的模板
人工智能·powerpoint
TT哇26 分钟前
我把两个 Java 项目和一个 Python AI 服务部署到 2C2G:一次低成本 Docker 容器化实践
java·人工智能·python
知几蜗牛28 分钟前
同一套GPU多服务2.5倍用户,关键不是换模型
人工智能