法律状态公告日
法律状态信息
法律状态
2018-10-12
未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20120704 终止日期:20171020 申请日:20091020
专利权的终止
2012-07-04
授权
授权
2010-09-01
实质审查的生效 IPC(主分类):G06F17/30 申请日:20091020
实质审查的生效
2010-04-14
公开
公开
技术领域
本发明属于信息处理技术领域,是一种数据挖掘方法,具体涉及一种Web文档在线聚类方法。
背景技术
聚类过程实质上是一个映射过程。若给定对象集O={o1,o2,...,on},类集为π={c1,c2,...,cm},则聚类是如下映射:
且满足:
随着互联网的日益推广和普及,网络信息的迅速增加,传统的搜索引擎往往会返回大量的搜索结果而使用户很难找到自己真正需要的信息。Web文档聚类能够较好地解决这一问题,它将搜索引擎的返回结果按内容分类。这样,用户就可以缩小挑选范围从而快速找到感兴趣的信息。
Web文档聚类是一种无指导的文档分类,它将一个文档集分成若干个簇(子集),同一簇内文档内容的相似性尽可能的大,而不同簇之间文档内容的相似性尽可能的小。相比一般的聚类,Web文档在线聚类有两个特点:一是聚类对象是Web文档,具有非数值型和非结构化的特点;二是聚类时间要满足用户在线检索的要求,因而算法应具有实时性和交互性的特点。
Web文档聚类的研究主要有三种方法:基于链接的聚类、基于文本相似度的聚类及基于用户反馈的聚类。目前,比较常见的搜索引擎结果聚类方法主要是基于文档相似度的聚类算法。基于文档相似度的聚类思想是将文档抽象表示为向量,并采用向量夹角余弦来表示文档与文档之间的相似度,然后按照一定的聚类算法(如K-means、STC)对文档进行聚类。
以上提到的方法适用于英文信息检索系统,而中文的词语之间没有间隔,必须依赖于分词系统,所以以上方法对于中文信息检索的效果并不好。本发明提出一种在线式的、无需中文分词的中文Web文档聚类算法。
发明内容
本发明要解决的技术问题:
1、目前一般的Web文档聚类方法适用于英文信息检索系统,而中文的词语之间没有间隔,必须依赖于分词系统,而词库的质量对聚类效果会有至关重要的影响。本发明采用无分词技术,可以避免词库的影响,同时提高聚类性能;
2、Web文档在线聚类的执行时间要满足用户在线检索的要求,因而要求算法应具有较强的实时性和交互性。
本发明采用的技术方案:
系统处理流程分以下几个步骤:1)Web文档预处理,实现对搜索引擎返回结果中非中文字符的删除以及替换处理操作;2)利用GSA实现Web文档中公共字串的提取,然后将公共字串作为文档的特征;3)计算待聚类文档两两之间的相似度,形成文档相似度矩阵;4)利用相似度矩阵,并使用聚类算法对文档进行聚类;5)聚类描述和标签的提取,即对每个类别赋予一个能够描述该类的类标签,这个标签既能概括本类的内容,又能将本类与其他类区别开来。
本发明取得的有益效果:
在线聚类方法在性能、聚类标签生成和聚类时间效果方面具有较明显优势:
1、与和传统的文本聚类系统相比,本文所提出的中文Web文档在线聚类方法不需要分词,而是采用GSA算法来提取Web文档之间公共子串的方法确定文档的特征,进而作为聚类方法中的特征向量进行聚类计算。解决了Web文本作为聚类对象非数值型和非结构化的问题。
2、本发明求解字符串之间公共子串采用的是后缀树(Suffix Tree)算法的一个变种——GSA算法,其时间复杂度为0(n),且空间复杂度是S(n)。其在空间复杂性上要优于后缀树算法。
3、传统的层次聚类方法(无论是凝聚层次聚类还是分裂层次聚类),复杂度都很高,而可扩展性较差,因而不适合大量文档的聚类。为此,本发明对传统的凝聚层次聚类进行了优化,取得了较好的聚类效果。
4、本发明使用权重最大的公共子串作为聚类的标签,不仅能够保留语义成分,而且使得聚类标签的可读性强。
下面,将通过实验验证本发明取得的效果:
聚类算法的主要指标包括CH值、聚类标签有效性及聚类效果。
CH函数的定义如下:
其中,nj是第j个聚类中的文本数量;uj是第j个聚类的质心;u是所有参与聚类文本的质心;xi是相应某个聚类里的第i个文本;k是聚类的总数目;n是文本的总数目。CH函数是聚类结果中类内距离与类间距离的综合体现,CH值越大,代表聚类效果越好。
实验中使用五个关键字来进行检索,下表是本文提出的模型与中文分词+tf*idf模型的CH值比较:
通过实验发现:基于公共子串的模型获得的CH值比分词+tf*idf模型要大,其中“姚明”和“数据挖掘”的CH值分别提高了5.8、5.4,因此,新的方法在聚类效果上要好于传统方法。
聚类标签的有效性即可读性对于用户而言非常重要,只有具有实际含义的短语才能作为聚类的标签。标签有效性的计算公式是P=M/N,其中,M代表可读性好的标签数目,N代表所有标签的数目。实验结果见附图1,由附图1可知,新方法的短语有效性在0.8-0.95之间,而传统的方法大部分在0.8以下。因此,新方法得到的聚类标签可读性要优于传统模型。
最后,发明对关键词“苹果”在百度查询的前100条结果作为聚类的Web文档,最终的效果见附图2。从附图2可看出,本发明提出的方法能够获得较好的聚类效果。
通过实验结果分析和比较,本发明提出的基于公共子串的中文Web文档在线聚类方法在聚类效果、聚类性能以及在聚类标签可读性等方面相比基于分词的中文聚类算法具有较明显的优势。
附图说明
图1为标签的有效性比较;
图2为输入关键字“苹果”所得的聚类效果;
图3为三个查询词的测试结果(苹果、姚明、数据挖掘);
图4为基于公共子串的中文Web文档在线聚类方法的流程图。
具体实施方式:
1.Web文档预处理
在中文搜索引擎(如百度等)的返回结果中,常常含有一些非中文字符,如英文字符、空格、标点符号或者乱码等。由于本发明研究的重点是中文Web文档聚类,所以在聚类之前,需要对搜索结果中的非中文内容进行替换处理。
预处理阶段主要将这些非中文字符替换成系统预先定义的分隔符。需要替换的非中文字符主要包括:空格、数字、英文大小写字母、中英文标点符号(包括全角和半角)及中文停顿字(例如:“啊”、“的”、“了”等)。预处理后将得到只包含中文字符的搜索引擎结果项,将其作为公共子串提取的输入。
2.基于GSA的公共子串提取
●公共子串(Common Substring,CS):字符串u如果既是字符串S的子串又是字符串T的子串,则字符串u是字符串S和T的一个公共子串。若用Sub(S,u)表示字符串u是字符串S的子串,则字符串S、T的公共子串集Com(S,T)可定义为:
●最长公共子串(Longest Common Substring,LCS):字符串S和T的最长公共子串是指字符串S和T的所有公共子串中长度最大的子串。若字符串u满足:u∈Com(S,T)且则称u为字符串S,T的最长公共子串。
例如:给定2个长度均为4的字符串“abac”、“caba”。它们的公共子串有“”、“a”、“b”、“ab”、“ba”、“aba”和“c”,其中最长公共子串即为“aba”。
公共子串问题的求解,常用的经典算法有动态规划算法和后缀树算法。前者的特点是易于实现但时间复杂度很高;而后者的特点是时间复杂度仅为线性,但实现起来相对困难。本方法采用后缀树(Suffix Tree)算法的一个变种——广义后缀数组GSA算法,实现文本之间的公共子串提取。
采用GSA算法求解字符串之间公共子串的时间复杂度是O(n)。且GSA算法的空间复杂度是S(n),其在空间复杂性上要优于后缀树算法。
定义:
●后缀(Suffix):一个字符串S的后缀,是指从某个特定位置i(i≤S.len(S))开始,直到S最后一个字符的一个串,它是S的一个子串。这个子串可表示为suffix(S,i),即Suffix(S,i)=subString(S,i,len(S)).
●后缀数组(Suffix Array,SA):后缀数组SA与字符串S一一对应。它的每一个元素是S的一个下标。即len(SA)=len(S)且SA[i]∈{1,2,...,len(S)}(1≤i≤len(S)),SA[i]≠SA[j](i≠j)。同时,这个数组还满足:Suffix(S,SA[i])<Suffix(S,SA[i+1]),(1≤i<len(S))
●广义后缀数组(General ized Suffix Array,GSA):若干个字符串S1,S2,...,Sn的广义后缀数组是指使用特殊结束符连接字符串S1,S2,...,Sn后形成新字符串的后缀数组。
举例说明,比如:对于两个字符串S1=“abac”和S2=“caba”。用特殊字符@将其连接起来而得到的字符串为abac@caba。对于字符串abac@caba,共有8个非空后缀,原来的序列和按照字典序进行排序后的序列如下表所示:
非空后缀排序前和排序后
则一维数组SA=[8,6,1,3,7,2,5,4]即为字符串S1和S2的广义后缀数组。
得到两个字符串连接的广义后缀数组之后,依次两两比较相邻子串的最长公共前缀,所有长度大于等于1的最长公共前缀,就是所求的两个字符串的公共子串。
以上求解两个字符串的公共子串算法扩展成N(N>1)个字符串的公共子串求解算法:对于N(N>1)个字符串S1,S2,...SN,将其用N-1个特殊字符(不必两两相异)拼接起来后得到字符串SE=S1a1S2a2...SN-1aN-1SN,其中,ai(1≤i≤(N-1))即为插入的特殊字符,且对所有的ai,Sj,(1≤i≤N-1,1≤j≤N),有构造SE的后缀数组,然后两两比较相邻子串的最长公共前缀,即可得到N个字符串S1,S2,...SN的全部公共子串。
3.文本特征向量模型的建立
在基于文本的信息检索过程,一个文本的特征向量模型是一个由文本中的若干特征所组成的集合。在这个基于公共子串的文本特征向量模型中,每一个文档D可以表示成M个公共子串及其对应权重所组成的特征向量。这里假设:
●待聚类的文本为{D1,D2,…,DN};
●经过过滤处理的公共子串序列为(S1,S2,...Sn-1,Sn);
●函数len(Sk)(k=1,2,…,n)表示字符串Sk的长度;
●函数tf(Sk,Dj)表示公共子串Sk在文本Dj中出现的频率。tf也就是信息检索过程中常常用到的词频(Term frequency);
●函数idf(Sk)表示公共子串Sk的逆文档频率(Inversed document frequency);
●常数N表示搜索引擎返回的结果数目,也就是我们要聚类的文本数目;
●函数df(Sk)表示包含公共子串Sk的文本的数目。
基于以上假设,文档Dj可以表示为向量如下形式:
Dj={w(S1,Dj),w(S2,Dj),...,w(Sn,Dj)},(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))α其中,
在一个文档中,公共子串权重与其长度呈正相关关系,即长度越长其权重越大。在以上公式中,我们对公共子串Sk的长度len(Sk)取α次方,以放大较长公共子串对其权重的影响,具体α的值需要通过实验来确定。
利用上式,计算出全部公共子串的权重后,就可以使用传统的相似度算法,例如cosine相似度算法来计算文本之间的相似度。两个文本相似度的计算公式如下:
4.聚类方法及实现
根据上述提出的文本特征向量模型可以得到文本间的相似度矩阵,如下表所示:
相似度矩阵
上表中,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+1步被归类的文档编号,i=0,1,…。为方便用户的浏览,我们设定聚类后的类别总数不超过20。则聚类方法可以描述如下:(请参见权利要求书4)。
在本方法中,相似度的计算是影响聚类效果的一个关键因素。本发明考虑了公共子串权重与该子串长度成α次方的关系,如果α太大,则较长公共子串的作用会被过分放大,从而影响到聚类效果,所以,α的具体值需要通过实验来获得。α取值从0开始以步长0.1递增到2,分别对不同关键字返回的100个搜索结果进行聚类,关键字包括“苹果”,“姚明”,“数据挖掘”。采用评价参数是类内类间距离比。由类内类间距离比的定义可知,当一个聚类的类内距离越小、类间距离越大时聚类效果最好,所以当类内类间距离比越小时,聚类的结果效果就越好,相应的α值也就越科学。实验结果见附图3。
通过上面三个关键字的测试结果可以看出当α取值区间在[1.2,1.4]的时候,聚类结果的类内类间距离比最小。经过大量实验发现,类内类间距离比最小时对应的α值的平均值是1.3。所以,α取值为1.3。
机译: 公司根据他们为满足业务需求而实施的新IT技术解决方案定义解决方案体系结构。典型的组织以文档形式使用基于文档的解决方案体系结构,称为SAD(解决方案体系结构文档)。没有软件解决方案能够以有意义的方式轻松管理或捕获解决方案体系结构信息的元素。 SAM(解决方案架构管理器)是一种在线软件解决方案,允许公司在Web门户中开发和管理所有解决方案架构。
机译: 基于Web的文档协作的用户在线数据
机译: 基于Web的文档协作的用户在线数据