实体关系抽取:BiLSTM + Attention (含代码+详细注释) 您所在的位置:网站首页 人物关系数据怎么做 实体关系抽取:BiLSTM + Attention (含代码+详细注释)

实体关系抽取:BiLSTM + Attention (含代码+详细注释)

2024-06-28 19:20| 来源: 网络整理| 查看: 265

把代码放github上面了:链接地址 (记得给个star哦) 数据集介绍

本文采用的是一份中文数据集(数据质量不高,我们主要目的是展现实体关系抽取过程,掌握方法后可以用于高质量数据集上)

每个样例格式如下:

实体1    实体2    实体间关系    句子xxxxxxxxxxxxxxxxx

示例:

郭全宝 郭启儒 合作 、郭全宝)、我是家长(侯宝林、郭启儒)、武松打虎(侯宝林、郭全宝)、戏剧杂谈(侯宝林、郭启儒)、

数据集共11+1种关系 (包括unknow)

unknown 0 父母 1 夫妻 2 师生 3 兄弟姐妹 4 合作 5 情侣 6 祖孙 7 好友 8 亲戚 9 同门 10 上下级 11

 我们本质上是把关系抽取问题转换成了多分类问题。

 

数据分布

1、获取实体关系分布状况:

标签的分布状况 relation_id numbers 0 78642 2 36889 1 28864 5 14030 4 12223 3 8385 6 8221 8 3259 10 2740 11 2709 7 2036 9 2002 dtype: int64

2、为了保证数据分布均匀,我门最好取 训练集+ 验证集 + 测试集 == 2000(总个数)

3、虽然步骤2保证了各种label的均与分布,但如果由于机器性能原因,一次只能训练一部分数据的时候,我们为了防止出现取出的小部分数据出现实体关系标签分布不均匀的情况,在划分数据之前进行了随机划分的处理。详细过程见代码。

  特征提取

每个样本特征 :  pos1 + word + pos2 。其中pos1和pos2分别代表当前word对于实体1和实体2距离的向量表征。

 

模型选择

 

采用BiLSTM + Attention 的方式

BiLSTM用于提取上下文信息,Attention用于得到句子级别的向量表示

 

模型训练

采用 train + validate + test 的模式

 

总结

本文实际上相当于对论文Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification的复现。

特别感谢这篇文章的博主https://blog.csdn.net/buppt/article/details/82961979,本次实现是基于该博主代码,把其python2代码转换为python3代码,加上完整的注释,并且有很细节与代码上的改进与优化。

BiLSTM+Attention 详见论文:https://www.aclweb.org/anthology/P16-2034/

 

鉴于很多人私信代码,代码链接:https://download.csdn.net/download/Tianweidadada/12005792

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有