基于词典的情感分析——简单实例

       基于词典的情感分析方法非常容易被理解,主要利用情感词判断一句话或者一篇文章的情感倾向,下面的程序利用BosonNLP情感词典(从https://bosonnlp.com/dev/resource 下载情感词典)计算情感倾向。在BosonNLP情感词典中,每个词有一个情感极性得分。得分大于0,表示为正向情感倾向,得分越高,倾向越强;得分小于0,表示为负向情感倾向,得分越低,倾向越强。

——————————————————————————————————

import re

import jieba# pip install jieba==0.39

class DictBasedSentAnal:

def __init__(self):

self.__root_dir ='dict/'

        self.__sent_dict__ =self.__read_dict(self.__root_dir+'BosonNLP_sentiment_score.txt')

def analyse(self, sentence):

score =0.0

        for wordsin jieba.cut(sentence):

score +=self.__sent_dict__.get(words, 0)

return score

@staticmethod

    def __read_dict(path, encoding='utf-8'):

sent_dict = {}

with open(path, encoding=encoding)as input_file:

for linein input_file:

array = re.split('\s+', line.strip())

if len(array) ==2:

sent_dict[array[0]] =float(array[1])

return sent_dict

if __name__ =='__main__':

sentAnal = DictBasedSentAnal()

print('情感得分\t' +'%.2f' % sentAnal.analyse('这个时候反应太慢了!'))

print('情感得分\t' +'%.2f' % sentAnal.analyse('这本书真好,内容特别精彩。'))

——————————————————————————————————

输出结果:

情感得分 -1.56

情感得分 7.11

——————————————————————————————————

       从上面的例子,可以看出:“这个时候反应太慢了!”判断为负向情感倾向,“这本书真好,内容特别精彩。”判断为正向情感倾向,这与我们的认知一致。虽然基于词典的情感分析方法比较简单,但是在实际中也证明有价值。以上实现还比较简答,还有很大的改进空间。

来源:基于词典的情感分析——简单实例 - 嘉陵长风

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jieba分词,学习,为了全面了解该模块,,预设学习路线:官方文档——优秀博客文章——实践学习 官方文档部分 (文...
    竹林徒儿阅读 9,740评论 1 12
  • 情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向。它由两个方面来衡量:一个情感倾向方向,一个是...
    mlion阅读 7,186评论 1 11
  • 大一,听着指挥帮桌椅,搬各种物资,就觉得很累,但是看晚会很开心🤓 大二,准备好几十个帐篷和100多套桌椅分配给各个...
    bd4ecc9147dd阅读 1,241评论 0 0
  • 我是一所私立中学的历史教师,大学毕业后,便在远离故乡的一所中学任教。今年是我工作后的第一个暑假。老家的母亲早已催促...
    子木先生的阅读 2,540评论 0 3
  • 清晨有白色大雾,终于不是雾霾,纯白色的雾气,有着时光的印记,青色的小麦和农作物都染上了一层白霜,一轮橙红色的...
    随入梦深阅读 1,202评论 0 0