1.准备数据集
下载数据集:可以从官方数据集下载网站下载数据集,也可以从目标网站爬取数据
数据集的预处理:去停用词,过滤标点,空格分隔并去掉标点,大小写统一等(详细请参考https://blog.csdn.net/G88JmvEHMsJ1kd4v0c/article/details/78301891)。
2.特征工程
将原始数据转换为特征向量,为了从数据集中选出重要的特征,有以下几种方式:(特征工程详情请见https://www.jianshu.com/p/7066558bd386)
- 计数向量作为特征
- TF-IDF向量作为特征
- 单个词语级别
- 多个词语级别(N-Gram)
- 词性级别
- 词嵌入作为特征
- 基于文本/NLP的特征
- 主题模型作为特征
3.创建分类器、分类模型
朴素贝叶斯分类器
线性分类器
支持向量机
浅层神经网络
深层神经网络(CNN,RNN,LSTM,GRU,双向RNN)
其他网络模型的变种
4.提升分类器性能
进一步提高文本分类模型的性能
为了达到更高的准确率,可以在总体框架中进行一些改进。例如,下面是一些改进文本分类模型和该框架性能的技巧:
1. 清洗文本:文本清洗有助于减少文本数据中出现的噪声,包括停用词、标点符号、后缀变化等。这篇文章有助于理解如何实现文本分类:
https://www.analyticsvidhya.com/blog/2014/11/text-data-cleaning-steps-python/
2. 组合文本特征向量的文本/NLP特征:特征工程阶段,我们把生成的文本特征向量组合在一起,可能会提高文本分类器的准确率。
模型中的超参数调优:参数调优是很重要的一步,很多参数通过合适的调优可以获得最佳拟合模型,例如树的深层、叶子节点数、网络参数等。
3. 集成模型:堆叠不同的模型并混合它们的输出有助于进一步改进结果。如果想了解更多关于模型集成,请访问:
https://www.analyticsvidhya.com/blog/2015/08/introduction-ensemble-learning/
写在最后
本文讨论了如何准备一个文本数据集,如清洗、创建训练集和验证集。使用不同种类的特征工程,比如计数向量、TF-IDF、词嵌入、主题模型和基本的文本特征。然后训练了多种分类器,有朴素贝叶斯、Logistic回归、SVM、MLP、LSTM和GRU。最后讨论了提高文本分类器性能的多种方法。