开发情绪分析评分模型的代码问题

时间:2014-11-25 02:54:43

标签: r analysis sentiment-analysis

我正在尝试对Twitter数据进行一些情绪分析。我有一个字典(afinn_list),如下所示

  1. good 5
  2. bad -5
  3. awesome 6
  4. 我已经能够生成一个包含每个匹配单词位置的字符变量。现在我想生成一个得分变量,它将包含这些匹配的相应分数。我很难想出一个for循环逻辑。

      

    类(afinn_list)

    [1]“data.frame”

      

    vPosMatches< - match(words,afinn_list $ word)

         

    vPosMatches

    [1] NA NA NA NA 1104 NA NA NA NA NA NA NA NA NA NA NA NA 1836 NA

    如果这个问题太天真,我很抱歉。我只是想用R来学习情绪分析。

1 个答案:

答案 0 :(得分:0)

情绪分析是一项复杂的任务。假设您已从twitter清理数据并将其存储为每个单元格中的1个单词,我猜您现在缺少的是使用您的评分“词典”wordsafinn_list中对已清理的数据进行评分。

假设你的单词是afinn_list,就像这样

dictionary <-data.frame(grade=c('bad','not good', 'ok', 'good','very good'), score=1:5))
#     grade score
1       bad     1
2  not good     2
3        ok     3
4      good     4
5 very good     5

和你的mock_data(从twitter清理数据)是

mock_data<-data.frame(data=rep(x=c('good','bad','rubbish','hello','very good'),10))
#       data
1      good
2       bad
3   rubbish
4     hello
5 very good
6      good

您将在2个数据框之间进行合并。在SQL世界中,它将是一个左外连接。在R中,它使用函数merge实现,并提供您希望加入的列和all.x=True

因此,您的代码将如下所示

   merge(mock_data, dictionary, by='data', all.x=TRUE)

我希望你回答这个问题。

干杯