我正在使用来自R package sentimentr(通过trinker)的情绪分析函数sentiment_by()。我有一个包含以下列的数据框: 评论评论 月 年 我在数据帧上运行sentiment_by函数,根据年份和月份找到平均极性分数,得到以下值。
review_year review_month word_count sd ave_sentiment
2015 March 8722 0.381686065 0.163440921
2015 April 7758 0.387046768 0.158812775
2015 May 7333 0.389256472 0.149220636
2015 November 14020 0.394711478 0.14691745
2016 February 7974 0.400406931 0.142345278
2015 September 8238 0.379989344 0.141740366
2015 February 7642 0.361415304 0.141624745
2015 December 24863 0.387409099 0.141606892
2016 March 8229 0.389033232 0.138552943
2016 January 10472 0.388300946 0.134302612
2015 August 7520 0.3640285 0.127980712
2016 May 3432 0.422246851 0.125041218
2015 June 8678 0.356612924 0.119333949
2015 January 9930 0.351126449 0.119225549
2016 April 9344 0.397066458 0.111879315
2015 July 8450 0.349963536 0.108881821
2015 October 7630 0.38017201 0.1044298
现在我根据评论单独在数据框上运行sentiment_by函数,然后在结果数据框上运行以下函数,找到基于年份和月份的平均极性分数。
sentiment_df[,list(avg=mean(ave_sentiment)),by="month,year"]
我得到以下结果。
month year avg
January 2015 0.110950199
February 2015 0.126943461
March 2015 0.146546669
April 2015 0.148264268
May 2015 0.143924126
June 2015 0.110691204
July 2015 0.106472437
August 2015 0.118976304
September 2015 0.135362187
October 2015 0.111441484
November 2015 0.137699548
December 2015 0.136786867
January 2016 0.128645808
February 2016 0.129139898
March 2016 0.134595706
April 2016 0.12106743
May 2016 0.142801514
根据我的理解,两者都应该返回相同的结果,如果我错了,请纠正我。我选择第二种方法的原因是因为我需要根据月份和年份以及基于月份来平均极性,并且我不想两次使用该方法,因为它会导致额外的时间延迟。有人可以让我知道我在这里做错了吗?
答案 0 :(得分:2)
这是一个想法:也许第一个函数是从单个句子中取平均值,第二个函数是从“平均情绪”中取平均值,这已经是平均值。因此,平均值的平均值并不总是等于各个元素的平均值。