当前位置:   article > 正文

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

bilstm+attention关系抽取

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

数据集介绍

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

每个样例格式如下:

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

示例:

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

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

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

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

 

数据分布

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

  1. 标签的分布状况
  2. relation_id numbers
  3. 0 78642
  4. 2 36889
  5. 1 28864
  6. 5 14030
  7. 4 12223
  8. 3 8385
  9. 6 8221
  10. 8 3259
  11. 10 2740
  12. 11 2709
  13. 7 2036
  14. 9 2002
  15. 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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/543254
推荐阅读
相关标签
  

闽ICP备14008679号