rostcm6情感分析案例分析_基于情感词典的情感分析方法

上节课我们介绍了基于SnowNLP快速进行评论数据情感分析的方法,本节课老shi将介绍基于情感词典的分析方法。基于情感词典的分析方法是情感挖掘分析方法中的一种,其普遍做法是:首先对文本进行情感词匹配,然后汇总情感词进行评分,最后得到文本的情感倾向。目前使用较多的情感词典主要有两种:一种是BosonNLP情感词典,另一种是知网推出的情感词典。

1.基于BosonNLP情感词典分析

BosonNLP情感词典是由波森自然语言处理公司推出的一款已经做好标注的情感词典。词典中对每个情感词进行情感值评分,BosonNLP情感词典大概如下图所示:

fcabdff0eb1d78f133fa8b570f54ca4d.png 基于BosonNLP情感词典的情感分析原理比较简单。首先需要对文本进行分句及分词,这里可以使用jieba分词。然后将分词好的列表数据对应BosonNLP词典进行逐个匹配,并记录匹配到的情感词分值,最后统计汇总所有情感分值。如果总分值大于0,表示情感倾向为积极的;如果总分值小于0,则表示情感倾向为消极的。其原理框图如下: e26d1f9bcaaf316364ada0eefba790a5.png 基于BosonNLP情感分析代码:
# -*- coding:utf-8 -*-import pandas as pdimport jieba#基于波森情感词典计算情感值def getscore(text):    df = pd.read_table(r"BosonNLP_dict\BosonNLP_sentiment_score.txt", sep=" ", names=['key', 'score'])    key = df['key'].values.tolist()    score = df['score'].values.tolist()# jieba分词    segs = jieba.lcut(text,cut_all = False) # 计算得分    score_list = [score[key.index(x)] for x in segs if(x in key)]return sum(score_list)#读取文件def read_txt(filename):with open(filename,'r',encoding='utf-8')as f:        txt = f.read()return txt#写入文件def write_data(filename,data):with open(filename,'a',encoding='utf-8')as f:        f.write(data)if __name__=='__main__':    text = read_txt('test_data\文本语料.txt')    lists  = text.split('\n')# al_senti = ['无','积极','消极','消极','中性','消极','积极','消极','积极','积极','积极',#             '无','积极','积极','中性','积极','消极','积极','消极','积极','消极','积极',#             '无','中性','消极','中性','消极','积极','
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值