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

相关推荐

  • JSP怎样连接Mysql数据库

    技术JSP怎样连接Mysql数据库这篇文章主要为大家展示了“JSP怎样连接Mysql数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSP怎样连接Mysql数据库”这篇文

    攻略 2021年11月1日
  • Hive数据倾斜的示例分析

    技术Hive数据倾斜的示例分析这篇文章将为大家详细讲解有关Hive数据倾斜的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、离线数据的主要挑战:“数据倾斜”首先介绍 “数据倾

    攻略 2021年12月10日
  • 如何使用Ngrok将局域网服务映射到公网

    技术如何使用Ngrok将局域网服务映射到公网本篇文章给大家分享的是有关如何使用Ngrok将局域网服务映射到公网,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

    攻略 2021年11月10日
  • shampooing,rinse有护发素的意思吗

    技术shampooing,rinse有护发素的意思吗rinse的意思是shampooing:(用清水)冲洗;轻洗(头发)等。rinse
    英 [rjns] 美 [rjns]
    vt. 漂洗; 冲洗; 漂净; 冲掉;

    生活 2021年10月31日
  • vue-countTo --

    技术vue-countTo -- vue-countTo --- 数字滚动插件vue-countTo是一个无依赖,轻量级的vue组件,可以自行覆盖easingFn。
    你可以设置startVal和endV

    礼包 2021年12月13日
  • 助学贷款提前还款,国家助学贷款可以提前还款吗

    技术助学贷款提前还款,国家助学贷款可以提前还款吗国家助学贷款经办银行应允许有条件的借款学生提前偿还贷款,借款学生可通过手机银行、网上银行完成提前偿还贷款操作,也可通过经办银行申请办理助学贷款提前还款。对提前偿还的贷款部分

    生活 2021年10月21日