(一)Extend
package extend;
/*
基于CCD的微博词扩展
将CCD原节点中的所有词加入到微博中
*/
// 从filename这个文件读取分好词的微博,然后构建ArrayList<HashMap<String, Integer>> HM_Seg结构
// ArraryList每个元素(HashMap<String, Integer>)代表一条微博。微博中的每个词是一个<String, Integer>对
// String表示这个单词,Integer是这个词在这句中出现的次数
public void expandSeg(String filepath)
(二)Integrate
package integrate;
/*
根据相同词比率,按一定的threshold进行合并
*/
// 按设置的threshold对上面的extend得到的 ArrayList<HashMap<String, Integer>> 进行合并,
// 得到:HashMap<HashMap<String, Integer>, Integer> eqlClass
// 对每条微博添加了一个域Integer用于指示这条微博属于哪个等价类
public int combine1(double threshold)
// 得到等价类的微博集以后,计算微博词的TF IDF。
// 得到:ArrayList< Pair<String, Pair<TF, IDF>>,
// Integer> >
// 为每个单词增加了一个Pair<TF, IDF>
(三)Cluster
package cluster
/*
使用Hierarchical Clustering Model
*/
// 不断在root下构建新的一层结点,得到层级聚类的结果
void hieCLuster()
...
/*
使用java-ml 中的聚类算法
*/
// K-means
// 构建java-ml需要使用的数据结构dataset<instance>
// instance<double[], Object>表示一条微博,double[]是这条微博的attributes,Object是指示这条微博
// dataset是instance的集合
// 得到:dataset []clusters
dataset [] KMeans(dataset weibo);