一:文本分类的处理大致分为文本预处理、文本特征提取、分类模型构建等。和英文文本处理分类相比,
中文文本的预处理是关键技术。
1:文本预处理(解决特征空间高维性、语义相关性和特征分布稀疏)
1.1中文分词技术
为什么分词处理?因为研究表明特征粒度为词粒度远远好于字粒度,其大部分分类算法不考虑词序信息,基于字粒度的损失了过多的n-gram信息。
中文分词主要分为两类方法:基于词典的中文分词和基于统计的中文分词。
1.1.1:基于词典的中文分词:核心是首先建立统一的词典表,当需要对一个句子进行分词时,首先将句子
拆分成多个部分,将每一个部分与字典一一对应,如果该词语在词典中,分词成功,否则继续拆分匹配直到成功
所以:字典,切分规则和匹配顺序是核心。
1.12:基于统计的中文分词方法:
统计学认为分词是一个概率最大化问题,即拆分句子,基于语料库,统计相邻的字组成的词语出现的概率,相邻的词出现的
次数多,就出现的概率大,按照概率值进行分词,所以一个完整的语料库很重要。
1.2:去除停用词
建立停用词字典,目前停用词字典有2000个左右,停用词主要包括一些副词、形容词及其一些连接词。通过维护一个停用词表,实际上是一个特征提取的过程,本质 上是特征选择的一部分。
1.3:文本特征提取
1.3.1:词袋模型:
思想:建立一个词典库,该词典库包含训练语料库的所有词语,每个词语对应一个唯一识别的编号,利用one-hot文本表示。
文档的词向量维度与单词向量的维度相同,每个位置的值是对应位置词语在文档中出现的次数,即词袋模型(BOW))
问题:1:容易引起维度灾难问题,语料库太大,字典的大小为每个词的维度,高维度导致计算困难,每个文档包含的词语数少于词典的总词语数,导致文档稀疏。2:仅仅考虑词语出现的次数,没有考虑句子词语之间的顺序信息,即语义信息未考虑
1.3.2:TF-IDF文本特征提取
前面的博客整理过,这里再提一下吧,加强记忆:
利用TF和IDF两个参数来表示词语在文本中的重要程度
TF是词频:指的是一个词语在一个文档中出现的频率,一般情况下,每一个文档中出现的词语的次数越多词语的重要性更大,例如BOW模型一样用出现次数来表示特征值,即出现文档中的词语次数越多,其权重就越大,问题就是在长文档中 的词语次数普遍比短文档中的次数多,导致特征值偏向差异情况。
TF体现的是词语在文档内部文档内部文档内部的重要性(重要的话说三遍)
IDF是体现词语在文档间文档间文档间的重要性(还是三遍),即如果某个词语出现在极少数的文档中,说明该词语对于文档的区别性强,对应的特征值高,IDF值高,IDFi=log(|D|/Ni),D指的是文档总数,Ni指的是出现词语i的文档个数,很明显Ni越小,IDF的值越大。
最终TF-IDF的特征值的表达式为:TF-IDF(i,j)=TFij*IDFi
1.3.3:基于词向量的特征提取模型:
想基于大量的文本语料库,通过类似神经网络模型训练,将每个词语映射成一个定维度的向量,送个维度在几十到化百维之间,每个向量就代表着这个词语,词语的语义和语法相似性和通过向量之间的相似度来判断。
常用的word2vec主要是CBOW和skip-gram两种模型,由于这两个模型实际上就是一个三层的深度神经网络,其实NNLM的升级,去掉了隐藏层,由输入层、投影层、输出层三层构成,简化了模型和提升了模型的训练速度,其在时间效率上、语法语义表达上效果明显都变好。word2vec通过训练大量的语料最终用定维度的向量来表示每个词语,词语之间语义和语法相似度都可以通过向量的相似度来表示。
1.3.4:特征提取:
文本表示的特征提取对应特征项的选择和特征权重计算两部分,特征选择的思想是根据某个评价指标独立的对原始特征项(词项)进行评分排序,从而选择得分最高的一些特征项,过滤掉其余的特征项,常用的评价有文档频率、互信息、信息增益、X……2统计剂量的那个。特征权重主要是经典的TF-IDF方法及其扩展方法,主要思路是一个词的重要度与在类别内的词频成正比,与所有类别出现的次数成反比。
2:分类模型
2.1:NB模型
这里NB模型前面的博客详细说过,这里略过;
2.2:随机森林模型(RF)
随机森林是一种集成学习方法,这里主要说一下RF的构造过程:
(1)假设数据样本集共有N个数据,数据的特征维度为M,采用有放回的随机抽取n个数据样本,并随机选择m个特征,形成单棵树的训练数据集和特征集。
(2)根据(1)中的数据集和m个特征,基于信息增益或者互信息等规则建立决策树,每棵树尽量生成且不做剪枝操作。
(3)根据设置的决策树个数K,循环重复步骤(1)和(2),直至生成K棵决策树。
RF通过随机选择样本和特征来构建多棵决策树,所以决策树的构建是关键步骤,构造决策树的根节点的分裂标准或者度量标准来作为判断属性分类样例的能力的大小,然后根据根节点的每个可能的属性值进行递归操作,直至最后回归树完成。
ID3决策树算法选择根节点的依据是信息增益;C4.5是根据信息增益率;还有的是根据基尼指数。
总结一句话就是:根据节点选择指标选择最优属性作为分类属性后递归的扩展决策树的分支构造一颗完整决策树
2.3:SVM分类模型
思想:任何一个分类问题可以认为求解数据集划分超平面问题,即使该问题非线性,也可以利用核函数将其转化为线性划分的问题,SVM算法最终优化目标就是极大化最大分类间隔;
大部分SVM都是基于拉格朗日变换和二元优化得到参数的解,从而得到SVM分类模型。
但是现实分类问题一般都是非线性可分的,对于这类问题我们需要利用SVM中核函数来解决。核函数就是将低维度数据空间映射到高维度数据空间,这样之后就使得其线性可分了,高维度的向量内积运算通过核函数来直接得到,避免在高维度数据空间的计算带来时间成本的增高。
SVM近些年在研究其应用以及多分类问题,比如SVM模型研究信用评估模型,基于SVM模型提高图形检索关联度,新型的多分类SVM模型Twin-KSVC,进一步提高多类别SVM模型的泛化能力。
2.4:KNN分类模型
思想:类别相似的样本距离也较为靠近,从训练集中找到和特定样本距离最近的k个样本,统计k个样本的类别,通过投票得到特定样本的类别。具体流程太简单了我就不在说了;KNN就一个模型参数K,k的大小影响文本分类的结果,一般情况较大的k值能够减小噪声的影响,一个较好的K值可以通过交叉验证来获得防止过拟合,研究结合决策树思想将每个训练样本和测试样本结合起来,提出一种搞扩展的KNN算法,还有基于参数自动参数调节来解决错误数据问题的高容错率KNN算法。
2.5:神经网络分类模型
这里主要有BP神经网络算法,输入层为原始的文本特征项,隐藏层为原始特征的映射,输出层为类别层与层之间通过权值相连,然后利用梯度下降法得到权值的更新法则。
CNN也可以用于文本分类,需要先将原始的文本进行预处理,得到其词向量作为CNN的输入。