terrifyzhao / text_matching

常用文本匹配模型tf版本,数据集为QA_corpus,持续更新中
Apache License 2.0
674 stars 186 forks source link

text_matching

文本匹配模型

本项目包含目前大部分文本匹配模型,持续更新中,其中论文解读请点击文本相似度,文本匹配模型归纳总结

数据集为QA_corpus,训练数据10w条,验证集和测试集均为1w条

其中对应模型文件夹下的args.py文件是超参数

训练: python train.py

测试: python test.py

词向量: 不同的模型输入不一样,有的模型的输入只有简单的字向量,有的模型换成了字向量+词向量,甚至还有静态词向量(训练过程中不进行更新)和 动态词向量(训练过程中更新词向量),所有不同形式的输入均以封装好,调用方法如下

静态词向量,请执行 python word2vec_gensim.py,该版本是采用gensim来训练词向量

动态词向量,请执行 python word2vec.py,该版本是采用tensorflow来训练词向量,训练完成后会保存embedding矩阵、词典和词向量在二维矩阵的相对位置的图片, 如果非win10环境,由于字体的原因图片可能保存失败

测试集结果对比:

模型 loss acc 输入说明 论文地址
DSSM 0.7613157 0.6864 字向量 DSSM
ConvNet 0.6872447 0.6977 字向量 ConvNet
ESIM 0.55444807 0.736 字向量 ESIM
ABCNN 0.5771452 0.7503 字向量 ABCNN
BiMPM 0.4852 0.764 字向量+静态词向量 BiMPM
DIIN 0.48298636 0.7694 字向量+动态词向量 DIIN
DRCN 0.6549849 0.7811 字向量+静态词向量+动态词向量+是否有相同词 DRCN

以上测试结果可能不是模型的最优解,超参的选择也不一定是最优的,如果你想用到自己的实际工程中,请自行调整超参