文本分类概述
文本分类问题是自然语言处理领域一个经典问题,主要是传统文本分类方法和基于深度学习的文本分类方法。
一、传统文本分类
传统文本分类一般分为人工特征工程阶段和分类器。特征工程决定模型上限,分类器逼近模型上限。
流程:读取数据→清洗数据→特征提取→模型训练→模型评估
特征工程:文本预处理(文本分词、去停用词)→文本表示(向量空间模型)和特征提取
1、文本预处理
2、文本表示(长文本表示、短文本表示、词表示):向量化从而便于机器学习
文本数字化——向量空间模型
词袋模型:将字符串视为一个 “装满字符(词)的袋子” ,袋子里的 词语是随便摆放的。而两个词袋子的相似程度就以它们重合的词及其相关分布进行判断。
举个例子,对于句子:“我们这些傻傻的路痴走啊走,好不容易找到了饭店的西门”。
我们先进行分词,将所有出现的词储存为一个词表。然后依据 “词语是否出现在词表中” 可以将这句话变为这样的向量:
[1,0,1,1,1,0,0,1,…]
词表:[我们,你们,走,西门,的,吃饭,旅游,找到了,…]
其中向量的每个维度唯一对应着词表中的一个词。可见这个向量的大部分位置是0值,这种情况叫作“稀疏”。为了减少存储空间,我们也可以只储存非零值的位置。
向量空间模型主要步骤:
(1)将文本的基本语言单位(字、词、词组、短语)抽取,组成特征项,用tn表示
(2)将tn按在文本中的重要性给出权重wn
(3)将文本抽象为(t1,w1,t2,w2,……,tn,wn)简化为(w1,w2,……,wn)即为文本的向量 空间模型。
向量空间模型权值wn计算
(1)布尔权值:wn可取值1/0表示该特征是否在文本中出现。
(2)词频权值:wn用特征在文档中出现的频数表示
(3)TF/IDF权值
对词袋子模型的改进:TF-IDF
TF(Term Frequency)词频,IDF(Inverse Document Frequency)逆文档频率,表示一个词的大小与常见词的反比
第一步,计算词频
TF=某词在文章中出现的次数,考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。
TF = 某词在文章中出现的次数/文章的总次数
第二步,计算逆文档频率
这时,需要一个语料库(corpus),用来模拟语言的使用环境。
逆文档频率(IDF)=log(语料库的文档总数/包含该词的文档数+1)
如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数。
第三步,计算TF-IDF:TF-IDF=TF*IDF
可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。
二、基于深度学习的文本分类
传统做法主要问题的文本表示是高维度高稀疏的,特征表达能力很弱,而且神经网络很不擅长对此类数据的处理;此外需要人工进行特征工程,成本很高。而深度学习最初在之所以图像和语音取得巨大成功,一个很重要的原因是图像和语音原始数据是连续和稠密的,有局部相关性。应用深度学习解决大规模文本分类问题最重要的是解决文本表示,再利用CNN/RNN等网络结构自动获取特征表达能力,去掉繁杂的人工特征工程,端到端的解决问题。
1、文本数字化——文本的分布式表示
向量空间模型没有任何理由的将词编码为唯一不同的数字,单纯的将两个词绝对的表示,完全没有考虑词与词之间的语义关系。但我们知道,词与词之间存在语义关系,我们希望语义相近的两个词在编码上也相近。
文本分布式表示(distributed representation)又称为“词向量(word embedding)”,它将一个词表示为一个低维、稠密的向量,它能使得语义上相近的词的词向量也相近(即向量之间的距离小)。文本的分布式表示的核心思想是一个词的语义由它经常一起出现的词决定。
基于计数的文本的分布式表示
基于预测的文本分布式表示:工作是给定前n个词预测第n+1个词是什么词(看成多分类问题,所以重点是构建一个分类器)。Word2Vec提出了两个训练模式:CBOW和Skip-gram。
https://zhuanlan.zhihu.com/p/77726136
2、深度学习文本分类模型
https://blog.csdn.net/zwqjoy/article/details/97039552?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158797583919725219951438%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=158797583919725219951438&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-2