文本聚类简介

一.简介

文本聚类是数据挖掘中数据挖掘技术中的一种,是把文本文档资源按照指定的相似性标准划分为若干类别,使得每一类文档相似性达到指定标准,并且为每一类别给出容易让人理解的具体描述,是一个发现文本集包含内容的方法。

     

二.文本聚类流程:

1.将原始文本进行预处理,抽取词条,词条选择等其他处理

2.建立模型,例如vsm,概率模型等其他模型

3.将维度进行约减,需要用到的算法有层次算法,划分算法,等其他算法。

4.得到聚类结果.

三.文本预处理:

1.先用Ictclas对文本文档进行处理,将文章处理成由词语组成的字符串

2.用ictclas对字符串中的词语进行筛选,选出好词。输出一个由词语组成的字符串集合。

四.建立模型:

1.构造词袋子模型  将上一步得到的词集合进行进一步处理,词袋子模型可以是map<string,pair<int,int>>,string为词语,第1个int为文章编号,第2个为词频,即词出现的次数。

2.tf-idf   tf是对于某一个词在一篇文章中出现的次数,df是在整个文档集出现的次数,idf是逆向文件频率,是一个判断词语普遍性的度量。某一个词语的idf可以由总文件数目除以有该词语的文件的数目,再将得到的商取对数,从而得到。再将tf和idf相乘得到一个值,将他与一个阀值比较,把它作为判断是否该丢掉该词,若低于阀值,则丢掉该词。

这个应该适用于各个文档的主题相差比较大,关键字重复不多的,从而过滤掉常见的词语,保留重要的词语。

3.建立模型 建立一个模型将所有词语以文档编号进行划分,文档编号相同的在一起,便于后面的聚类。

五.文本聚类算法:

①k-means   随机选择k个文档,设为质心,然后遍历剩下的所有文档,分别计算与这k个文档的相似度,量化为距离(我猜的),指定到距离近的文档质心旁边,然后重新计算质心位置(这个不知道怎么完成),重复以上的步骤,直到质心无变化。

②层次聚类算法

AGENES:把每个样本点当做一个类簇,找两个距离最近的簇,组合成一个新的簇,重复步骤,直至了类簇数达到想要分的簇的个数,便完成了分类。

      我在网上看的可以将层次聚类和划分式聚类组合进行聚类,比如先进行不完全的agenes处理文档集合,形成一部分类簇,再用k-means进行余下的分类处理。

③基于密度的聚类算法   之前说的层次聚类和划分聚类适合处理呈凸状的文档集合(即文档集合可以分为数量,并且相似度相差较大的几个集合,集合内相似度相差不大)。对于其他的分布不定的文档集合,用基于密度的聚类比较适合。在整个样本文档空间里,可以过滤掉把稠密样本分割的低密度样本,获得稠密度样本点。

Dbscan(看的陈国庭写的基于密度的聚类)在一个文档空间中,遍历所有的文档,所有在半径所画的圆里的文档个数大于密度阀值的文档设为核心对象。然后循环所有的文档,如果一个文档为核心对象,且包含其他的核心文档,则被标记为一个类;如果不是核心文档,则被标记为噪音。

 

 

以上的具体的聚类算法我只是按照我自己的理解写的,只能停留在知道大概的流程,而且估计还有一些地方都不对,所以我打算再看看一些在网上的源码加深一下理解。

 

 

 ID www911116

阅读更多
个人分类: Data Mining
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭