/TextClassification

GBDT+word2vec加权文本向量 实现长文本分识别;Mysql实时读写文本预测;基于Pytorch的textCNN

Primary LanguagePython

文本分类识别

1. ML_model_train

基于机器学习算法的文本分类识别模型,用于大数据量的长文本的分类判别和预测。

  • 分类模型

使用的算法包括:SVM,NByes,GBDT,Adaboost,RF 等。

目前比较成功的是 梯度提升树 GBDT 和随机森林RF。样本测试准确率 ,精度,召回率和 F1 score 都接近 95%。同时也进行了鲁棒性测试(相关代码见 Realdata_prediction),在非样本数据集上进行实测,预测准确率接近 70%。

由于需要预测的文本属于特定领域的随机样本,大部分来自于互联网,数据量大,文本内容偏长,较为杂乱无章,包含很多口语化表达,还有大量冗余和垃圾信息。无法使用现成的语料库训练,也不适合用开源的文本分类预训练模型。

  • 文本预处理

采用了 word2vec 词嵌入模型,但没有使用现成的预训练模型。

没有使用文本分类中传统的独立词语表示,为了能完整的表达整篇文本的向量特征,对 word2vec 模型进行了特殊处理。引入 IDF 权重,对词向量进行加权,并对整个文本取加权平均,生成表示整篇文章的文本向量。每篇文章的向量独立输入模型进行训练,保持了文章的完整性和词语之间的语义关系,同时又通过加权对词向量的特征进行了筛选,为模型引入适当的先验信息。

2. Realdata_prediction

用于鲁棒性测试的程序,把训练好的模型拿来进行数据实测,所测试的数据都是非样本数据。

  • 基于 mysql 数据库的读写,直接读取数据库源数据,进行逐条文本预测,并实时存储到结果表。能基本保证预测效率和数据同步性。
  • 实现基于 python multiprocessing 的多进程并行处理,提升 CPU 利用率

3. textCNN

基于 Pytorch 的 textCNN 文本分类模型,正在研究中。