如何用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)

相关推荐

  • debug D命令如何查看指定地址及其之后的128字节的内容

    技术debug D命令如何查看指定地址及其之后的128字节的内容debug D命令如何查看指定地址及其之后的128字节的内容,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

    攻略 2021年11月11日
  • javascript内存泄漏有哪些原因

    技术javascript内存泄漏有哪些原因本篇内容介绍了“javascript内存泄漏有哪些原因”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年11月20日
  • 什么是java非公平锁

    技术什么是java非公平锁这篇文章主要介绍“什么是java非公平锁”,在日常操作中,相信很多人在什么是java非公平锁问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是java非公平锁”

    攻略 2021年10月20日
  • xamarin发布ios(xamarin ios移动开发实战)

    技术Xamarin.iOS真机测试报错的示例分析这篇文章将为大家详细讲解有关Xamarin.iOS真机测试报错的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Xamarin.i

    攻略 2021年12月21日
  • Python全栈推导式和生成器怎么实现

    技术Python全栈推导式和生成器怎么实现本篇内容主要讲解“Python全栈推导式和生成器怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python全栈推导式和生成器

    攻略 2021年12月2日
  • C语言中字符串反转怎么实现

    技术C语言中字符串反转怎么实现这篇文章主要介绍C语言中字符串反转怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码实现#include
    #include <string

    攻略 2021年11月11日