文本分类算法综述

最近在阅读Kowsari, Meimandi J , Heidarysafa等人的 《Text Classification Algorithms: A Survey》一文,在此半翻译半总结地总结一下笔记。

1.序章

文章概述了文本特征提取、降维方法、现有的算法与技术(模型)、评估方法。也简述了每种技术的局限性以及其在实际问题中的应用。
大多数文本分类和文档分类的过程都可以分为四个阶段:特征提取、维度降低、类别选择、评估。序章简述了文本分类系统的组成部分:首先是特征提取,再者是维度降低(可选),其次是分类算法选择(最重要的),最后是评估方法(两部分:预测测试数据集+评估模型)。
初始输入由一些原始的文本数据集组成。通常来说,文本数据集包含了文档中的文本序列,每个序列包含N个数据点(文本),数据点含有S个句子,而每个句子有包含由lw个字符组成的Ws个单词。每个数据点都由一组K个不同的离散值来标记。(1 2 ···)。

1.1.特征提取

文本和文档都是非结构化的数据集,但是在使用分类器中的数学模型时,这些非结构化的文本序列必须修改为结构化的特征空间,并且数据集需要进行数据清洗来去除不必要的字符和单词,即文本预处理(会在Section 2中进行讲解)。特征提取的常用技术为:TF-IDF、TF、词向量Word2Vec、全局词向量GloVe(以及之后的Fastext、ELMO、BERT、XLNET等)。

1.2.维度降低

一个常见的问题,由于文本或文档数据集经常包含许多独一无二的单词,数据预处理过程可能会因为长时间运行和内存复杂性而延迟。对这个问题常见的解决方法是开发简单的算法,然而简单的算法并不能适用于所有的数据集(情况),所以研究人员提出使用维度降低的方法。常用的降维操作:主成分分析(PCA)、线性判别分析(LDA)、非负矩阵分解(NMF)。对于无监督特征提取中降维的新技术:随机投影、自编码、T分布随机邻接嵌入(T-SNE)

1.3.分类器技术

在Section4简述了常见的文本分类方法:传统的文本分类器-Rocchio分类、集成学习技术-Boosting and Bagging、逻辑回归(LR)、朴素贝叶斯分类器(NBC);使用了非参数技术的K近邻分类算法(KNN),支持向量机(SVM);基于树的分类器,比如:决策树和随机森林,也常用于文档分类中;近年来,图分类也被认为是一种分类任务,比如:条件随机域(CRFs);目前,深度学习技术也用于分类任务中。

1.4.评估

在Section 5我们简述了评估分类算法的方法:FβScore、马修斯相关系数 (MCC)、ROC、AUC。

2.文本预处理

文本预处理。本节介绍了文本数据清洗的方法。文本数据清洗后,可以消除隐含的噪声,允许信息特征化。讨论了两种常见的文本特征提取的方法:加权词、词嵌入。

2.1.文本清洗和预处理

文本和文档数据集包含了许多不必要的单词,比如:停用词、拼写错误、俚语等等。特别在统计和概率学习算法中,噪声和不必要的特征会对系统性能产生不利的影响,所以需要对文本进行预处理操作。

2.1.1.分词

分词,一种预处理方法,可以将文本分成:单词、短语、符号、有意义元素。中文分词与英文分词有所不同,一般来说,中文分词更难一些。
中文分词原理及分词工具介绍
英文分词原理

2.1.2.去停用词

文本和文档分类包含了许多单词,这些单词并不有非常重要的意义。
常用的方法是运用一些通用技术来去除文本中的这些单词。
英文停用词词表
中文停用词词表
中文分词及去停用词python操作

2.1.3.英文大小写转换

对于这种大小写问题,常用的处理方法是将大写转化为小写,从而可以将文本中的所有单词投射到同一个特征空间上。但这项技术也导致了一个很大问题:对于一些特定单词的解释会出现意思差异巨大的问题,比如WHO是一个国际卫生机构,而who的意思是谁,类似于这样的问题。对于上述的问题可以通过俚语和缩写转换程序来帮助。

2.1.4.俚语与缩写

俚语和缩写是其他形式的文本异常现象,也在预处理步骤进行处理。
处理俚语和缩写通用的方法是将他们转换为形式语言。

2.1.5.去噪

多数文本数据集包含了许多不必要的字符,比如标点符号、特殊字符。这些不必要的字符会对分类算法产生不利的作用。

2.1.6.拼写更正

在社交媒体的文本数据集中,常常会出现这样的拼写错误,也许人可以理解,但机器就不一定了。目前NLP已有许多这样的算法和技术来处理这样的问题,比如:基于散列和上下文敏感的拼写矫正技术、使用Trie和Damerau Levenshtein距离bigram进行拼写校正。

2.1.7.词干提取

文本中一个单词可以以不同的形式在文本中出现,但它们在语义上的意思是一样的。通过词干提取可以将单词的不同形式合并到同一特征空间上。

2.1.8.词形还原

词形还原是将单词还原为其最基本形式的处理方法。

2.2.句法词表示

句法词表示是为了解决词与词之间失去句法和语义关系的问题。
N-gram讲解
BOW-词袋模型讲解

2.3.加权词

加权词特征提取的最基本形式是词频(TF),其中每一个单词都会映射到与该词在整个语料库中出现的次数相对应的数字。扩展TF结果的方法通常为使用词频作为布尔或对数比例加权。
TF-IDF介绍

2.4.词向量嵌入

这项工作的重点是Word2Vec、GloVe和FastText,这三种最常用的方法已经成功地用于深度学习技术。近年来,人们提出了一种新的词汇表征方法,即词汇向量依赖于词的上下文,称之为“语境化词汇表征”或“深层语境化词汇表征”(ELMO、BERT)。
Word2Vec总结
Glove详解
Glove代码实现
FastText原理及代码实现
待续>>(ELMO、GPT、BERT、ALBERT、XLNET)

3.维度降低

基于字向量的模型包含了许多特征,因此这些方法会因为其时间复杂度和内存消耗付出巨大了代价。为了解决这一问题,维度下降算法被提出。
主成分分析PCA
独立成分分析ICA
线性判别分析LDA
LDA详解–主题模型
非负矩阵分解NMF
随机投影
自编码
递归自动编码器
T-SNE原理及代码

4.现有的分类方法

列举了现有的分类算法。
Rocchio算法、Boosting and Bagging、逻辑回归、朴素贝叶斯、K近邻算法、支持向量机SVM、内核SVM、决策树、随机森林;DNN、CNN、RNN、DBN、CNN;组合技术.

4.1.Rocchiio算法

Rocchiio算法
Rocchiio算法–文本分类

4.2.Bagging and Boosting

Boosting方法入门
Bagging
二者区别

4.3.逻辑回归

逻辑回归
多分类逻辑回归

4.4.朴素贝叶斯分类器

朴素贝叶斯分类器

4.5.KNN(K近邻算法)

K-近邻算法原理

4.6.支持向量机(SVM)

SVM
SVM实现
SVM分类

4.7.基于树的算法

决策树
随机森林

4.8.条件随机场(CRF)

条件随机场

4.9.基于深度学习的

基于深度学习的模型综述

5.评估方法

二元分类的评价指标:准确率、精准率、召回率、混淆举证
宏平均和微平均
Fβ分数
马修斯相关系数
ROC和AUC详解


版权声明:本文为qq_40377498原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。