【问题标题】:Calculate TF-IDF of documents using HBase as the datasource使用 HBase 作为数据源计算文档的 TF-IDF
【发布时间】:2012-06-08 17:55:09
【问题描述】:

我想计算存储在 HBase 中的文档的 TF(词频)和 IDF(逆文档频率)。

我也想将计算出的 TF 保存在一个 HBase 表中,同时将计算出的 IDF 保存在另一个 HBase 表中。

你能指导我完成吗?

我已经从Mahout 0.4 中查看了BayesTfIdfDriver,但我没有抢占先机。

【问题讨论】:

  • 驯象仪 0.2?那很古老,从4年前开始。使用0.6,或者即将发布的0.7。
  • @SeanOwen 已修正为 0.4。 Apache 从 0.5 中移除了 HBase 数据存储。所以我使用的是 0.4。
  • 我删除了它 :) 这个想法是真的不需要直接的 HBase 集成。将 Mahout 与 Hadoop 结合使用,将 Hadoop 与 HBase 结合使用。就是这样。
  • @SeanOwen 你能告诉我如何使用 Hadoop 将 HBase 的输入提供给 Mahout。请。
  • 我对这部分代码一无所知。问题是,如何使用 HBase 作为 Hadoop 的输入?这是一个 Hadoop 问题。

标签: hadoop hbase mahout tf-idf


【解决方案1】:

解决方案的大纲非常简单:

  1. 对您的 hbase 表进行字数统计,存储每个单词的词频和文档频率
  2. 在缩减阶段聚合每个单词的词频和文档频率
  3. 给定文档计数,再扫描一次汇总结果,然后根据文档频率计算 IDF。

TF-IDF上的wikipedia page是一个很好的参考,记住公式的细节:http://en.wikipedia.org/wiki/Tf*idf

【讨论】:

    【解决方案2】:

    如果要计算 TF、IDF,则需要创建中间表“TermMatrix”,用于存储带有文档 ID 的术语。 然后您可以使用 TermMatrix 表计算 TFIDF。 它接近实时,但如果您想要实时 TFIDF 输出,那么我建议您也创建“TF”、“IDF”表。

    我写了一篇关于如何使用 HBase 计算 TFIDF 的博客: http://ahikmat.blogspot.kr/2014/07/building-term-matrix-on-hbase.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-14
      • 2017-11-14
      • 2017-04-07
      • 2020-02-14
      • 1970-01-01
      • 2012-04-23
      • 2015-04-17
      • 2019-01-10
      相关资源
      最近更新 更多