实体词典 情感词典_基于词典的文本情感分析(附代码)

本文介绍了使用情感词典进行中文文本情感分析的方法,包括算法逻辑、情感词典内容、步骤以及代码实现。通过查找情感词、程度词和否定词,计算评论的情感值,以此判断文本情感倾向。
摘要由CSDN通过智能技术生成

一、引言

目前中文文本情感分析主要分为三个类型,第一个是由情感词典和句法结构来做的、第二个是根据机器学习来做的(Bayes、SVM等)、第三个是用深度学习的方法来做的(例如LSTM、CNN、LSTM+CNN、BERT+CNN等)。

这三种方法中,第二种和第三种方法都需要人工标注大量的数据,然后做有监督的训练。只有第一种不需要人工标注,也不需要训练。

接下来,我们会介绍下第一种方法的算法逻辑,以及如何实践。

二、情感字典

除了分词词典和停用词词典外,一共还包含9个词典:

1、否定词:not.txt

2、正面情感词:positive.txt

3、负面情感词:negative.txt

4、程度副词:most.txt

very.txt

more.txt

ish.txt

insufficiently.txt

over.txt

inverse.txt

三、算法流程设计算法逻辑Step 1:读取评论数据,对评论进行分句(分句主要以特定的标点符号为主)。

Step 2:将结巴词典和所有情感词典做并集,得出新的分词词典。

Step 3:查找分句的情感词,记录正面还是负面,以及位置。

Step 4:在情感词前查找程度词,找到就停止搜寻。为程度词设权值,乘以情感值。

Step 5:在情感词前查找否定词,找完全部否定词,若数量为奇数,乘以-1,若为偶数, 乘以 1。

Step 6:找出感叹号和问好等重要的标点符合

- 判断分句结尾是否有感叹号,有叹号则往前寻找情感词,有则相应的情感值+2。

- 判断分句结尾是否有问好,有问号该句判断为负面值+2。

Step 7:计算完一条评论所有分句的情感值([正面分值, 负面分值]),用数组(list) 记录起来。

Step 8:计算每条评论中每一个分句的的正面情感均值与负面情感均值,然后比较正面情感总和与负面情感总和,较大的一个即为所得情感倾向。

2. 代码演示

class SentimentAnalysis():

"""Sentiment Analysis with some dictionarys"""

def sentiment_score_list(self,dat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值