import pandas as pd
import jieba
df = pd.read_table(r"D:\BosonNLP_sentiment_score.txt",sep= " ",names=['key','score'],engine='python',encoding='utf-8') #玻森情感词典文件的位置
key = df['key'].values.tolist()
score = df['score'].values.tolist()
def getscore(f):
segs = jieba.lcut(f) #分词
score_list = [score[key.index(x)] for x in segs if(x in key)]
return sum(score_list) #计算得分 """
if __name__=='__main__':
#f='我现在心里真的很乱'
f='今天去了北京,故宫很壮观'
print(getscore(f))
情感值输出结果:
-4.0458716382710005 #f='我现在心里真的很乱'
3.3441567109332997 #f='今天去了北京,故宫很壮观'
#可据此判断情感倾向性
也可以通过在命令行 pip install snownlp?安装snownlp包来进行类似功能
from snownlp import SnowNLP #导入方式
print(SnowNLP('很差的一次购物体验,细节做得极差了,还有发热有点严重啊,散热不行,用起来就是烫得厉害,很垃圾!!!').sentiments) #示例
0.0036849517156107847 #输出情感分值
不过通过安装情感词典包的分值评判体系可能稍有区别,snownlp包对于上述示例输出0.0...的数值表示消极,而示例在利用BosonNLP_sentiment_score.txt情感词典文件进行评判时分值如下,更为直观
-2.826954121025998
|