论文阅读:Text Classification Algorithms: A Survey
这是一篇关于文本分类的综述性文章,发表于2019年,由于文章篇幅较长,所以分开来写,本次介绍前三章,包括引言,文本处理,和降维部分。
近年来,复杂文档和文本的数量呈指数增长,这些文档和文本需要更深入地了解机器学习方法才能在许多应用中准确地对文本进行分类。许多机器学习方法在自然语言处理方面都取得了超越性的结果。这些学习算法的成功取决于它们理解复杂模型和数据中非线性关系的能力。然而,寻找合适的结构,体系结构和文本分类技术对研究人员来说是一个挑战。在本文中,将对文本分类算法进行简要概述。此概述涵盖了不同的文本特征提取,降维方法,现有算法和技术以及评估方法。最后,讨论了每种技术的局限性及其在实际问题中的应用。
大多数文本分类和文档分类系统可以分解为以下四个阶段:特征提取,降维,分类器选择和评估。在本文中,我们根据图1所示的管道讨论了文本分类系统的结构和技术实现
初始管道输入包含一些原始文本数据集。通常,文本数据集包含文档中的文本序列,例如D = {X1,X2,。 。 …,XN},其中Xi指的是具有s个句子的数据点(即文档,文本段),这样每个句子都包含ws个单词,带有lw个字母。每个点都用来自k个不同离散值索引的集合中的类值标记。
然后,出于训练目的,我们应该创建一个结构化集,将其称为“特征提取”部分。降维步骤是流水线的可选部分,它可以是分类系统的一部分。文档分类中最重要的步骤是选择最佳分类算法。管道的另一部分是评估步骤,该评估步骤分为两部分(预测测试集和评估模型)。通常,文本分类系统包含四个可以应用的不同级别的范围:
**1.**文档级别:在文档级别,算法获得完整文档的相关类别。
**2.**段落级别:在段落级别,算法获得单个段落(文档的一部分)的相关类别。
**3.**句子级别:在句子级别中,获取单个句子(段落的一部分)的相关类别。
**4.**子句级别:在子句级别中,该算法获取句子(句子的一部分)内子表达式的相关类别。
(I)特征提取:通常,文本和文档是非结构化的数据集。但是,使用数学模型作为分类器的一部分时,必须将这些非结构化文本序列转换为结构化特征空间。首先,需要清除数据以省略不必要的字符和单词。清除数据后,可以应用正式的特征提取方法。**特征提取的常用技术是术语频率逆文档频率(TF-IDF),术语频率(TF),**Word2Vec **和用于词表示的全局向量(GloV e)。**在第2节中,我们将这些方法归类为词嵌入或加权词技术,并讨论技术实现细节。
(II)降维: 由于文本或文档数据集通常包含许多唯一的单词,因此数据预处理步骤会因时间和内存复杂性而滞后。解决此问题的常见方法是简单地使用便宜的算法。但是,在某些数据集中,这些廉价算法的性能不及预期。为了避免性能下降,许多研究人员更喜欢使用降维来减少应用程序的时间和内存复杂性。使用降维进行预处理可能比开发便宜的分类器更为有效。
在第3节中,我们概述了降维的最常用技术,包括主成分分析(PCA),线性判别分析(LDA)和非负矩阵分解(NMF)。我们还将讨论用于无监督特征提取降维的新技术,例如随机投影,自动编码器和t分布随机邻居嵌入(t-SNE)。
(III)分类技术: 文本分类流程中最重要的步骤是选择最佳分类器。没有对每种算法的完整概念理解,我们就无法有效地确定文本分类应用程序的最有效模型。在第4节中,我们讨论了最流行的文本分类技术。首先,我们介绍了文本分类的传统方法,例如Rocchio分类。接下来,我们讨论基于集合的学习技术,如boosting and bagging,主要用于查询学习策略和文本分析。 **Logistic****回归(LR)是最简单的分类算法之一,已在大多数数据挖掘领域得到解决。在最早的信息检索历史中作为一种可行的应用程序,朴素贝叶斯分类器(NBC)非常受欢迎。**我们对朴素贝叶斯分类器进行了简要概述,该分类器在计算上不昂贵,并且需要非常少量的内存。
已经研究了非参数技术并将其用作分类任务,例如k-最近邻(KNN) 。支持向量机**(SVM)**是另一种流行的技术,它采用一个判别分类器进行文档分类。这种技术也可用于数据挖掘的所有领域,如生物信息学、图像、视频、人类活动分类、安全和安保等。这个模型也被用作许多研究人员对比自己作品的基线,以突出新颖性和贡献。
基于树的分类器,例如决策树和随机森林,也已经在文档分类方面进行了研究。每种基于树的算法将在单独的小节中介绍。近年来,图形分类已被视为作为分类任务,例如条件随机场(CRF)。但是,这些技术主要用于文档摘要和自动关键字提取。
(四)评估:文本分类流程的最后一部分是评估。了解模型的执行方式对于使用和开发文本分类方法至关重要。有许多方法可用于评估监督技术。准确性计算是最简单的评估方法,但不适用于不平衡的数据集。在第5节中,我们概述了以下用于文本分类算法的评估方法:FβScore,Matthews相关系数(MCC),接收器工作特征(ROC)和ROC曲线下面积(AUC)。
在第6节中,我们讨论上述方法的局限性和缺点。我们还将简要比较流水线的步骤,包括特征提取,降维,分类技术和评估方法。本节将通过许多标准对最新技术进行比较,例如其模型的架构,作品的新颖性,特征提取技术,语料库(使用的数据集),验证措施以及每种标准的局限性工作。为应用找到最佳系统需要选择特征提取方法。该选择完全取决于应用程序的目标和数据集,因为某些特征提取技术对于特定应用程序而言效率不高。例如,由于GloVe在Wikipedia上进行了培训,并且在用于诸如短消息服务(SMS)的短文本消息时,此技术的效果不如TF-IDF。此外,由于数据量少,因此无法训练该模型的数据点有限以及其他技术。下一步或该流程中的下一步是分类技术,在此我们简要地讨论每种技术的局限性和缺点。
在第7节中,我们描述了文本和文档分类应用程序。对于研究人员而言,文本分类是许多领域和领域的主要挑战。信息检索系统[33]和搜索引擎[34,35]应用程序通常使用文本分类方法。从这些应用程序扩展,文本分类还可以用于诸如信息过滤(例如,电子邮件和文本消息垃圾邮件过滤)之类的应用程序[36]。接下来,我们讨论在公共卫生[37]和人类行为[38]中采用文档分类。文本分类帮助的另一个领域是文档组织和知识管理。最后,我们将讨论在营销和广告中广泛使用的推荐系统。
大多数文本和文档数据集包含许多不必要的词,例如停用词,拼写错误,语等。在许多算法中,尤其是统计和概率学习算法,噪声和不必要的功能可能会对系统性能产生不利影响。在本节中,我们简要介绍一些用于文本清理和预处理文本数据集的技术和方法。
令牌化是一种预处理方法,它将文本流分解为单词,短语,符号或称为令牌的其他有意义的元素。此步骤的主要目标是调查句子中的单词。 文本分类和文本挖掘都需要一个解析器来处理文档的标记化,例如:
文本和文档分类包括许多单词,这些单词不包含要在分类算法中使用的重要意义,例如{“ a”,“ about”,“ above”,“ across”,“ after”,“ afterafter”,“ again” ,。 。 }。处理这些单词的最常用方法是将它们从文本和文档中删除。
文本和文档数据点具有大写形式以组成句子。由于文档由许多句子组成,因此在对大型文档进行分类时,大写字母可能会产生很大的问题。处理大小写不一致的最常见方法是将每个字母都减小为小写。 这种技术将文本和文档中的所有单词投射到相同的特征空间中,但是它对某些单词的解释(例如,“ US”(美利坚合众国)到“ us”(代词))造成了严重的问题[43] 。 Slang and abbreviation converters可以帮助解决这些异常
俚语和缩写是在预处理步骤中处理的其他形式的文本异常。 缩写词是单词或短语的缩写形式,其中大部分包含单词的首字母,例如SVM代表Support Vector Machine。 俚语是非正式谈话或文本中所用语言的子集,具有不同的含义,例如“失去情节”,这实际上意味着他们发疯了。处理这些单词的常用方法是将其转换为形式语言。
大多数文本和文档数据集包含许多不必要的字符,例如标点符号和特殊字符。关键标点符号和特殊字符对于人类对文档的理解很重要,但是对于分类算法可能是有害的。
拼写校正是可选的预处理步骤。 打字错误(印刷错误的简称)通常出现在文本和文档中,尤其是在社交媒体文本数据集(例如Twitter)中。许多算法,技术和方法已经在NLP中解决了这个问题[49]。研究人员可以使用许多技术和方法,包括基于散列和上下文相关的拼写纠正技术[50],以及使用Trie和Damerau–Levenshtein距离bigram进行的拼写纠正。
在NLP中,一个单词可能以不同的形式出现(即单数和复数名词形式),而每种形式的语义均相同。一种将单词的不同形式合并到同一特征空间中的方法正在兴起。 文本词干修饰通过使用不同的语言过程(例如,词缀(词缀的添加))来修饰词以获得变体词形式。例如,“studying”一词的词干是“study”。
摘要文本词元化是消除一个词的冗余前缀或后缀并提取出基本词 **(词元)**的过程。
n-gram技术是一组n字,它在文本集中“以该顺序” 出现。这不是文本的表示形式,但是可以用作表示文本的特征。**
BOW是一个文本的表示法,它使用的单词(1-gram)失去了它们的顺序(句法)。这个模型很容易获得,文本可以通过一个向量来表示,通常是一个可管理的文本大小。另一方面,n-gram是BOW的一个特征,用于使用1-gram表示文本。使用2-gram和3-gram是很常见的。这样,与1-gram相比,提取的文本特征可以检测更多的信息。
语法n-gram,它是由语法依赖性或组成树中的路径而不是文本的线性结构定义的。
**加权词特征提取的最基本形式是tf,其中每个词映射到一个数字,该数字对应于该词在整个语料库中出现的次数。**扩展tf结果的方法通常使用词频作为布尔或对数比例加权。在所有权重词方法中,每个文档都被转换为包含文档中单词频率的向量(长度等于文档的长度)。虽然这种方法是直观的,但它受到这样一个事实的限制,即语言中常用的特定词语可能主导这种表示。
词袋模型(BoW模型)是根据特定条件(例如词频)从文本的选定部分简化和简化的文本文档表示。在BoW中,文本主体(例如文档或句子)被认为像一袋单词 。单词列表在BoW流程中创建。矩阵中的这些单词不是构成句子和语法的句子,并且这些单词之间的语义关系在其收集和构造中被忽略。单词通常代表句子的内容。尽管忽略了语法和出现顺序, 但对重复性进行了计数,以后可用于确定文档的焦点。
Bag0of-words模型将词汇表中的每个单词编码为一个热编码矢量,例如,对于大小为|Σ|的词汇表,每个单词都由|Σ|表示维稀疏向量,由于词汇量可能达到数以百万计,因此单词袋模型面临可伸缩性挑战。词袋的技术问题也是计算机科学和数据科学界面临的主要挑战。
这里N是文档数,d f(t)是语料库中包含术语t的文档数。公式(1)中的第一项可以提高查全率,而第二项可以提高单词嵌入的准确性[60]。尽管TF-IDF试图克服文档中的通用术语问题,但它仍然遭受其他一些描述性限制。即,TF-IDF****无法解释文档中单词之间的相似性,因为每个单词都作为索引独立显示。然而,随着近年来更复杂的模型的发展,已经提出了可以结合诸如词的相似性和语音标签的一部分之类的概念的诸如词嵌入的新方法。
简单来说,词语t在每文档中出现的次数越多代表词语越重要,同时在语料库中包含术语t的文档数越多代表词语越不重要,二者相互作用。
即使我们具有句法上的单词表示形式,也并不意味着该模型捕获了单词的语义含义。另一方面,词袋模型不尊重单词的语义。例如,单词“airplane”, “aeroplane”, “plane”, and “aircraft”通常在相同的上下文中使用。但是,在词袋模型中,与这些词相对应的向量是正交的。这个问题给理解模型中的句子提出了一个严重的问题。词袋中的另一个问题是短语中单词的顺序不被尊重。 n-gram****无法解决此问题 ,因此需要为句子中的每个单词找到相似之处。许多研究人员致力于词嵌入来解决此问题。 [61]的Skip-gram和连续词袋(CBOW)模型基于两个词向量之间的内积提出了一个简单的单层体系结构。
词嵌入是一种特征学习技术,其中词汇表中的每个词或短语都映射到实数的N维向量。已经提出了各种词嵌入方法,以将字母组合词转换为机器学习算法可以理解的输入。这项工作着重于Word2Vec,GloVe和FastText ,这三种方法已成功用于深度学习技术。最近,引入了新的单词表示技术,其中单词向量取决于单词的上下文,称为“上下文化的单词表示”或“深度上下文化的单词表示”。
T. Mikolov等。 [61,62]提出了一种“单词到矢量”的表示形式,作为一种改进的单词嵌入架构。 Word2Vec方法使用具有两个隐藏层的浅层神经网络,连续词袋(CBOW)和Skip-gram****模型为每个词创建高维向量。 Skip-gram模型包含一个单词和上下文的语料库[10]。目标是最大化概率:
图2显示了一个简单的CBOW模型,该模型尝试根据先前的单词查找单词,而Skip-gram****尝试查找可能出现在每个单词附近的单词。 输入层和输出层之间的权重表示v×N [63]作为w的矩阵。
用于文本分类的另一种强大的词嵌入技术是全局向量(GloVe)[11]。该方法与Word2Vec方法非常相似,其中每个单词都是由高维向量表示,并根据周围的单词在一个巨大的语料库上进行训练。在许多作品中使用的预训练词嵌入是基于Wikipedia 2014和Gigaword 5(作为语料库)训练的40万个词汇和50个词表示的维度。 GloVe还提供了100、200、300个维度的其他预训练单词向量化,这些向量化甚至在更大的语料库(包括Twitter内容)上进行了训练。图3显示了使用相同的t-SNE技术[64]的样本数据集上单词距离的可视化。目标函数如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rWxcusUD-1596711599428)(file:///C:/Users/17869/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg)]
通过将不同的向量分配给每个单词,许多其他单词嵌入表示会忽略单词的形态[65]。 Facebook AI Research实验室发布了一种新技术,通过引入一种称为FastText的新单词嵌入方法来解决此问题。每个单词w表示为一包字符n-gram。例如,给定单词“ introduce”并且n = 3,FastText将产生以下由字符三元组组成的表示形式:
假设我们有一个大小为G的n-gram字典,并给了一个单词w,它作为向量表示zg与每个n-gram g关联。在这种情况下,获得的评分函数[65]为:
Facebook发布了294种语言的预训练词向量,这些词向量在维基百科上使用基于300维的FastText进行了训练。 FastText使用带有默认参数的Skip-gram模型
上下文化词表示法是另一种词嵌入技术,它基于B. McCann等人引入的context2vec [66]技术。 context2vec****方法 使用双向长短期记忆(LSTM)。 M.E. Peters等。 ELMo是一种深度上下文化的单词表示,它既模拟了(1)单词使用的复杂特征(例如,语法和语义),也模拟了(2)这些用法如何在不同的语言语境中变化(例如,语法和语义)。,以模拟一词多义)。这些词嵌入技术背后的主要思想是从双向语言模型(biLM)中学习生成的词向量,双向语言模型由前向和后向LM组成。前向LM如下:
此公式共同使前向和后向的对数似然性最大化,如下所示:
其中Θ表示令牌表示,而Θ表示softmax层。然后,将ELMo计算为所有biLM层的特定于任务的权重,如下所示:
尽管使用连续词袋模型和连续Skip-gram模型来保留用于机器学习算法的句子的句法和语义信息,但是仍然存在如何保持用于机器学习的连贯文档的全部含义的问题。
Model | Advantages | Limitation |
---|---|---|
Weighted Words (BOW) | 易于计算 使用它轻松计算2个文档之间的相似度 提取文档中最具描述性的术语的基本指标 使用未知词(例如,语言中的新词) | 它不捕获文本中的位置(语法) 它没有捕获文本中的含义(语义) 常用字词会影响结果(例如“ am”,“ is”等) |
TF-IDF | 易于计算 使用它轻松计算2个文档之间的相似度 提取文档中最具描述性的术语的基本指标 通用字词不会因IDF而影响结果(例如**“ am”,“ is”**等) | 它不捕获文本中的位置(语法) 它没有捕获文本中的含义(语义) |
Word2Vec | 它捕获单词在文本中的位置(语法) 它捕获单词(语义)中的含义 | 它无法从文本中捕获单词的含义(无法捕获多义性) 它无法捕获语料库中的词汇外词 |
GloVe (Pre-Trained) | 它捕获单词在文本中的位置(语法) 它捕获单词(语义)中的含义 训练庞大的语料库 | 它无法从文本中捕获单词的含义(无法捕获多义性) 存储的内存消耗 它无法捕获语料库中的词汇外词 |
GloVe (Trained) | 这非常简单,例如,强制词向量以捕获向量空间中的亚线性关系(性能优于Word2vec) 对于频繁出现的单词对(例如停用词,例如“ am”,“ is”等),较低的权重。 | 存储的内存消耗 需要庞大的语料库来学习 它无法从语料库中捕获词汇量不足的单词 它无法从文本中捕获单词的含义(无法捕获多义性) |
FastText | 适用于稀有词(稀有字符n-gram,仍与其他词共享) 用字符级的n-gram解决词汇量不足的单词 | 它无法从文本中捕获单词的含义(无法捕获多义性) 存储的内存消耗 与GloVe和Word2Vec相比,计算成本更高 |
Contextualized Word Representations(ELMO) | 它从文本中捕获单词的含义(结合上下文,处理多义性) | 存储的内存消耗 显着提高下游任务的性能。 与其他相比,计算上更昂贵 需要为所有LSTM和前馈层嵌入另一个单词 它无法从语料库中捕获词汇量不足的单词 仅适用于句子和文档级别(不适用于单个单词级别) |
主成分分析(PCA)是目前最常用的多变量分析和降维技术。主成分分析是一种识别数据近似所在子空间的方法。这意味着要找到不相关的新变量,并使方差最大限度地保持尽可能多的可变性。
PCA****可用作预处理工具,以在数据集上运行监督学习算法(x(i)s作为输入)之前减小数据集的维数。 PCA作为降噪算法也是一种有价值的工具,有助于避免过度拟合问题[70]。核主成分分析(KPCA)是另一种降维方法,它使用核方法将线性PCA****推广为非线性情况。
随机投影是一种用于降维的新技术,主要用于大量数据集或高维特征空间。文本和文档,尤其是带有加权特征提取的文本和文档,会生成大量特征。许多研究人员将随机投影应用于文本数据[83,84],以进行文本挖掘,文本分类和降维。在本节中,我们回顾一些基本的随机投影技术。如图5所示,显示了随机投影的概述。
左侧的图显示了如何生成随机方向,右侧的图显示了如何使用复数将数据集投影到新空间中。
自动编码器是一种经过训练以尝试将其输入复制到其输出的神经网络[91]。自动编码器通过强大的神经网络可预测性作为降维方法取得了巨大的成功[92]。引入了自动编码器的第一个版本由D.E. Rumelhart等。 [93]在1985年提出。主要思想是输入和输出层之间的一个隐藏层具有较少的单位**[94]****,因此可以用来减少特征空间的尺寸。特别是对于包含许多功能的文本,文档和序列,使用自动编码器可以帮助实现更快,更有效的数据处理。**
如图6所示,自动编码器的输入和输出层包含n个单位,其中x = Rn,隐藏层Z包含p个单位,p < n [95]。对于这种降维技术,最终特征空间的维数从n → p减少。
基于卷积神经网络(CNN)的自动编码器可分为两个主要步骤97。
T-SNE是一种嵌入高维数据的非线性降维方法。这种方法通常用于低维特征空间的可视化[64],如图8所示。这种方法是基于韩丁和罗维斯[102]。SNE通过将高维欧几里得距离转换成表示相似性的条件概率来工作[64]。