引言
1 textCNN or Bert
1.1 简介
(1)环境
tensorflow 1.x
pytorch
1.2 textcnn
使用 TextCNN 模型的代码。讲解文章:阿里天池 NLP 入门赛 TextCNN 方案流程讲解
1.3 bert
使用 Bert 模型的代码。讲解文章分为 3 篇:
2 Bert
rank1第一名分享
2.1 简介
(1)环境
Tensorflow == 1.14.0
Keras == 2.3.1
bert4keras == 0.8.4
(2)github
github源码
2.2 文件说明
- EDA:用于探索性数据分析。
- data_utils:用于预训练语料的构建。
- pretraining:用于Bert的预训练。
- train:用于新闻文本分类模型的训练。
- pred:用于新闻文本分类模型的预测。
3 LSTM or CNN or Transformer
3.1 简介
(1)环境
Keras==2.3.1
tensorflow==1.15.0
(2)Github
Github源码
3.2 模型得分
模型 | 线下 | 线下 |
---|---|---|
LSTM | 0.9485614776 | 0.9563 |
CNN | 0.9436911692 | 0.9532 |
Transformer | 0.9363675328 | 0.9465 |
4 多模型融合
Rank4分享
4.1 简介
(1)环境
pytorch
sklearn
gensim
Tensorflow2.0+
xgboost
lightgbm
tqdm
huggingface/transformers
4.2 模型得分
模型 | 得分 |
---|---|
tfidf_lightgbm_cv | 0.943~0.945 |
textbirgru+pl | 0.959 |
textcnn-FC | 0.943 |
bertbilstmattn | 0.9597 |
bert系列没有特别多的记录 | 0.955+ |
bert_mini系列 | 0.951~0.952 |
bert_small系列没有特别多的记录 | 0.955+ |
fasttext-text retrieval | 0.93 |
融合测试
基本上textbigru_cv+bertbilstmattn (无pl) 此时也有0.969的成绩 加上pl其实就比较接近0.97了 后来我尝试了加上几个bert系列(后悔没有加上pl,否则可能还会提高) 结合tfidf做了一下对应lr, lightgbm, xgboost的stacking-B榜分数达到0.9702 总结: 其实我在线下验证集上达到了0.971, 但是我觉得可能B榜的类别分布与训练集不一样,所以我只有0.9702。
5 TextRNN
(1)github
GitHub源码