来自知乎https://www.zhihu.com/tardis/sogou/art/37157010
特征工程
在这一步,原始数据将被转换为特征向量,另外也会根据现有的数据创建新的特征。为了从数据集中选出重要的特征,有以下几种方式:
计数向量作为特征
计数向量是数据集的矩阵表示,其中每行代表来自语料库的文档,每列表示来自语料库的术语,并且每个单元格表示特定文档中特定术语的频率计数
TF-IDF向量作为特征
TF-IDF的分数代表了词语在文档和整个语料库中的相对重要性。
TF-IDF分数由两部分组成:
- 第一部分是计算标准的词语频率(TF)
- 第二部分是逆文档频率(IDF)。
其中计算语料库中文档总数除以含有该词语的文档数量,然后再取对数就是逆文档频率。
TF(t)=(该词语在文档出现的次数)/(文档中词语的总数)
IDF(t)= log_e(文档总数/出现该词语的文档总数)
TF-IDF向量可以由不同级别的分词产生(单个词语,词性,多个词(n-grams))
- 词语级别TF-IDF:矩阵代表了每个词语在不同文档中的TF-IDF分数。
- N-gram级别TF-IDF: N-grams是多个词语在一起的组合,这个矩阵代表了N-grams的TF-IDF分数。
- 词性级别TF-IDF:矩阵代表了语料中多个词性的TF-IDF分数。
词嵌入作为特征
- Glove
- FastText
- Word2Vec
主题模型作为特征
主题模型是从包含重要信息的文档集中识别主题的技术
创建许多额外基于文本的特征有时可以提升模型效果。比如下面的例子:
基于文本/NLP的特征
创建许多额外基于文本的特征有时可以提升模型效果。比如下面的例子:
- 文档的词语计数—文档中词语的总数量
- 文档的词性计数—文档中词性的总数量
- 文档的平均字密度–文件中使用的单词的平均长度
- 完整文章中的标点符号出现次数–文档中标点符号的总数量
- 整篇文章中的大写次数—文档中大写单词的数量
- 完整文章中标题出现的次数—文档中适当的主题(标题)的总数量
- 词性标注的频率分布:名词数量 动词数量 形容词数量 副词数量 代词数量
这些特征有很强的实验性质,应该具体问题具体分析。
建模
最后一步是利用之前创建的特征训练一个分类器。关于这个最终的模型,机器学习中有很多模型可供选择。
下面列出了不同的分类器可以用来做文本分类:
- 朴素贝叶斯分类器
- 线性分类器
- 支持向量机(SVM)
- Bagging Models
- Boosting Models
- 浅层神经网络
- 深层神经网络:卷积神经网络(CNN)、 LSTM、GRU、双向RNN、循环卷积神经网络(RCNN)
- 其它深层神经网络的变种