需要澄清sentimentr(trinker)的情感函数返回的平均极性分数的计算
Need clarification on the calculation of average polarity score returned by sentiment function of sentimentr(trinker)
我正在使用 R 包 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
根据我的理解两者应该return相同的结果,如果我错了请纠正我。我选择第二种方法的原因是因为我需要根据月份和年份以及月份来平均极性,我不想两次使用该方法,因为它会导致额外的时间延迟。有人可以让我知道我在这里做错了什么吗?
这里有一个想法:也许第一个函数是从单个句子中取平均值,第二个函数是从 "ave sentiment" 中取平均值,这已经是一个平均值了。因此,平均值的平均值并不总是等于单个元素的平均值。
我正在使用 R 包 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
根据我的理解两者应该return相同的结果,如果我错了请纠正我。我选择第二种方法的原因是因为我需要根据月份和年份以及月份来平均极性,我不想两次使用该方法,因为它会导致额外的时间延迟。有人可以让我知道我在这里做错了什么吗?
这里有一个想法:也许第一个函数是从单个句子中取平均值,第二个函数是从 "ave sentiment" 中取平均值,这已经是一个平均值了。因此,平均值的平均值并不总是等于单个元素的平均值。