mahout读书笔记 -- 聚类(6)

来源:互联网 发布:中国贸易条件数据 编辑:程序博客网 时间:2024/06/04 18:42

本部分主要关注文档向量化

VSM(vector space model)是文档向量化的通用方法,其做法是对于要向量化的所有文档,取出所有至少出现过一次的词,为每个词分配一个数字,这样对于每个文档,其向量就是每个词的出现次数组成的一个列表,词的出现次数就是术语term frequency,即TF,这个向量是一个sparse vector,因为1个文档所包含的词远小于所有文档包含的词

由于某些词在所有文档中都高频出现,如a,the等,这些词被称为stop words,如果不加处理,计算两个文档相似性时,这些词就起主要作用从而无法区分文档,解决方法是采用TF-IDF,其中的IDF是包含这个词的文档数的倒数,IDF不会关心每篇文档包含了多少次这个词,只关心是否包含

实际使用中,因为IDF可能十分小,这样算出来的值太小后影响精度,会对IDF进行处理后再和TF相乘,最终的结果是:

IDF= log( N/DF)

W = TF * log( N/DF)

其中N是文档总数,DF是Document Frequency即包含词的文档数

TF-IDF的一个问题是没有考虑词之间的关联性,LSI(latent semantic indexing)可以解决这一问题,但mahout目前并没有实现,而是采用了n-gram方法处理

成组的词就叫n-gram,2个叫2-gram,依此类推

n-gram有个问题是有大量无意义的组合,需要剔除,采用log-likelihood,在mahout里边DictionaryVectorizer可以实现这一功能,有个疑问是中文能否支持,有机会要研究下