一种基于公共子串的中文Web文档在线聚类方法

文档序号:6584485阅读:126来源:国知局

专利名称::一种基于公共子串的中文Web文档在线聚类方法
技术领域
:本发明属于信息处理
技术领域
,是一种数据挖掘方法,具体涉及一种Web文档在线聚类方法。
背景技术
:聚类过程实质上是一个映射过程。若给定对象集0={0l,o2,...,on},类集为={Cl,c2,...,cm},则聚类是如下映射且满足(1)c,.;0(/=l,2,...,/)(2)|Jc,=0随着互联网的日益推广和普及,网络信息的迅速增加,传统的搜索引擎往往会返回大量的搜索结果而使用户很难找到自己真正需要的信息。Web文档聚类能够较好地解决这一问题,它将搜索引擎的返回结果按内容分类。这样,用户就可以縮小挑选范围从而快速找到感兴趣的信息。Web文档聚类是一种无指导的文档分类,它将一个文档集分成若干个簇(子集),同一簇内文档内容的相似性尽可能的大,而不同簇之间文档内容的相似性尽可能的小。相比一般的聚类,Web文档在线聚类有两个特点一是聚类对象是Web文档,具有非数值型和非结构化的特点;二是聚类时间要满足用户在线检索的要求,因而算法应具有实时性和交互性的特点。Web文档聚类的研究主要有三种方法基于链接的聚类、基于文本相似度的聚类及基于用户反馈的聚类。目前,比较常见的搜索引擎结果聚类方法主要是基于文档相似度的聚类算法。基于文档相似度的聚类思想是将文档抽象表示为向量,并采用向量夹角余弦来表示文档与文档之间的相似度,然后按照一定的聚类算法(如K-means、STC)对文档进行聚类。以上提到的方法适用于英文信息检索系统,而中文的词语之间没有间隔,必须依赖于分词系统,所以以上方法对于中文信息检索的效果并不好。本发明提出一种在线式的、无需中文分词的中文Web文档聚类算法。
发明内容本发明要解决的技术问题1、目前一般的Web文档聚类方法适用于英文信息检索系统,而中文的词语之间没有间隔,必须依赖于分词系统,而词库的质量对聚类效果会有至关重要的影响。本发明采用无分词技术,可以避免词库的影响,同时提高聚类性能;2、Web文档在线聚类的执行时间要满足用户在线检索的要求,因而要求算法应具有较强的实时性和交互性。本发明采用的技术方案系统处理流程分以下几个步骤l)Web文档预处理,实现对搜索引擎返回结果中非中文字符的删除以及替换处理操作;2)利用GSA实现Web文档中公共字串的提取,然后将公共字串作为文档的特征;3)计算待聚类文档两两之间的相似度,形成文档相似度矩阵;4)利用相似度矩阵,并使用聚类算法对文档进行聚类;5)聚类描述和标签的提取,即对每个类别赋予一个能够描述该类的类标签,这个标签既能概括本类的内容,又能将本类与其他类区别开来。本发明取得的有益效果在线聚类方法在性能、聚类标签生成和聚类时间效果方面具有较明显优势1、与和传统的文本聚类系统相比,本文所提出的中文Web文档在线聚类方法不需要分词,而是采用GSA算法来提取Web文档之间公共子串的方法确定文档的特征,进而作为聚类方法中的特征向量进行聚类计算。解决了Web文本作为聚类对象非数值型和非结构化的问题。2、本发明求解字符串之间公共子串采用的是后缀树(SuffixTree)算法的一个变种——GSA算法,其时间复杂度为O(n),且空间复杂度是S(n)。其在空间复杂性上要优于后缀树算法。3、传统的层次聚类方法(无论是凝聚层次聚类还是分裂层次聚类),复杂度都很高,而可扩展性较差,因而不适合大量文档的聚类。为此,本发明对传统的凝聚层次聚类进行了优化,取得了较好的聚类效果。4、本发明使用权重最大的公共子串作为聚类的标签,不仅能够保留语义成分,而且使得聚类标签的可读性强。下面,将通过实验验证本发明取得的效果聚类算法的主要指标包括CH值、聚类标签有效性及聚类效果。CH函数的定义如下CH=-^;^-^-^/r"ce5—S"乂|w7_w乂=i""ce『=ZZ卄x,.—w乂乂=1Z=1其中,nj是第j个聚类中的文本数量;Uj是第j个聚类的质心;u是所有参与聚类文本的质心;Xi是相应某个聚类里的第i个文本;k是聚类的总数目;n是文本的总数目。CH函数是聚类结果中类内距离与类间距离的综合体现,CH值越大,代表聚类效果越好。实验中使用五个关键字来进行检索,下表是本文提出的模型与中文分词+t,idf模型的CH值比较<table>tableseeoriginaldocumentpage6</column></row><table>通过实验发现基于公共子串的模型获得的CH值比分词+t,idf模型要大,其中"姚明"和"数据挖掘"的CH值分别提高了5.8、5.4,因此,新的方法在聚类效果上要好于传统方法。聚类标签的有效性即可读性对于用户而言非常重要,只有具有实际含义的短语才能作为聚类的标签。标签有效性的计算公式是P=M/N,其中,M代表可读性好的标签数目,N代表所有标签的数目。实验结果见附图l,由附图1可知,新方法的短语有效性在0.8-0.95之间,而传统的方法大部分在0.8以下。因此,新方法得到的聚类标签可读性要优于传统模型。最后,发明对关键词"苹果"在百度查询的前100条结果作为聚类的Web文档,最终的效果见附图2。从附图2可看出,本发明提出的方法能够获得较好的聚类效果。通过实验结果分析和比较,本发明提出的基于公共子串的中文Web文档在线聚类方法在聚类效果、聚类性能以及在聚类标签可读性等方面相比基于分词的中文聚类算法具有较明显的优势。图1为标签的有效性比较;图2为输入关键字"苹果"所得的聚类效果;图3为三个查询词的测试结果(苹果、姚明、数据挖掘);图4为基于公共子串的中文Web文档在线聚类方法的流程图。具体实施例方式1.Web文档预处理在中文搜索引擎(如百度等)的返回结果中,常常含有一些非中文字符,如英文字符、空格、标点符号或者乱码等。由于本发明研究的重点是中文Web文档聚类,所以在聚类之前,需要对搜索结果中的非中文内容进行替换处理。预处理阶段主要将这些非中文字符替换成系统预先定义的分隔符。需要替换的非中文字符主要包括空格、数字、英文大小写字母、中英文标点符号(包括全角和半角)及中文停顿字(例如"啊"、"的"、"了"等)。预处理后将得到只包含中文字符的搜索引擎结果项,将其作为公共子串提取的输入。2.基于GSA的公共子串提取參公共子串(CommonSubstring,CS):字符串u如果既是字符串S的子串又是字符串T的子串,则字符串u是字符串S和T的一个公共子串。若用Sub(S,u)表示字符串u是字符串S的子串,则字符串S、T的公共子串集Com(S,T)可定义为Com(&"=IVw,5W6(S,w)a5W6(r,w)}.參最长公共子串(LongestCommonSubstring,LCS):字符串S和T的最长公共子串是指字符串S和T的所有公共子串中长度最大的子串。若字符串u满足uGCom(S,T)且WeGK5;7),则称u为字符串S,T的最长公共子串。例如给定2个长度均为4的字符串"abac"、"caba"。它们的公共子串有""、"a"、"b"、"ab"、"ba"、"aba"和"c",其中最长公共子串即为"aba"。公共子串问题的求解,常用的经典算法有动态规划算法和后缀树算法。前者的特点是易于实现但时间复杂度很高;而后者的特点是时间复杂度仅为线性,但实现起来相对困难。本方法采用后缀树(SuffixTree)算法的一个变种——广义后缀数组GSA算法,实现文本之间的公共子串提取。采用GSA算法求解字符串之间公共子串的时间复杂度是0(n)。且GSA算法的空间复杂度是S(n),其在空间复杂性上要优于后缀树算法。定义參后缀(Suffix):—个字符串S的后缀,是指从某个特定位置i(i《S.len(S))开始,直到S最后一个字符的一个串,它是S的一个子串。这个子串可表示为suffix(S,i),即Suffix(S,i)=substring(S,i,len(S)).參后缀数组(SuffixArray,SA):后缀数组SA与字符串S—一对应。它的每一个元素是S的一个下标。即len(SA)=len(S)且SA[i]G{1,2,,len(S)}(1《i《len(S)),SA[i]#SA[j](i#j)。同时,这个数组还满足Suffix(S,SA[i])<Suffix(S,SA[i+l]),(1《i<len(S))參广义后缀数组(GeneralizedSuffixArray,GSA):若干个字符串SnS2,...,Sn的广义后缀数组是指使用特殊结束符连接字符串S2,...,Sn后形成新字符串的后缀数组。举例说明,比如对于两个字符串SI="abac"和S2="caba"。用特殊字符@将其连接起来而得到的字符串为abacOcaba。对于字符串abac0caba,共有8个非空后缀,原来的序列和按照字典序进行排序后的序列如下表所示非空后缀排序前和排序后<table>tableseeoriginaldocumentpage8</column></row><table>则一维数组SA=[8,6,1,3,7,2,5,4]即为字符串S丄和S2的广义后缀数组。得到两个字符串连接的广义后缀数组之后,依次两两比较相邻子串的最长公共前缀,所有长度大于等于1的最长公共前缀,就是所求的两个字符串的公共子串。以上求解两个字符串的公共子串算法扩展成N(N〉1)个字符串的公共子串求解算法对于N(N〉1)个字符串31,52,...3,,将其用N-l个特殊字符(不必两两相异)拼接起来后得到字符串SE=SiaiS2a2...SN—a—A,其中,ai(l《i《(n-l))即为插入的特殊字符,且对所有的ai,Sj,(1《i《N-l,1《j《N),有",.g&。构造se的后缀数组,然后两两比较相邻子串的最长公共前缀,即可得到N个字符串SpS2,...SN的全部公共子串。3.文本特征向量模型的建立在基于文本的信息检索过程,一个文本的特征向量模型是一个由文本中的若干特征所组成的集合。在这个基于公共子串的文本特征向量模型中,每一个文档D可以表示成M个公共子串及其对应权重所组成的特征向量。这里假设參待聚类的文本为(D1,D2,…,DN);參经过过滤处理的公共子串序列为(SpS2,...Sn—pSn);參函数len(Sk)(k=1,2,,n)表示字符串Sk的长度;參函数tf(Sk,Dj)表示公共子串Sk在文本Dj中出现的频率。tf也就是信息检索过程中常常用到的词频(Termfrequency);參函数idf(Sk)表示公共子串Sk的逆文档频率(Inverseddocumentfrequency)5參常数N表示搜索引擎返回的结果数目,也就是我们要聚类的文本数目;參函数df(Sk)表示包含公共子串Sk的文本的数目。基于以上假设,文档Dj可以表示为向量如下形式Dj=(w(S丄,Dj),w(S2,D」),,w(Sn,D」)},(j=1,2,…,N)其中w(Sk,Dj)(k=1,2,...,n)是公共子串Sk相对于文本Dj的权重。参考TF*IDF提出权重计算方公式如下w(Sk,Dj)=log(1+tf(Sk,Dj))*idf(Sk)*(len(Sk))a其中,在一个文档中,公共子串权重与其长度呈正相关关系,即长度越长其权重越大。在以上公式中,我们对公共子串Sk的长度len(Sk)取a次方,以放大较长公共子串对其权重的影响,具体a的值需要通过实验来确定。利用上式,计算出全部公共子串的权重后,就可以使用传统的相似度算法,例如cosine相似度算法来计算文本之间的相似度。两个文本相似度的计算公式如下《《',^4.聚类方法及实现根据上述提出的文本特征向量模型可以得到文本间的相似度矩阵,如下表所示相似度矩阵<table>tableseeoriginaldocumentpage9</column></row><table>上表中,Di(1《i《N)为N个结果项(需要聚类的文档),Sim(i,j)(1《i,j《N)表示结果项Di和Dj之间的相似度。得到相似度矩阵后,下一步可采用层次聚类对结果项进行聚类。使用层次聚类可以使总的分类数目较少,便于用户迅速定位所需信息。同时,每一类还可以再细分。传统的层次聚类方法(无论是凝聚层次聚类还是分裂层次聚类),复杂度都很高,而可扩展性较差,因而不适合大量文档的聚类。为此,本发明对传统的凝聚层次聚类进行了优化。假设要聚类的文档总数为N,N>0,Ni表示第i+1步未被归类的文档数,i=0,1,…;集合Ti表示第i个聚类,Ti中的元素为第i+l步被归类的文档编号,i二0,1,。为方便用户的浏览,我们设定聚类后的类别总数不超过20。则聚类方法可以描述如下(请参见权利要求书4)。在本方法中,相似度的计算是影响聚类效果的一个关键因素。本发明考虑了公共子串权重与该子串长度成a次方的关系,如果a太大,则较长公共子串的作用会被过分放大,从而影响到聚类效果,所以,a的具体值需要通过实验来获得。a取值从O开始以步长0.1递增到2,分别对不同关键字返回的100个搜索结果进行聚类,关键字包括"苹果","姚明","数据挖掘"。采用评价参数是类内类间距离比。由类内类间距离比的定义可知,当一个聚类的类内距离越小、类间距离越大时聚类效果最好,所以当类内类间距离比越小时,聚类的结果效果就越好,相应的a值也就越科学。实验结果见附图3。通过上面三个关键字的测试结果可以看出当a取值区间在[1.2,1.4]的时候,聚类结果的类内类间距离比最小。经过大量实验发现,类内类间距离比最小时对应的a值的平均值是1.3。所以,a取值为1.3。权利要求一种基于公共子串的中文Web文档在线聚类方法,其特征在于步骤如下(1)利用广义后缀数组(GeneralizedSuffixArray,GSA)算法提取Web文档中的公共子串;(2)利用提取的公共子串,建立文档特征向量模型,并基于该模型计算Web文档的两两相似度,得到相似度矩阵;(3)基于该相似度矩阵,采用改进的层次聚类算法实现Web文档聚类;(4)在聚类过程中,将同一个聚类集合中权重最大的公共子串作为该聚类的标签。2.根据权利要求1所述的一种基于公共子串的中文Web文档在线聚类方法,其特征在于所述的步骤(1)中利用GSA算法的提取过程为假设共有N篇文档,每篇文档可看做一个字符串,则共有N个字符串S2,...S,,其中N大于l,将这些字符串用N-l个特殊字符拼接起来后得到字符串SE=SiaiS2a2...SN—1%—^w,其中ai即为插入的特殊字符,i的取值范围为1《i《(N-l);且对所有的ai,Sj有",,其中i,j的取值范围为1《i《N-l,1《j《N;构造SE的后缀数组,然后两两比较相邻子串的最长公共前缀,这两个相邻子串的所有长度大于等于1的最长公共前缀,就是所求的两个字符串的公共子串,以此类推即可得到S2,...SN的全部公共子串。3.根据权利要求l所述的一种基于公共子串的中文Web文档在线聚类方法,其特征在于所述的步骤(2)中的建立的文档特征向量模型为首先假设待聚类的文本为{Dl,D2,,DN};经过过滤处理的公共子串序列为S2,...Sn—pSn;函数len(Sk)表示字符串Sk的长度,其中k二1,2,…,n;函数tf(Sk,Dj)表示公共子串Sk在文本Dj中出现的频率;函数idf(Sk)表示公共子串Sk的逆文档频率;常数N表示搜索引擎返回的结果数目,也就是要聚类的文本数目;函数df(Sk)表示包含公共子串Sk的文本数目;建立文档Dj的特征向量模型Dj=(w(SpDj),w(S2,Dj),...,w(Sn,D》},(j=1,2,...N),即公共子串及其对应权重所组成的特征向量;其中,w(Sk,Dj)为串Sk相对于文本Dj的权重,其中k二l,2,...,n;iVw(Sk,Dj)=l0g(l+tf(Sk,Dj))*idf(Sk)*(len(Sk))a其中,=log(l十^^);a的值通过实验确定为1.3。4.权利要求1所述的一种基于公共子串的中文Web文档在线聚类方法,其特征在于所述的步骤(3)中的改进的层次聚类算法过程为,假设要聚类的文档总数为N,其中NX),Ni表示第i+l步未被归类的文档数,i为整数且i>O,集合1\表示第i个聚类,1\中的元素为第i+l步被归类的文档编号,i为整数且i>0;聚类方法如下第一步聚类包括四步i.此时未归类的初始文档数N。=N,取初始阈值为相似度矩阵中最大相似度的一半,即《=丄max(5Vot(",.,",));2'.J=1,2,...WJii.对任意两个文档DpDj,若Sim(Di,D》>e。,则将D」放入集合T。,即T。=TOU{Di,Dj};iii.如果T。中存在相互之间相似度小于阈值9。的文档,即对所有的Di,DjGT。,i<j,若存在Sim(Di,Dj)<e。,则从T。中取出DpDj中下标较大者,即T。=T。-{Dj},直至T。中不存在这样的Di,Dj;iv.此时将T。中的所有元素归为一类,并取这些元素的公共子串中出现次数最多者,作为该类的标签,至此,本步聚类完成;从第二步聚类开始,推广到第n步,可表示如下n)第n步,n为整数且n^2,此时未归类的文档数iV,iV-l5l7;i,其中|Ti|为Ti中w-2元素的数目,若乂^!,则取《=丄(版(A,D,)),其中,^(仇"2w-yT';对任意的Di,DjGT,重复第一步聚类中的ii,iii,iv步,可以得到i;—"并完成第n步聚类,接着进入第n+l步的聚类(同n步聚类的过程);直至iV"—,<^,则将尚未被归类的文档归为一类,标签为"其他",完成聚类。5.权利要求1所述的一种基于公共子串的中文Web文档在线聚类方法,其特征在于为方便用户的浏览,设定所述的步骤(3)中的聚类类别的总数不超过20。全文摘要随着互联网上的信息激增,搜索引擎在搜索和定位信息的应用中变得日益重要。Web文档聚类可自动将搜索引擎的返回结果按不同主题进行分类,帮助用户缩小查询范围并快速定位所需信息。Web文档在线聚类的特点是一方面要满足Web文档非数值型和非结构化的特点,另一方面聚类时间要满足用户在线检索的要求。根据这两个特点,提出一种基于公共子串的中文Web文档在线聚类方法,该方法步骤如下(1)首先对搜索引擎返回的前N项查询结果进行预处理,实现对搜索引擎返回结果中非中文字符的删除及替换操作;(2)利用GSA实现Web文档中公共子串的提取;(3)利用提取的公共子串,参考TF*IDF提出权重计算方公式,建立文档特征向量模型;(4)基于该模型计算Web文档的两两相似度,得到相似度矩阵;(5)基于该矩阵,采用改进的层次聚类算法实现Web文档聚类。(6)聚类描述和标签的提取。该方法在性能、聚类标签生成和聚类时间效果方面具有较明显优势。文档编号G06F17/30GK101694670SQ200910236138公开日2010年4月14日申请日期2009年10月20日优先权日2009年10月20日发明者张辉,杨高,王德庆,王晗申请人:北京航空航天大学;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1