【问题标题】:PIG : Give value to a tweetsPIG:为推文赋予价值
【发布时间】:2014-03-27 23:56:40
【问题描述】:

我的目标是用 Pig Latin 对推文进行评分。 我有 3 个单词列表用作字典(肯定词、否定词和不相关的词)。 我会用这本词典对推文列表进行评分。我必须分析推文的每个单词。 我必须通过搜索“法国的增长”来评价推文

例子:

  • 列出积极的词:{good,positive,great,...}
  • 列出否定词:{bad,recession,...}
  • 列出不相关的词:{Germany, Spain, Hollande, Obama,...}

一条推文:“法国的增长又回来了,西班牙也回来了”=> 分析每个词: 增长 => 积极,法国 => 积极,再次 => 积极,西班牙 => 不相关 所以这条推文是积极和相关的,因为积极 + 积极 + 积极 + 不相关 = 积极

我试图制作这个脚本...... 对不起英语

【问题讨论】:

  • 你的问题是什么?在 Xplenty 中,我们刚刚为索契冬奥会做了一些 Twitter 分析,包括与您描述的类似的幼稚情绪分析。你在哪里遇到困难?
  • 在编写脚本时
  • 如果答案对您有帮助,请点击绿色复选标记将其标记为“已接受”。

标签: hadoop twitter apache-pig hiveql


【解决方案1】:

你的脚本应该是什么样子的轮廓:

  1. 从 tweeter 流中提取 tweet ID 和文本字段。

  2. 使用 flatten 和 tokenize 在 ID 和文本中添加另一个字段 - 将文本标记为单词(您可以使用简单的空格标记器或更高级的 NLTK 并在新记录中分解每个单词。

  3. 将 (2) 的输出与您的字典相结合,将推文中的每个单词标记为正面、负面或中性/不相关 - 您可能希望使用有符号整数值而不是正/负,这样会更容易你把它们加起来。
  4. 将 (3) 的结果按推文 ID 分组。
  5. 计算每条推文的情绪总和。

    TweetsRaw = LOAD '...' USING JsonLoader(...);

    ...

    Tweets = FOREACH ... 生成 TweetID、文本;

    TokenizedTweets = FOREACH Tweets GENERATE TweetID, Text, FLATTEN(TOKENIZE(Text)) as word;

    字典 = LOAD '...' as (DictWord: chararray, polar: int);

    Labeled_Words = JOIN TokenizedTweets BY Word, Dictionary BY DictWord;

    GroupedSentiment = GROUP Labeled_Words BY TwitterID、文本;

    结果 = FOREACH GroupedSentiment GENERATE FLATTEN(group), SUM(Labeled_Words.polarity) AS rate;

    转储结果;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多