赞
踩
上节课我们介绍了基于SnowNLP快速进行评论数据情感分析的方法,本节课老shi将介绍基于情感词典的分析方法。基于情感词典的分析方法是情感挖掘分析方法中的一种,其普遍做法是:首先对文本进行情感词匹配,然后汇总情感词进行评分,最后得到文本的情感倾向。目前使用较多的情感词典主要有两种:一种是BosonNLP情感词典,另一种是知网推出的情感词典。
1.基于BosonNLP情感词典分析
BosonNLP情感词典是由波森自然语言处理公司推出的一款已经做好标注的情感词典。词典中对每个情感词进行情感值评分,BosonNLP情感词典大概如下图所示:
基于BosonNLP情感词典的情感分析原理比较简单。首先需要对文本进行分句及分词,这里可以使用jieba分词。然后将分词好的列表数据对应BosonNLP词典进行逐个匹配,并记录匹配到的情感词分值,最后统计汇总所有情感分值。如果总分值大于0,表示情感倾向为积极的;如果总分值小于0,则表示情感倾向为消极的。其原理框图如下: 基于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 = ['无','积极','消极','消极','中性','消极','积极','消极','积极','积极','积极',# '无','积极','积极','中性','积极','消极','积极','消极','积极','消极','积极',# '无','中性','消极','中性','消极','积极','
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。