基于机器学习算法的文本分类识别模型,用于大数据量的长文本的分类判别和预测。
- 分类模型
使用的算法包括:SVM,NByes,GBDT,Adaboost,RF 等。
目前比较成功的是 梯度提升树 GBDT 和随机森林RF。样本测试准确率 ,精度,召回率和 F1 score 都接近 95%。同时也进行了鲁棒性测试(相关代码见 Realdata_prediction),在非样本数据集上进行实测,预测准确率接近 70%。
由于需要预测的文本属于特定领域的随机样本,大部分来自于互联网,数据量大,文本内容偏长,较为杂乱无章,包含很多口语化表达,还有大量冗余和垃圾信息。无法使用现成的语料库训练,也不适合用开源的文本分类预训练模型。
- 文本预处理
采用了 word2vec 词嵌入模型,但没有使用现成的预训练模型。
没有使用文本分类中传统的独立词语表示,为了能完整的表达整篇文本的向量特征,对 word2vec 模型进行了特殊处理。引入 IDF 权重,对词向量进行加权,并对整个文本取加权平均,生成表示整篇文章的文本向量。每篇文章的向量独立输入模型进行训练,保持了文章的完整性和词语之间的语义关系,同时又通过加权对词向量的特征进行了筛选,为模型引入适当的先验信息。
用于鲁棒性测试的程序,把训练好的模型拿来进行数据实测,所测试的数据都是非样本数据。
- 基于 mysql 数据库的读写,直接读取数据库源数据,进行逐条文本预测,并实时存储到结果表。能基本保证预测效率和数据同步性。
- 实现基于 python multiprocessing 的多进程并行处理,提升 CPU 利用率
基于 Pytorch 的 textCNN 文本分类模型,正在研究中。