读书人

Carrot2 聚类算法要略说明

发布时间: 2012-11-05 09:35:12 作者: rapoo

Carrot2 聚类算法概要说明

Carrot2 聚类算法概要说明

一、实验环境:Carrort2
输入数据类型:数组
输入值:

?

?

输出结果为:Clusters:

?

?

[Mining tf=15 tfidf=9.09 ST en, Data tf=12 tfidf=9.46 ST en,  中国上海  tf=10 tfidf=10.12 ST en,  中国上海浦东  tf=5 tfidf=8.52 ST en,  中国上海 浦西  tf=5 tfidf=8.52 ST en, CCSU tf=2 tfidf=4.80 ST en, Crows tf=2 tfidf=4.80 ST en, DMG tf=2 tfidf=4.80 ST en, Glossary tf=2 tfidf=4.80 ST en, Introduction tf=2 tfidf=4.80 ST en, KD tf=2 tfidf=4.80 ST en, Learning tf=2 tfidf=4.80 ST en, Machine tf=2 tfidf=4.80 ST en, Monografias.com tf=2 tfidf=4.80 ST en, Nuggets tf=2 tfidf=4.80 ST en, Practical tf=2 tfidf=4.80 ST en, Techniques tf=2 tfidf=4.80 ST en, Tools tf=2 tfidf=4.80 ST en,  上海  tf=2 tfidf=3.41 en, Norman tf=1 tfidf=2.40 en, Ullman tf=1 tfidf=2.40 en,  上海浦东  tf=1 tfidf=2.40 en, and tf=2 tfidf=4.80 SW ST en, the tf=2 tfidf=4.80 SW ST en, two tf=2 tfidf=4.80 SW ST en, yourself tf=2 tfidf=4.80 SW ST en]  

?

?

2)以上26个关键词中,有的是停词,去除停词后生成矩阵
?
生成非停词的矩阵,这里二维数组的长度为:double[][] tdMatrix = new?double [19][11]

?

矩阵生成策略:tdMatrix[term][snippetIndices[doc]] =
features[term].getSnippetTf()[snippetIndices[doc]] * features[term].getIdf();??

tdMatrix = new Matrix(matrix);//其中Matrix是Jama-1.0.2的包,一个专门生
成矩阵策略的jar工具包。 (TfidfTdMatrixBuildingStrategy. buildTdMatrix)

?

3)根据矩阵,有N多复杂的计算,有兴趣请参阅源码:LsiClusteringStrategy. createClusters();抛开矩阵内部处理不说,有了这些数据,我们也可以编写自已的算法,得出哪些keyword或keywords集合出现在哪些文档中!达到聚类的效果!

1 楼 yajie 2009-05-27 请问你这分词是怎么实现的? 2 楼 wangwanbao 2009-05-27 Carrot2的分词是英文分词,用空格格开。
它把一句话中用空格格开的若干个词当成一个元素。所以用它来聚类的话,请先分好词用空格格开再聚。
当然,替换它的分词系统除外。
3 楼 yajie 2009-05-27 原来是用WhitespaceAnalyzer来分词,对于英文还行,中文就更凑活了。那请问有没有在carrot2使用中文分词的方法? 4 楼 wangwanbao 2009-05-31 基于两点考虑
1、效率
2、无需修改Carrot的源代码。
我在应用中先分好词,放在Lucene中,聚类的时候把分词的结果取出,用空格格开,交给Carrot去处理。 5 楼 yajie 2009-05-31 wangwanbao 写道基于两点考虑
1、效率
2、无需修改Carrot的源代码。
我在应用中先分好词,放在Lucene中,聚类的时候把分词的结果取出,用空格格开,交给Carrot去处理。
上次我问问了maillist,那些个大鼻子老外不回答。
生气啊
看来鼻子大气就粗,得另想办法了。

读书人网 >软件架构设计

热点推荐