*代码在前人的基础上做了一些更正。借鉴的代码已经找不到了,如之前的作者看到可以联系本人增加参照链接。*
基于情感词典的分析重点在于给句子打分,在这里情感词典显得尤为重要。在垂直领域中,一般需要根据情景建立特有的情感词典。
本文使用的情感词典:情感词典
from collections import defaultdict
import os
import re
import jieba
import codecs
import pandas as pd
def seg_word(sentence):
"""使用jieba对文档分词"""
seg_list = jieba.cut(sentence)
seg_result = []
for w in seg_list:
seg_result.append(w)
# 读取停用词文件
stopwords = set()
fr = codecs.open('senti_dict/stopwords.txt', 'r', 'utf-8')
for word in fr:
stopwords.add(word.strip())
fr.close()
# 去除停用词
return list(filter(lambda x: x not in stopwords, seg_result))
def classify_words(word_dict):
"""词语分类,找出情感词、否定词、程度副词"""
# 读取情感字典文件
sen_file = open('senti_dict/情感词.txt', 'r+', encoding='utf-8')
# 获取字典文件内容
sen_list = sen_file.readlines()
# 创建情感字典
sen_dict = defaultdict()
# 读取字典文件每一行内容,将其转换为字典对象,key为情感词,value为对应的分值
i = 0
for s in sen_list:
slist = s.strip('\n').split('\t')
# 每一行内容根据空格分割,索引