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

规则方法关系抽取-笔记总结

关系抽取笔记总结

一、课程目标

实现关系抽取任务

二、关系抽取应用的场景

知识图谱构建:必备环节--》关系抽取
信息检索和推荐
信息提取

三、关系抽取课程大纲内容

1.基于规则实现关系抽取任务
2.基于BiLSTM+Attention实现了关系任务分类
3.基于CasRel模型实现多元嵌套关系的抽取

四、关系抽取任务介绍

4.1 概念

定义:对于一段文本,抽取出其中的SPO三元组,
S:subject;主实体
P:predicate; 关系(预测)
O:object; 客实体

4.2 两大任务:

1.实现实体的抽取任务(NER)
2.基于实体实现关系的分类(RE)

4.3 主要实现方法

1.基于规则方式: 人为设定规则,抽取spo三元组
2.基于pipeline方式: 先完成实体抽取任务,然后在实体基础上完成关系分类
3.基于joint方式: 联合抽取任务,经过一个复杂的模型网络一次性抽取spo三元组

4.4 主要评价指标

precision: 预测为正类的样本中实际为正类的比例
recall: 实际为正类的样本中预测为正类的比例
F1-score: 2*p*r / (p+r)

4.5 主要问题

  • 正常(normal)
一对实体只有一种关系
eg: “《人间》是王菲演唱歌曲“中存在1种关系:  (王菲-歌手-人间)

在这里插入图片描述

  • 单一实体关系重叠问题(seo)
一个实体存在多种关系
eg:“叶春叙出生于浙江,毕业于黄埔军校”中存在两种关系:  (叶春叙-毕业院校-黄埔军校) 、 (叶春叙-出生地-浙江)

在这里插入图片描述

  • 实体对重叠问题(epo)
一对实体存在多种关系
eg: “周星驰导演了《功夫》,并担任男主角”中存在2种关系:  (周星驰-演员-《功夫》) 、 (周星驰-导演-《功夫》) 

在这里插入图片描述

五、基于规则实现关系抽取

5.1 实现原理

1. 定义关系集合类型:【夫妻关系、合作关系。。。】
2. 去除非实体和关系的文本
3. 基于实体列表和关系列表遵循就近原则匹配,实现spo三元组的组合(抽取)

5.2 代码实现

# 导入需要的工具包
import jieba
import jieba.posseg as pseg# 需要进行关系抽取的样本数据
samples = ["2014年1月8日,杨幂与刘恺威的婚礼在印度尼西亚巴厘岛举行","周星驰和吴孟达在《逃学威龙》中合作出演",'成龙出演了《警察故事》等多部经典电影']# 1。定义需要抽取的关系集合
relations2dict = {'夫妻关系':['结婚', '领证', '婚礼'],'合作关系': ['搭档', '合作', '签约'],'演员关系': ['出演', '角色', '主演']}# 2。遍历每一段文本,去除非实体和非关系的词语
for text in samples:print("原始文本:", text)# 定义空列表entityentites = [] # 存储实体relations = [] # 存储关系movie_name = [] #  存储电影名称for word, flag in pseg.lcut(text):# 寻找人名这个实体if flag == 'nr':entites.append(word)# 如果是电影名称需要特殊处理elif flag == 'x':if len(movie_name) == 0:movie_name.append(text.index(word))else:movie_name.append(text.index(word))entites.append(text[movie_name[0]+1: movie_name[1]])# 寻找关系else:for key, value in relations2dict.items():if word in value:relations.append(key)print(entites)print(relations)if len(entites) >= 2 and len(relations) >=1:print('提取结果:', entites[0] + '->' + relations[0] + '->' + entites[1])else:print("不好意思,暂时没有抽取出spo三元组")print('*'*80)

5.3 优缺点

  • 优点
简单、在较小的数据集上表现不错
  • 缺点
泛化性能较差,可移植性较差
http://www.xdnf.cn/news/17008.html

相关文章:

  • 县级融媒体中心备份与恢复策略(精简版3-2-1架构)
  • 文件包含篇
  • 秋招笔记-8.4
  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • C++面试题及详细答案100道( 01-10 )
  • 【数据结构】排序(sort) -- 插入排序
  • 【深度学习新浪潮】近三年城市级数字孪生的研究进展一览
  • 【数据结构入门】链表
  • Vue3核心语法进阶(生命周期)
  • 【教学类-52-17】20250803动物数独_空格尽量分散_只有一半关卡数(N宫格通用版3-10宫格)0图、1图、2图、6图、有答案、无答案 组合版24套
  • 华为OD机考2025C卷 - 分配土地 (Java Python JS C++ C )
  • 【Spring AI快速上手 (二)】Advisor实现对话上下文管理
  • 体验Java接入langchain4j运用大模型OpenAi
  • 30天入门Python(基础篇)——第31天:标准库学习之re模块
  • 如何给Word和WPS文档添加密码或取消密码
  • 【回眸】香橙派zero2 阿里云机器视觉分拣系统
  • odoo reportbro 拖拽式报表设计
  • 广东省省考备考(第六十六天8.4)——言语、常识(强化训练)
  • 【笔记】重学单片机(51)(下)
  • Git基础玩法简单描述
  • 【Django】-3- 处理HTTP响应
  • 二值图针对内部轮廓腐蚀膨胀
  • 网安学习NO.21
  • GaussDB 数据库架构师(十二) 资源规划
  • 基于鼠标位置的相机缩放和平移命令的实现(原理+源码)
  • 下面是修正后的完整版 doit_effects.c,已经做了三大关键修复(文件开头也有注释说明)
  • [激光原理与应用-135]:光学器件 - 透镜的本质是利用材料对光的折射特性,通过特定形状的表面设计,实现对光线的会聚、发散或成像控制的光学元件
  • 决策树(回归树)全解析:原理、实践与应用
  • 区块链基础之Merkle B+树
  • 人工智能简述