如何用python实现简单的文本情感分析

技术如何用python实现简单的文本情感分析如何用python实现简单的文本情感分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。很久没在公

如何用python实现简单的文本情感分析,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

很久没有在微信官方账号发布新内容了。这段时间没想到这么多python爱好者关注我。香港真的很激动。

今天给大家带来我刚刚实现的简单多文本情感分析代码,代码环境python3.5。

原理

比如:“这款手机画面优秀,操作比较流畅。但是拍照真的很烂!系统也不好。”

情感词汇

要分析一个句子是积极的还是消极的,最简单最基本的方法就是找出句子中的情感词,积极的情感词如:赞、好、顺、华丽等。以及负面情绪词如:不好、不好、欺骗等。一个正词是1,一个负词是-1。

有两个积极情绪词“好”和“顺利”,一个消极情绪词“不好”。它的情感评分是1.1-1.1=2。显然,这个分数是不合理的。我们一步一步来修改。

程度词

“好”、“流利”和“烂”前面都有程度修饰语。“很好比好或好强,太坏比一点坏强多了。因此,在找到情感词后,要找出是否有程度修改,并给不同的程度一个权重。比如“极端”、“无比”、“太”表示情绪得分*4,“比较”和“只是情绪得分*2”、“只有”和“只有”这些都是*0.5。那么这句话的情感得分是:4*1 1*2-1*4 1=3。

感叹号

你会发现它很烂,后面还有一个感叹号,表示强烈的情感。因此发现感叹号可以是情感值2。那么这句话的情感得分就变成了:4*1 1*2-1*4-2 1=1。

否定词

明眼人一眼就能看出,最后一个“好”并不代表“好”,因为前面有一个“不”字。所以当你找到情绪词的时候,你需要寻找负面的词。比如“不”和“不能”这两个词。并统计这些否定词出现的次数。如果是单数,情感得分会是*-1,但如果是偶数,情感就不会反转,或者*1。在这句话中,我们可以看到“好”之前只有一个“不”,所以“好”的情感价值应该颠倒一下,*-1。

所以这句话的准确情感评分是:4*1 1*2-1*4-2 1*-1=-1

区分阳性和阴性。

接下来,很明显这句话夹杂着赞美,无法用分数来表达。而且这个权重的设置也会影响最终的情感评分,敏感度太高。所以,这句话最后正确的处理就是得到这句话的正分值和负分值(这样负分值也是正的,所以不用用负数)。它们也代表了这句话的情感倾向。所以这个评论应该是“正面评分:6,负面评分:7”

基于子句的情感

更细致一点来说,一个评论的情感得分是由不同的分句相加的,所以要得到一个评论的情感得分,首先要计算评论中每一句的情感得分。本例注释共有四个子句,因此其结构如下([正分数,负分数]): [[4,0],[2,0],[0,6],[0,1]]

以上是使用情感字典进行情感分析的主要过程,算法设计将按照这个思路来实现。

算法设计

第一步:阅读评论数据,对评论造句。

第二步:找到从句的情感词,记录它们是积极的还是消极的,以及它们的位置。

第三步:在情感词前寻找程度词,找到了就停止搜索。为程度词设定权重,并将其乘以情感值。

第四步:在情感词前寻找否定词,找到所有否定词。如果数字是奇数,乘以-1;如果是偶数,就乘以1。

第五步:判断从句尾是否有感叹号。如果有感叹号,找情感词。如果有,相应的's的情感值是2。

第六步:计算一个评论所有子句的情感值,并用数组(列表)记录下来。

第七步:计算并记录所有评论的情感价值。

第八步:分句计算每条评论的积极情绪均值、消极情绪均值、积极情绪方差和消极情绪方差。

实际战斗

这里我参考现有的代码,根据自己的需要对代码做一个简单的修改。这个脚本的运行环境是python3.5,请原谅我使用了2.x

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/94353.html

(0)

相关推荐

  • spring security中的默认登录页源码分析

    技术spring security中的默认登录页源码分析这篇文章主要讲解了“spring security中的默认登录页源码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学

    攻略 2021年11月8日
  • 如何用Python破解wifi密码

    技术如何用Python破解wifi密码如何用Python破解wifi密码,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python真的是无所不能,原因就是因

    攻略 2021年10月25日
  • JAVA8的stream怎么使用

    技术JAVA8的stream怎么使用这篇文章主要讲解了“JAVA8的stream怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA8的stream怎么使用”吧

    攻略 2021年11月30日
  • 怎么写androidinit(android rc文件)

    技术如何进行android启动过程中init.rc文件的浅析本篇文章为大家展示了如何进行android启动过程中init.rc文件的浅析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收

    攻略 2021年12月18日
  • 如何进行mysqlhotcopy 热备工具体验与总结

    技术如何进行mysqlhotcopy 热备工具体验与总结本篇文章给大家分享的是有关如何进行mysqlhotcopy 热备工具体验与总结,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说

    攻略 2021年12月4日
  • 怎么解决Python3.8用pip安装turtle-0.0.2出现错误问题

    技术怎么解决Python3.8用pip安装turtle-0.0.2出现错误问题这篇文章主要讲解了“怎么解决Python3.8用pip安装turtle-0.0.2出现错误问题”,文中的讲解内容简单清晰,易于学习与理解,下面

    攻略 2021年11月10日