首页 文章

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

提问于
浏览
0

我试图对twitter数据做一些情绪分析 . 我有一个字典(afinn_list),如下所示

  • 好5

  • 坏-5

  • 太棒了6

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

class(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 1836 NA

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

1 回答

  • 0

    情绪分析是一项复杂的任务 . 假设你已经从twitter清理你的数据并将其存储为每个单元格中的1个单词,我想你现在缺少的是在 words 中用你的得分"dictionary" 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
    

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

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

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

    我希望你回答这个问题 .

    干杯

相关问题