这篇论文也是基于文本的关键词对文档进行聚类,但是与之前先对关键词聚类然后把文档映射到对应关键词从而实现文档聚类的方式不同,这里是直接对文档按照关键词计算距离,然后以增量的方式加入后续文档,故这里的聚类数目不需要在之前指定。
下面是本文的一些要点:
1、 衡量一个词的权重函数
w(t): w:term->weight
如果t是停用词,那么w(t)=0;如果t是关键词,那么w(t)=1;其他情况w(t)=a,0<=a<=1
目前对于一篇文档的表示有两种观点:
-一些具有区分度的值或特征
-可以用关键词或停用词来衡量
最后经过对比,认为从文档中抽取得到的关键词对文档表征最好。当然,如果能够抽取文档的主题词,那效果更好,不过一般很难抽取出主题词,因为这需要对整个文本进行分析。
2、 基于关键词的聚类
在基于关键词聚类时,是根据每篇文档的关键词创建类。
假设C是聚类最后得到的结果,C={C1,C2…Cn},其中每一个Ci都是由不包含在已有类别中的文档进行初始化,在初始化之后该类别不断迭代最终趋于稳定,在每次迭代时都有一个状态C(i,j)代表类别Ci的第j个状态。
每个类别的特征向量都是一个键值对<关键词,权重>。如果KD是文档D的关键词集合,KCi是类别Ci的关键词集合,KC(i,j)是类别Ci的第j个状态的情况,对于类别Ci的迭代过程如下:
第一步是初始化,如果一个文档D不属于任何已有类别,产生新类别,以D初始化,文档D称为种子文档,KD是文档D的关键词集合,对类别KC(i,0)初始化。
第二步是对类别扩张,在类别中加入相关的文档,衡量相关性时是考虑如果文档中出现的关键词属于KC(i,0)的情况就加入,这样得到类别Ci的下一个状态C(i,1)。针对加入到类别中的文档,把他们的关键词集合加入到类别的关键词集合中,注意这个过程只进行一次。
第三步是类别削减,针对与类别C(i,j)相似性较低的文档,需要从类别中删除,最后当不再删除文档时该类别就达到了稳定状态。
最后当没有新的类别产生时,整个聚类过程就结束了。
总的说来,一开始类别扩大时是暴力式的,一下子包括很多文档,然后再慢慢从中删除。在类别扩大时最重要的应该是类别初始化时的关键词,因为这直接关系到加入进来的文档。遗憾的是作者并没有在这里说明计算文档与类别之间的距离的方式,这个阈值该如何设定也没有加以说明。
3、 实验结论
首先对所有文档进行分词,得到短语,然后从这些短语中抽取一定量的词作为关键词。
经过对比,作者发现关键词抽取比例在30%-60%之间时文档的聚类效果最好。