(注意: 大家下载我的程序源码以后,可能需要从网络上下载一个新的ictclas3.0包,然后覆盖原工程文件中的ictclas3.0组件,可能是因为ictclas3.0的license许可,一份ictclas3.0包只可以在一台电脑中使用,目前已经有网友遇到了类似的问题。)
前言:
园子里有很多人对聚类算法感兴趣,在GOOGLE检索里比较靠前的有
以及洞庭散人根据上面这篇蛙蛙博文用C++语言实现的k-means算法。 基于kmeans 的文本聚类
那么读者会纳闷,既然有了上面的资料,我是否还有什么必要在这里嚼别人嚼过的馍,来显摆一个C++菜鸟的拙劣代码。。。
那么我就先来说说我这版k-means 与以上两个版本的不同吧。
以上两个版本,着重点在于 Kmeans聚类算法本身的实现,也就是蛙蛙和洞庭散人分别用了C#和C++语言实现了Kmeans算法,而称不上是真正意义上的文本聚类:1。他们没有嵌入分词组件,只是自己粗糙地写了个以空格作为分隔符的分词函数。2。他们没有真正意义上的语料库。他们的待聚类文本是自己写的几句话。
而我这版kmeans,并不是侧重于实现Kmeans算法本身的实现,而且借助于数据挖掘领域著名的开源组件weka来实现聚类算法。我的侧重点在于实现通用的文本预处理模块。所谓文本预处理包括分词-》去除停用词=》建立词袋子模型=》特征词选择=》建立文档向量模型(VSM)模型。最后将测试文本的VSM模型写成weka所要求的数据格式arff数据格式。我所强调的是提供一个开源的框架,只要完成我框架中所满足的要求配置就可以用此框架完成文本预处理工作,将训测试文档集合转化成arff数据格式然后调用weka,使用weka完成文本聚类工作