做数据挖掘的最常见的就是要对文档向量化,而向量化表示中最常见的就是TFIDF了。那么对于海量数据我们该如何计算呢?本文讲解一下使用Hadoop计算TFIDF值的步骤,在其它地方也有不少这方面的介绍,本文仅供参考。
在本地进行TFIDF计算需要三步:
1. 统计数据集中独立词的个数,并统计它们的IDF;
2. 对每个文档统计每个独立词出现的次数TF;
3. 用独立词的IDF与每个文档中独立词的TF进行交,得到每个文档中每个独立词的TFIDF。
在Hadoop上需要是四步MapReduce:
1. 统计得到记录 DocID ItemID TF
2. 统计ItemID IDF
3. 上面两个结果进行相交得到,DocID ItemID TFIDF
4. 对第三步的结果进行合并得到 DocID ItemID1 TFIDF1 ItemID2 TFIDF2 …
当然这两种方法进行之前都要先对文档进行分词。