首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NLTK的Vader评分文本示例

NLTK的Vader评分文本示例
EN

Stack Overflow用户
提问于 2018-08-06 12:07:04
回答 1查看 1.3K关注 0票数 4

我希望有人纠正我对维德如何得分文本的理解。我读过关于这个过程这里的解释,但是在重新创建它描述的过程时,我无法将测试语句的复合分数与Vader的输出相匹配。让我们说,我们有一句话:

代码语言:javascript
复制
"I like using VADER, its a fun tool to use"

维德学到的单词是“喜欢”(+1.5分)和“乐趣”(+2.3)。根据文档,这些值被求和(so +3.8),然后使用以下函数将其归一化为0到1之间的范围:

代码语言:javascript
复制
(alpha = 15)
x / x2 + alpha 

就我们的数字而言,这应该是:

代码语言:javascript
复制
3.8 / 14.44 + 15 = 0.1290

然而,VADER输出返回的复合分数如下:

代码语言:javascript
复制
Scores: {'neg': 0.0, 'neu': 0.508, 'pos': 0.492, 'compound': 0.7003}

我的推理哪里出了问题?相似的问题已经问过好几次了,但是还没有给出一个VADER分类的实际例子。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-18 21:46:11

只是你的正常化是错的。在代码中定义了该函数:

代码语言:javascript
复制
def normalize(score, alpha=15):
"""
Normalize the score to be between -1 and 1 using an alpha that
approximates the max expected value
"""
norm_score = score/math.sqrt((score*score) + alpha)
return norm_score

所以你有3.8/sqrt(3.8*3.8 + 15) = 0.7003

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51707282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档