中药说明书命名实体识别方案总结

中药说明书命名实体识别方案总结

参考链接:https://github.com/positivepeng/2020-tianchi-ChMedNER

阅读上面搜罗的几个方案,对每个方案进行概述,并写一个 CheckList 方便自己回忆思考,每个点都可以尝试一下,不保证有效,炼丹。

冠军方案

链接:https://github.com/z814081807/DeepNER

概述:模型采用 BERT + CRF,使用 UER 预训练模型,差分学习率,采用和 BERT 一样的参数初始化,滑动参数平均。在这个基础上,引入几个优化。第一,对抗训练,FGM 和 PGD。第二,使用混合精度训练,提高速度。第三,模型融合,不同数据划分、随机数种子和句子长度,不同模型(BERT + SPAN,BERT + MRC)。第四,半监督学习,充分利用初赛的测试集。

CheckList

  • 使用不同的预训练模型,UER
  • 差分学习率
  • 参数初始化
  • 滑动参数平均
  • 对抗训练,FGM 和 PGD 等
  • 混合精度加快速度
  • 模型融合,不同模型、不同数据
  • 半监督学习
  • BERT 最后四层动态加权
  • BERT 后面再接一个模块,BiLSTM、DGCNN 等
  • 数据增强,对同类实体词进行随机替换
  • 使用 focal loss、dice loss 缓解标签不平衡
  • 构造领域词典,修正模型输出
  • 预处理,清洗无效字符,长句切分,切分出来过短的句子合并

亚军方案

链接:https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586969.1002.6.25a33e5b7SqxIw&postId=154948

概述:暴力十折 BERT + CRF,模型融合。第一阶段,先用十折 BERT base + CRF + FGM 融合模型,用这个模型去清洗数据,然后将原始数据和清洗数据混合。第二阶段,用上面的数据,十折 BERT large + CRF,模型融合。很暴力。

CheckList

  • 数据清洗,用模型去预测训练集,解决漏标、错标、手滑
  • 尝试考虑词汇的模型 Lattice LSTM、Soft-Lexicon、FLAT
  • 模型融合策略:保留召回率高的模型,设置投票的阈值尽可能提高准确率。十折,要 7 票才保留,阈值越高,越准确,但是召回越低。反之,阈值越低,准确率越低,召回率越高。

亚军方案

链接:https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586969.1002.12.25a33e5b7SqxIw&postId=154826

概述:关注数据集特点!模型架构,BERT + BiLSTM + CRF + FGM。在这个基础上,根据数据集特点进行优化。第一,实体补全。相同的句子,在不同位置上标注不同。第二,增加长度特征。这队观察到漏标和样本长度有关系,要让模型学习到这个特征,所以引入了长度特征。模型融合策略,和上个方案中类似。

CheckList

这个方案更多地关注数据集特点,他们的方案不一定能用到别处。不过看到他们关注数据集特点并给出解决方法,特别佩服。

  • 实体补全。
  • 增加长度特征。

季军方案

链接:https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586969.1002.3.25a33e5b7SqxIw&postId=155024

概述:BERT + BiLSTM + CRF / SPAN + FGM。

CheckList

  • 针对错标,标签矫正。选择标签最多的类别作为真实标记。
  • 数据增强。初赛数据做伪标签。
  • BERT 不同层动态权重融合。
  • 标签平滑。
  • 预热学习率,任务层一开始是随机的,可能对 BERT 产生影响,所以刚开始小一些,后面就按照原来的学习率进行。
  • 对抗训练,FGM。
  • 参数滑动平均,SWA。
  • 模型融合,不同阈值策略。训练集出现过的实体和没出现过的实体采用不同的阈值。

其他方案

链接:https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586969.1002.9.25a33e5bTKPiNR&postId=154762

概述:各种模型融合。

CheckList

  • 领域语料库上进行微调。
  • 模型融合策略:每一折的每一个模型,去投票。
原文地址:https://www.cnblogs.com/zzk0/p/15082766.html