使用NLTK中的VADER模型进行数据的分析

恬静的小魔龙 2020-12-22 09:51:03 10616

本文是使用Python和开源自然语言工具包(NLTK)的情感分析系列的第三篇。在本文中,我们将研究NLP分析情感的技术。

除了文本语料库外,NLTK还包括预先训练过的模型Vader。Vader情感词汇模型,主要针对社交媒体上的情感分析。让我们看看它是如何工作的。

如果你曾经有给别人1-10分范围进行打分的经历,那么你很可能已经对NPS(评分)系统做出了贡献,通过这种评分系统,可以找到适合的客户,因为你打分9-10分的人,很可能是品牌的拥护者,会不断的购买、消费并且告诉别人的感受。

在NPS的范围内,诋毁者是以0-6的分数来评价别人的。他们不快乐,经常通过负面的语言来发泄他们的不满。7-8的值被认为是被动的、满意的和中性的.

情绪分析可以给NPS提供洞察力,但不需要我们的观众直接进行调查。情绪分析可以通过评估人们在社交媒体或公共论坛上对你的评价来帮助你找到推动者和反对者。

在上一篇我们讨论了NLP的文本数据集和通过收集Reddit讨论中的帖子和评论来创建自定义数据集的技术。

在本文中,我们将研究NLP分析的技术。

Vader情感分析器

Vader于2014年开发,Vader(“价觉词典”和“情感推理者”)是一个经过预先训练的模型,它使用基于规则的价值观来调整社交媒体的情绪。

它评估一条信息的文本,并给你一个评估,不仅积极和消极,以及这种情绪的强度。

它使用它可以计算的术语:

  • Negations --一个修饰词,它颠倒了短语的意思(“不伟大”)。
  • Contractions -否定,但更复杂(“不是很好”)。
  • Punctuation -增加强度(“太棒了!”)
  • Slang-如“有点”、“还行”或“一般”。

它甚至能够理解缩写词(“LOL”)和表情符号(❤)。

评分是属于每个类别的文本所占比例的比率。语言不是黑白的,所以很少能看到一个完全肯定或完全消极的分数。由于这种模式已经为社交媒体进行了预培训,它应该非常适用于用户在Reddit上发表的评论。

让我们首先从Reddit检索到的注释中查看一个示例。

Comments[116].body     # Output: 'This is cool!'

# If you haven’t already, download the lexicon
nltk.download('vader_lexicon')

# Initialize the VADER sentiment analyzer
from nltk.sentiment.vader import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()
analyzer.polarity_scores(comments[116].body)

这一分析的结果是:

{'neg': 0.0, 'neu': 0.436, 'pos': 0.564, 'compound': 0.3802}

在Reddit上,有这样一个帖子:“这很酷!”是高度赞扬。

我们下载了(nltk.download('vader_lexicon'))和进口(from nltk.sentiment.vader import SentimentIntensityAnalyzer)Vader情感分析器,并使用它从评论集(analyzer.polarity_scores(comments[116].body))进行文本分析.

如果polarity_scores给出了否定词、中性词和正词的数值。这个compound值反映了总体情绪,从-1非常消极和+1是非常积极的。

在Reddit上所有评论的整体情绪

让我们来看一下这篇文章的整体情绪,而不仅仅是一个评论。有119条评论要分析,我们会把它们放到一起里来统计。

len(comments)  # Output: 119

# Initializing a dictionary to keep tally of results
result = {'pos': 0, 'neg': 0, 'neu': 0}
for comment in comments:
    score = analyzer.polarity_scores(comment.body)
    if score['compound'] > 0.05:
        result['pos'] += 1
    elif score['compound'] < -0.05:
        result['neg'] += 1
    else:
       result['neu'] += 1

print(result)

产出如下:

{'pos': 65, 'neg': 25, 'neu': 29}

我们所了解到的是,对于这篇文章,总体上的评论是积极的。

如果您开始使用这样的模型来分析您自己的帖子,那么您可能希望对阈值进行向上或向下的调整。

例如,只看复合分数+/-0.5而不是0.05,就会凸显出更极端的观点。

你能用这些信息做什么?如果你试图优先考虑如何与你的社区接触,你可能会看到积极的评论,并给予他们作为你的支持者的认可。

如果你想赢回那些诋毁你的人,你可能会把注意力集中在负面分数上,看看你能否从他们的评论中找到建设性的反馈,以改善你的服务或个人外联工作,以解决特定的客户问题。

下一章

正如你所看到的,我们可以从不同的来源获取一篇文章,并做一个快速的分析来理解积极和消极的情绪。

这是了解产品、服务或内容是否受欢迎的有用反馈。

它还有助于确定社区参与的优先次序。

下一章,我们可以考虑用Vader分析NLTK情绪的利弊

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
恬静的小魔龙
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区