本文章并非完全自己的思想,都是近来所看加总结,记录下来加深自己的理解。
文本分类流程图
特征提取
特征提取=特征项的选择+特征权重的计算。
特征项的选择:根据某个评价指标,独立的对原始特征项(词语)进行评分排序,从中选取一些评分最高的特征项,过滤掉其余的特征项。
特征权重的计算:依据一个词的重要程度,与类别内的词频成正比(代表性),与所有类别中出现的次数成反比(区分度)。
当选用数学方法进行特征提取时,决定文本特征提取效果的最主要因素是评估函数的质量。常用的评估函数有如下方法。
- TF-IDF :TF词频,计算该词描述文档内容的能力;IDF逆向文档频率,用于计算该词区分文档的能力。思想:一个词的重要程度,与类别内的词频成正比(代表性),与所有类别中出现的次数成反比(区分度)。但是TF-IDF的精度不是特别高,也没有体现单词的位置信息。
- 词频TF:一个词在文档中出现的次数。将词频小于某一阈值的词删除。思想:出现频次低的词对过滤的影响也比较小。但是不宜大幅删减词汇,因为频次低的词对过滤的影响也比较小。
- 文档频次法(DF):在整个数据集中,有多少个文本包含这个单词。思想:计算每个特征的文档频次,并根据阈值去除文档频次特别低(没有代表性)和特别高的特征(没有区分度)。简单,计算量小,速度快,时间复杂度和文本数量成线性关系,非常适合超大规模文本数据集的特征选择。
- 互信息方法 :
- 期望交叉熵:
- 信息增益:
- 卡方校验:
- 二次信息熵(QEMI)
- 文本证据权(The weight of Evidence for Text)
- 优势率(Odds Ratio)
- 遗传算法(Genetic Algorithm)
- 主成分分析(PCA)
- 模拟退火算法(Simulating Anneal)
- N-Gram算法
- 等
传统的特征选择方法大多采用以上特征评估函数进行特征权重的计算。这些评估函数基于统计学原理,一是需要庞大的训练集获得对分类其关键作用的特征,二是基于评估函数的特征提取方法建立在特征独立的假设基础上,在实际中很难成立。
文本分类方法
- 传统的文本分类方法:大部分的机器学习方法,例如:Naive Bayes,KNN,SVM,集合类方法,最大熵,神经网络等
- 深度学习的文本分类方法:卷积神经网络(TextCNN),循环神经网络(TextRNN),TextRNN+Attention,TextRCNN(TextRNN+CNN)。
首先分析数据,理解数据;
代码coding,记录实验并分析;
阅读paper,理解原理,动手实践。
别人的推荐:
- CSDN-基于tensorflow的CNN文本分类
- CSDN-深度学习在文本分类中的应用
- 知乎-用深度学习解决大规模文本分类的问题-综述和实践
- 简书-利用tensorflow实现卷积神经网络做文本分类
- CSDN-利用word-embedding自动生成语义相近句子
- Github-Implementing a CNN for text classification in tensorflow
- 卷积神经网络在句子建模上的应用
- CSDN-自然语言处理中CNN模型几种常见的Max-Pooling操作
- WILDML-understanding convolutional neural network for NLP
- 博客园-文本深度表示模型--word2vec & doc2vec词向量模型
- CSDN-用docsim/doc2vec/LSH比较两个文档之间的相似度
- Deeplearning中文论坛-自然语言处理(三)之 word embedding
- CSDN-DeepNLP的学习,词嵌入来龙去脉-深度学习
- CSDN-自己动手写word2vec