1. 使用情感词典进行情感分析的思路为
1) 将Web文本进行分句,使其以句子为单位进行处理;
2) 从分句中抽取连词和否定词,并标记相应连词与否定词位置;
3) 访问情感词汇本体,确定词汇极性及其强度;
4) 针对连词(若有),通过连词连词位置,确定前句与后句所占比重,针对否定词(若有),根据否定词位置判断双重否定,以及临近词汇的极性反转;若不包含连词或者否定词,则略过该步骤;
5) 累加本句情感计算评分;
2. 第一次学习情感词典进行情感分析,也是根据下面这个博主链接进行修改的,主要改善了几个功能:
原链接为:https://blog.csdn.net/Petrichoryi/article/details/105861462?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
这篇博主过程写得很详细,若果有什么细节问题可以直接参考这篇博主的内容。
a)第一个情感词前面的程度词或者否定词,原文并没有考虑。
b)在两个情感词之间否定词的用法稍微进行了一点改变。
代码测试部分(可以直接复制运行)
因为要测试代码的正确性,所以直接拿一个简单的例子进行代码的测试(可以直接运行),后序会读取文本数据和词典数据进行测试。每个情感词,修饰词和程度副词的权重都是我人为设置的权重 只是为了检验正确性。
import jieba
from collections import defaultdict
a='今天天气很好,但是我非常不喜欢,不开心'
c=[]
b=jieba.cut(a)
for i in b:
print(i)
c.append(i)
adj = {
'好':'1','喜欢':'2','开心':'3'}#形容词
degree = {
'很':'2','非常':'2.0'}#程度词
notword ={
'不':