【问题标题】:Sentiment analysis on JSON tweets in Hadoop HDFSHadoop HDFS 中 JSON 推文的情感分析
【发布时间】:2013-08-04 00:48:43
【问题描述】:

我使用 Apache Flume 将大量推文通过管道传输到 Hadoop 的 HDFS。我试图对这些数据进行情感分析 - 只是一些简单的开始,比如正面与负面词的比较。

我的问题是,我找到的所有向我展示如何做到这一点的指南都有一个包含正面和负面词的文本文件,然后每条推文都有一个巨大的文本文件。

当我使用 Flume 时,我所有的数据都已经在 Hadoop 中了。当我使用 localhost:50070 访问它时,我可以根据月/日/小时在单独的文件中查看数据,每个文件包含三到四条推文。我每小时可能有 50 个这样的文件。虽然它没有说明任何地方,但我假设它们是 JSON 格式。

考虑到这一点,我该如何对它们进行分析?在我看到的所有编写 Mapper 和 Reducer 的示例中,只有一个文件执行了此操作,而不是大量的小型 JSON 文件集合。我的下一步应该是什么?

【问题讨论】:

    标签: java hadoop sentiment-analysis


    【解决方案1】:

    这个例子应该让你开始 https://github.com/cloudera/cdh-twitter-example

    基本上使用hive外部表来映射你的json数据并使用hiveql查询

    【讨论】:

    • 感谢您的示例。它看起来不错,但它似乎是基本查询,即大多数转发,而不是更深入的情感分析,即负面与正面推文的百分比。我会写一个 map/reduce 来做情绪分析然后查询结果吗?
    • 尝试使用“使用 hive 进行情绪分析”的快速 google - 前 2 个结果似乎相关。我总是首先使用 HiveQL 或 Hive UDF,最后使用 map reduce。如果您使用 3rd 方库进行分析,map reduce 有时是唯一的方法(但 UDF 有时可以工作)
    【解决方案2】:

    当您想要处理目录中的所有文件时,您只需指定目录的路径作为您的 hadoop 作业的输入文件,这样它就会将该目录中的所有文件视为其输入。

    例如,如果您的小文件位于 /user/flume/tweets/.... 目录中,那么在您的 hadoop 作业中,您只需指定 /user/flume/tweets/ 作为您的输入文件。

    如果您想每隔一小时自动执行一次分析,您需要编写一个 oozie 工作流。

    hive中的情感分析可以参考以下链接

    https://acadgild.com/blog/sentiment-analysis-on-tweets-with-apache-hive-using-afinn-dictionary/

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2020-11-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 2020-01-21
      • 2020-08-14
      相关资源
      最近更新 更多