文本挖掘主要技术研究摘要:Web技术的发展日新月异,与此同时,因特网上的文本信息愈积愈多,浩如烟海。如何从这些海量文本数据挖掘出潜在的、有价值的信息,已经成为越来越多人的研究重点。本文主要介绍了文本挖掘的基本方法,包括文本特征提取、特征子集选取、文本分类、文本聚类等,并对这些方法的改进进行了分析。在此基础上,介绍了文本挖掘在当今一些领域的应用。关键词:文本挖掘特征提取特征子集选取文本分类文本聚类应用ResearchofMajorTechnologiesinTextMining【Abstract】WiththerapiddevelopmentofWebtechnology,textinformationontheInternethasatremendousgrowth.HowtodigoutthepotentialandvaluableinformationfromthetextinformationontheInternethasbecomethefocusofmanypeople'sresearch.Thispaperdescribesthebasicmethodsoftextmining,includingtextfeatureextraction,featuresubsetselection,textcategorization,textclustering,etc.,itmakessomeanalysisonhowtoimprovesomeofthesemethods.Inaddition,itintroducestheapplicationinsomefieldswithtextminingtechnology.【Keywords】textmining,featureextraction,featuresubsetselection,textcategorization,textclustering,application1、文本挖掘概述文本挖掘[1](TextMining,TM),又称为文本数据挖掘(TextDataMining,TDM)或文本知识发现(KnowledgeDiscoveryinTexts,KDT),是指为了发现知识,从大规模文本库中抽取隐含的、以前未知的、潜在有用的模式的过程[2]。它的主要用途是从原本未经使用的文本中提取出未知的知识。但是文本挖掘也是一项非常困难的工作,因为它必须处理那些本来就模糊而且非结构化的文本数据,所以它是一个多学科混杂的领域,涵盖了信息技术、文本分析、模式识别、统计学、数据可视化、数据库技术、机器学习以及数据挖掘等技术[3]。本文主要从文本挖掘的特征提取、文本分类、聚类等方面对文本挖掘技术进行全面的分析。2、文本特征提取与数据库中的结构化数据相比,Web文档具有有限的结构,或者根本就没有结构。即使具有一些结构,也是着重于格式,而非文档内容。不同类型文档的结构也不一致。此外,文档的内容是人类所使用的自然语言,计算机很难处理其语义。文本信息源的这些特殊性使得现有的数据挖掘技术无法直接应用于其上。我们需要对文本进行预处理,抽取代表其特征的元数据。这些特征可以用结构化的形式保存,作为文档的中间表示形式。文本特征指的是关于文本的元数据,分为描述性特征,例如文本的名称、日期、大小、类型等;以及语义性特征,例如文本的作者、机构、标题、内容等。描述性特征易于获得,而语义性特征则较难得到。W3C近来制定的XML[4]、RDF[5]等规范提供了对Web文档资源进行描述的语言和框架。在此基础上,我们可以从半结构化的Web文档中抽取作者、机构等特征。特征表示[6]是指以一定的特征项(如词条或描述)来代表文档信息,特征表示模型有多种,常用的有布尔逻辑型、向量空间型、概率型等。近年来应用较多且效果较好的特征表示法是向量空间模型(VectorSpaceModel,VSM)法[7]。在VSM中,将每个文本文档d看成是一组词条(T1,T2,,,Tn)构成,对于每一词条Ti,都根据其在文档d中的重要程度赋予一定的权值Wi,可以将其看成一个n维坐标系,W1,W2…Wn为对应的坐标值,因此每一篇文档都可以映射为由一组词条矢量张成的向量空间中的一点,对于所有待挖掘的文档都用词条特征矢量(T1,W1(d),T2,W2(d)…Tn,Wn(d))表示。这种向量空间模型的表示方法,可以将d中出现的所有单词作为Ti,也可以将d中出现的所有短语作为Ti,从而提高特征表示的准确性。Wi(d)一般被定义为Ti在d中出现率tfi(d)的函数,常用的有布尔函数,平方根函数,对数函数,TFIDF函数等。3、文本特征子集选取构成文本的词汇数量是相当大的,因此表示文本的向量空间的维数也相当大,可以达到几万维,因此需要进行维数压缩的工作。目前对文档特征所采用的特征子集[8]选取算法一般是构造一个评价函数,对特征集中的每一个特征进行独立的评估,这样每个特征都获得一个评估分,然后对所有的特征按照其评估分的大小进行排序,选取预定数目的最佳特征作为结果的特征子集。一般用的评估函数[9]有几率比(Oddsratio)、信息增益(InformationGain)、期望交叉熵(ExpectedCrossEntropy)、互信息(MutualInformation)、词频(WordFrequency)等,限于篇幅,本文并不详细介绍。4、文本分类分类[10](CategorizationorClassification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。分类是事先定义好类别,类别数不变。分类器需要由人工标注的分类训练语料训练得到,属于有指导学习范畴。本文介绍了常用的分类算法,其中对朴素贝叶斯和KNN算法进行了详细的介绍。4.1朴素贝叶斯贝叶斯分类是一种统计学分类方法,它基于贝叶斯定理,公式如下:)()()|()|(APBPBAPABP图1朴素贝叶斯分类流程图它可以用来预测类成员关系的可能性,给出文本属于某特定类别的概率,分类时根据预测结果将该样本分到概率最高的类别中去即可。朴素贝叶斯分类模型训练的过程其实就是统计每一个特征在各类中出现规律的过程,从理论上,讲贝叶斯分类的出错率最小,就试验结果来看,朴素贝叶斯在大型的数据集上表现出来难得的速度和准确度。朴素贝叶斯分类的正式定义如下:1、设},...,,{21maaax为一个待分类项,而每个a为x的一个特征属性。2、有类别集合},...,,{21nyyyC。3、计算)|(),...,|(),|(21xyPxyPxyPn。4、如果)}|(),...,|(),|(max{)|(21xyPxyPxyPxyPnk,则kyx。朴素贝叶斯分类器(nativeBayes)假设特征对于给定类的影响独立于其它特征,即特征独立性假设。对文本分类来说,它假设各个单词Wi和Wj之间两两独立。设训练样本集分为k类,记为C={C1,C2,…,Ck},则每个类Ci的先验概率为P(Ci),i=1,2,…,k,其值为Ci类的样本数除以训练集总样本数n。对于新样本d,其属于Ci类的条件概率是)|(dCPi。根据贝叶斯定理,Ci类的后验概率为)|(dCPi;)()()|()|(dPCPCdPdCPiii(1)P(d)对于所有类均为常数,可以忽略,则式(1)简化为:)()|()|(iiiCPCdPdCP(2)为避免P(Ci)等于0,采用拉普阿斯概率估计:||||||1)(ciiDCDcCP(3)式中:C为训练集中类的数目,DCi为训练集中属于类Ci的文档数,DC为训练集包含的总文档数。在特殊情况下,训练样本集中各类样本数相等,此时类的先验概率相等,式(2)可以简化:)|()|(iiCdPdCP(4)朴素贝叶斯分类器将未知样本归于类i的依据如下:.,...,2,1)},()|(max{arg)|(kjCPdCPdCPjji(5)文档d由其包含的特征词表示,即d=(w1,…,wj,…,wm),m是d的特征词个数d,wj是第j个特征词,由特征独立性假设,则得mjijimiCPCPdCP121)|()|),...,,(()|((6)式中:)|(ijCP表示分类器预测单词wj在类Ci的文档中发生的概率。因此式(2)可转换为||1)|()(()|(djijiiCPCPdCP(7)为避免式(7)中)|(ijCP等于0,可以采用拉普拉斯概率估计。有两种方法计算)|(ijCP,即文档型计算公式和词频型计算公式。(1)文档型:不考虑单词在文档中的出现频次,仅考虑单词在文档中是否出现,0表示未出现,1表示出现,依式(8)计算:||2)|)((1)|(cijijDCwdocNCwP(8)式中:)|)((ijCwdocN为Ci类文本中出现特征wj的文本数。(2)词频型:考虑单词在文档中出现的频次,依式(9)计算:||1),(||),(1)|(vkikijijCwTFVCwTFCwP(9)式中:V表示特征词表中总单词数,TF(wj,Ci)表示单词wj在类Ci的所有文档中出现的频次之和。[11]4.2K近邻分类K-nearestneighbor图2KNN决策过程图KNN分类算法的主要思想是:先计算待分类样本与已知类别的训练样本之间的距离或相似度,找到距离或相似度与待分类样本数据最近的K个邻居;再根据这些邻居所属的类别来判断待分类样本数据的类别。如果待分类样本数据的K个邻居都属于一个类别,那么待分类样本也属于这个类别。否则,对每一个候选类别进行评分,按照某种规则来确定待分类样本数据的类别[12]。我们采用欧氏距离来确定样本的相似性。欧氏距离的计算公式为:niiyxyxd12)(),(KNN以简单和高鲁棒性而被广泛应用于机器学习和数据挖掘领域,被证实是向量空间模型(VSM)下最好的文本分类方法之一。然而KNN算法有其固有的缺点,当训练样本集过大或特征过多时,KNN算法的效率会明显下降[13]。鉴于此,卜凡军等提出了基于向量投影的PKNN算法[14]。4.3KNN改进算法PKNNKNN算法的计算量主要花费在分类阶段:每次对一个待分类样本分类时,都要计算其与所有训练样本的距离,如果对大量高维数据进行分类,那么计算开销将是非常大的。因此,基于iDistance[15]降维思想和向量投影理论的改进KNN的PKNN算法,能够快速准确地选取很小的训练样本库,可以大大提高效率。PKNN算法流程(1)读入训练样本Yi(i=1,2,…,n):由式(3)求出训练样本的中心M。(2)根据式(1)计算各训练样本点与中心点M的欧氏距离,可得距离M的最远点Ymax。(3)根据文中的方法求出各训练样本点在MYmax上的投影距离Di(i=1,2,…,n),(-|MYmax|Di|MYmax|),并对Di排序。(4)读入一个待分类点x,求x在向量max上的投影距离Dx。(5)采用二分搜索的方法搜索获得训练样本中Di与Dx最近的n1个点。(6)通过计算这n1个点与x的欧氏距离获得最近的K个点,根据这k个点的类别属性得出x所属的类。(7)读入下一个待分类点,循环步骤(4)~(6)。4.4决策树DecisionTree决策树(DecisionTree)是用于分类和预测的主要技术,它着眼于从一组无规则的事例推理出决策树表示形式的分类规则,采用自顶向下的递归方式,在决策树的内部节点进行属性值的比较,并根据不同属性判断从该节点向下分支,在决策树的叶节点得到结论。因此,从根节点到叶节点就对应着一条合理规则,整棵树就对应着一组表达式规则。基于决策树算法的一个最大的优点是它在学习过程中不需要使用者了解很多背景知识,只要训练事例能够用属性即结论的方式表达出来,就能使用该算法进行学习[16]。5、文本聚类5.1聚类概述聚类是根据数据的不同特征,将其划分为不同的数据类。它的目的是使得属于同一类别的个体之间的距离尽可能的小,而不同类别上的个体间的距离尽可能的大。聚类方法包括统计方法、机器学习方法、神经网络方法