我试图对twitter数据做一些情绪分析。我有一本字典(afinn_list),如下所示
我已经能够生成一个字符变量,它包含每个匹配单词的位置。现在我想要生成一个分数变量,它将包含这些匹配的相应分数。我很难想出一个for循环逻辑。
类(Afinn_list)
1 "data.frame“
vPosMatches <- match(words,afinn_list$word) vPosMatches
1 NA 1104 NA 1836 NA
如果这个问题太天真,我很抱歉。我只是试着用R学习情感分析。
发布于 2014-11-25 07:52:18
情感分析是一项复杂的任务。假设您已经清理了来自twitter的数据并将其作为一个单词存储在每个单元格中,我猜您现在所缺少的是用得分“字典”( words afinn_list )在afinn_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您将在两个数据帧之间进行合并。在SQL世界中,它将是一个左外部联接。在R中,它包含了函数merge,并提供了您希望加入的列和all.x=True
因此,您的代码将如下所示
merge(mock_data, dictionary, by='data', all.x=TRUE)我希望你能回答我的问题。
干杯
https://stackoverflow.com/questions/27118051
复制相似问题