关系抽取比赛:pipeline方法实践

本文分享了关系抽取任务的实践经验,包括命名体识别与关系分类的挑战、解决方案及模型预测流程。探讨了数据不平衡、噪声处理、BERT预训练及模型融合等关键问题。

1.写在前面

  • 寒假开始看RE,3月正好看到百度的比赛,在导师的支持下报名参加。
  • 看论文学习和动手实践还是有区别的,第一次参加NLP的比赛,第一次使用bert,动手能力还是比较捉急,看代码,跑模型,摸爬滚打花了好多时间。
  • 本次比赛还是有许多不足,会一一总结。一开始对于任务数据理解不够深刻,选用了pipeline方法,就决心一路走到底吧
  • 从结果来看不是很理想,由于时间设备关系,也没怎么炼丹,去追求最好的结果。过程来说动手能力得到了锻炼。
  • 本文档单纯做个记录

2.数据部分

  • 数据存在关系类别不平衡长短句数量不平衡实体类型数量不平衡的问题
  • 实体中存在一些生僻字,通用的bert不是很契合。

针对以上两个问题,使用了数据增强以及语言模型深度预训练的做法。

数据增强:EDA

深度预训练:How to Fine-Tune BERT for Text Classification?

未能处理好的问题

数据中存在噪声,具体体现:

  • 在实体标注不全
  • 句子中三元组标注不完整
  • 文本中有许多特殊字符、表情

三元组标注不完整,其实可以考虑在训练集上做类似于交叉验证的做法。比如5份数据集,每次用4份训练,得到5个模型,在训练集上跑5份结果,然后进行投票,5份都预测到却没在训练集中的实体进入模型。

实体标注不全文本中的噪声则需要一些文本清洗,正则表达式的做法,碍于捉急的动手能力,等到发现的时候,已经没时间,只能标注时全部丢掉。

  • 反思:对于数据理解不够充分。虽然是NLP任务,也需要进行描述性分析,也需要用肉眼看数据,才能更好地理解数据,这部分工作没做到位。

3.解决方案

Pipeline的思路应该是有两种做法:

  • 先预测句子可能的类别(多分类多标签),再对该类别下的句子抽取头尾实体。
    P ( s , p , o ∣ s e n t e n c e ) = P ( p ∣ s e n t e n c e ) P ( s , o ∣ p , s e n t e n c e ) P(s,p,o| sentence) = P(p | sentence) P(s,o|p,sentence) P(s,p,osentence)=P(psente
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值