PIG:为推文赋予价值

时间:2014-03-27 13:37:16

标签: hadoop twitter apache-pig hiveql

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

示例:

  • 列出积极的话:{good,positive,great,...}
  • 列出否定词:{bad,recession,...}
  • 列出不相关的词:{德国,西班牙,奥朗德,奥巴马......}

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

我试着制作这个剧本...... 对不起英文

1 个答案:

答案 0 :(得分:0)

您的脚本应该是什么样子的大纲:

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

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

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

    TweetsRaw = LOAD'...'使用JsonLoader(...);

    ...

    推文= FOREACH ...生成TweetID,文字;

    TokenizedTweets = FOREACH推文生成TweetID,文本,FLATTEN(TOKENIZE(文本))为单词;

    Dictionary = LOAD'...'as(DictWord:chararray,polarity:int);

    Labeled_Words = JOIN TokenizedTweets BY Word,Dictionary BY DictWord;

    GroupedSentiment = GROUP Labeled_Words BY TwitterID,Text;

    结果= FORGACH GroupedSentiment GENERATE FLATTEN(组),SUM(Labeled_Words.polarity)AS率;

    DUMP结果;

相关问题