毕设开发手记(三)

      这是开始做核心算法的第二天,主要实现STING层次聚类算法。这算法单独实现倒简单,可毕设要求的是文本聚类,要从文本->预处理->VSM表示->计算权值->成为可以由STING使用的数据。每篇文本中的词都是不定的,文章数也是不定的。要用VSM表示文本,很有难度,在国外网站上找到了个VSM例子:

term-vector-tf-idf

      也就是说,如果文本1表示的向量对应有N个词。这时候引入文本2,文本2多出一个文本1中没有的词。文本2加入后,同样需要在文本1的表示向量中增加这个词。如果文本对应的词作为行标,而文本作为列标构成1个矩阵的话,这个矩阵在加入新文本时是向2个维度动态增长的!

      我琢磨了半天,最后造出了个二维hash矩阵个诡异数据结构。果然很好用,矩阵实现了2个维度的快速查找,并且可以向两个维度动态增长。具体实现就不说了。得益于优秀的APR库,拿C语言编码出这个二维hash矩阵才用了200多行代码~

posted @ 2010-05-05 00:56  紫红的泪  阅读(394)  评论(0编辑  收藏  举报