短文本分类概述

定义

短文本通常是指长度比较短,一般不超过160个字符的文本形式,如微博、聊天信息、新闻主题、观点评论、问题文本、手机短信、文献摘要等。短文本分类任务的目的是自动对用户输入的短文本进行处理,得到有价值的输出。在chatbot的构建过程中,对用户的意图进行识别是其中比较重要的一个部分,而意图识别的核心问题是如何对短文本进行分类。

特点

(1) 稀疏性:短文本的内容较短,通常只包含几个到十几个有实际意义的词语,难以抽取有效的特征词。

(2) 实时性:短文本更新速度快、易于扩散。

(3) 海量性:短文本大量存在于人们的生活中,由于短文本的及时更新和快速传播,使互联网中积累了海量的短文本数据,这要求对于短文本的处理计算必须具有很高的速度。

(4) 不规范性:短文本表述简洁,简称、不规范用语以及网络流行用语被广泛使用,使文本噪音较大。如“天朝”-网络用语,“杯具”-谐音用法,“666”-新词汇。

难点

短文本的特点使文本分类面临以下难点:

(1) 短文本特征词少,用传统的基于词条的向量空间模型表示,会造成向量空间的稀疏。另外,词频、词共现频率等信息不能得到充分利用,会丢失掉了词语间潜在的语义关联关系。

(2) 短文本的不规范性,使文本中出现不规则特征词和分词词典无法识别的未登录词,这导致传统的文本预处理和文本表示方法不够准确。

(3) 短文本数据的规模巨大,在分类算法的选择上往往更倾向于非惰性的学习方法,避免造成过高的时间复杂度。

因此,短文本分类一般在预处理、文本表示、分类器的构建等环节中进行优化和改进,以提高分类效果和精度。

分类方法

--传统文本分类方法

伴随着统计学习方法的发展,特别是90年代后互联网在线文本数量增长和机器学习学科的兴起,逐渐形成了一套解决大规模文本分类问题的经典方法,整个文本分类问题就拆分成了特征工程和分类器两部分。

1.1 特征工程

特征工程在机器学习中往往是最耗时耗力的,但却极其的重要。抽象来讲,机器学习问题是把数据转换成信息再提炼到知识的过程,特征是“数据-->信息”的过程,决定了结果的上限,而分类器是“信息-->知识”的过程,则是去逼近这个上限。然而特征工程不同于分类器模型,不具备很强的通用性,往往需要结合对特征任务的理解。

文本分类问题所在的自然语言领域自然也有其特有的特征处理逻辑,传统分本分类任务大部分工作也在此处。文本特征工程分为文本预处理、特征提取、文本表示三个部分,最终目的是把文本转换成计算机可理解的格式,并封装足够用于分类的信息,即很强的特征表达能力。

1)文本预处理

文本预处理过程是在文本中提取关键词表示文本的过程,中文文本处理中主要包括文本分词和去停用词两个阶段。之所以进行分词,是因为很多研究表明特征粒度为词粒度远好于字粒度,其实很好理解,因为大部分分类算法不考虑词序信息,基于字粒度显然损失了过多“n-gram”信息。

具体到中文分词,不同于英文有天然的空格间隔,需要设计复杂的分词算法。传统算法主要有基于字符串匹配的正向/逆向/双向最大匹配;基于理解的句法和语义分析消歧;基于统计的互信息/CRF方法。近年来随着深度学习的应用,WordEmbedding + Bi-LSTM+CRF方法逐渐成为主流,本文重点在文本分类,就不展开了。而停止词是文本中一些高频的冠词助词代词连词介词等对文本分类无意义的词,通常维护一个停用词表,特征提取过程中删除停用表中出现的词,本质上属于特征选择的一部分。

2)文本表示和特征提取

文本表示:

文本表示的目的是把文本预处理后的转换成计算机可理解的方式,是决定文本分类质量最重要的部分。传统做法常用词袋模型(BOW, Bag Of Words)或向量空间模型(Vector Space Model),最大的不足是忽略文本上下文关系,每个词之间彼此独立,并且无法表征语义信息。一般来说词库量至少都是百万级别,因此词袋模型有个两个最大的问题:高纬度、高稀疏性。词袋模型是向量空间模型的基础,因此向量空间模型通过特征项选择降低维度,通过特征权重计算增加稠密性。

特征提取:

向量空间模型的文本表示方法的特征提取对应特征项的选择和特征权重计算两部分。

特征选择的基本思路是根据某个评价指标独立的对原始特征项(词项)进行评分排序,从中选择得分最高的一些特征项,过滤掉其余的特征项。常用的评价有文档频率、互信息、信息增益、χ²统计量等。

特征权重主要是经典的TF-IDF方法及其扩展方法,主要思路是一个词的重要度与在类别内的词频成正比,与所有类别出现的次数成反比。

3)基于语义的文本表示

传统做法在文本表示方面除了向量空间模型,还有基于语义的文本表示方法,比如LDA主题模型、LSI/PLSI概率潜在语义索引等方法,一般认为这些方法得到的文本表示可以认为文档的深层表示,而word embedding文本分布式表示方法则是深度学习方法的重要基础。

1.2 分类器

分类器基本都是统计分类方法了,基本上大部分机器学习方法都在文本分类领域有所应用,比如朴素贝叶斯分类算法(Naïve Bayes)、KNN、SVM、最大熵和神经网络等。

--深度学习文本分类方法

传统做法主要问题的文本表示是高纬度高稀疏的,特征表达能力很弱,而且神经网络很不擅长对此类数据的处理;此外需要人工进行特征工程,成本很高。而深度学习最初在之所以图像和语音取得巨大成功,一个很重要的原因是图像和语音原始数据是连续和稠密的,有局部相关性。应用深度学习解决大规模文本分类问题最重要的是解决文本表示,再利用CNN/RNN等网络结构自动获取特征表达能力,去掉繁杂的人工特征工程,端到端的解决问题。

详参:用深度学习(CNN RNN Attention)解决大规模文本分类问题

评价指标

文本分类其本质上是一个映射过程,所以评估文本分类系统的标志是映射的准确程度。文本分类中常用的性能评估指标有:查准率P(Precision)、查全率R(Recall)和F测试值(F-measure),设a-实际和预测都为A;b-实际非A预测为A;c-实际是A预测非A

1、精确率(Precision,p) p=a/(a+b)

精确率是所有判断的文本中与人工分类结果吻合的文本所占的比率,p描述了分类结果中的准确程度,即分类结果中有多少是正确的。

2.召回率(Recall,R) r=a/(a+c)

召回率又称查全率,是人工分类结果应有的文本中与分类系统吻合的文本所占的比率,r描述了正确分类的能力,即已知的文本中,有多少被正确分类。

3. F测试值(F-measure)

对于一次测试,准确率和召回率一般是成反比的。一般而言,查准率会随着查全率的升高而降低,多数情况下需要将两者综合考虑,得到一种新的平均指标:

F测试值。计算公式如下:

F1Score = 2*(Precision * Recall)/(Precision + Recall)

F1值越大,表示分类器的性能越好,文本分类的效果越理想。

附短文本分类模型、代码和效果比较:

https://github.com/brightmart/text_classification

猜你喜欢

转载自blog.csdn.net/ZJL0105/article/details/81074230