当前位置:   article > 正文

数据处理——SnowNLP计算文本情感值_snownlp库进行情感分析是怎么计算的

snownlp库进行情感分析是怎么计算的

        对文本进行情感值计算的简单方法,使用python中的SnowNLP。但是,在此之前需要对原始模型进行训练。

        训练代码如下:

  1. import sys
  2. #reload(sys) sys.setdefaultencoding('utf-8')
  3. import pandas as pd #加载pandas
  4. text=pd.read_csv(u'D:\文本.csv',header=0) #读取文本数据
  5. text0=text.iloc[:,0] #提取所有数据
  6. text1=[i.encode('utf-8') for i in text0]
  7. print(text1)
  8. from snownlp import sentiment #加载情感分析模块
  9. sentiment.train('E:/anaconda/Lib/site-packages/snownlp/sentiment/neg.txt', 'E:/anaconda/Lib/site-packages/snownlp/sentiment/pos.txt') #对语料库进行训练,把路径改成相应的位置。
  10. sentiment.save('D:/sentiment.marshal')

        然后对训练好的模型进行调用,并绘制出饼状图

  1. from snownlp import SnowNLP
  2. import matplotlib.pyplot as plt
  3. import re
  4. import csv
  5. comment = []
  6. pos_count = 0
  7. neg_count = 0
  8. for line_data in open("D:\文本.csv",encoding='utf-8'):
  9. comment = line_data
  10. s = SnowNLP(comment)
  11. rates = s.sentiments
  12. print(rates)
  13. if (rates >= 0.5):
  14. pos_count += 1
  15. elif (rates < 0.5):
  16. neg_count += 1
  17. else :
  18. pass
  19. with open("D:/文本处理.csv", "a", encoding="gbk") as fp:
  20. fp.write("%s" % rates+"\n")
  21. labels = 'Positive Side\n(eg. pray,eulogize and suggestion)', 'Negative Side\n(eg. abuse,sarcasm and indignation)'
  22. fracs = [pos_count,neg_count]
  23. explode = [0.1,0] # 0.1 凸出这部分,
  24. plt.axes(aspect=1)
  25. plt.pie(x=fracs, labels=labels, explode=explode,autopct='%3.1f %%',
  26. shadow=True, labeldistance=1.1, startangle = 90,pctdistance = 0.6)
  27. plt.savefig("emotions_pie_chart.jpg",dpi = 360)
  28. plt.show()

        计算结果显示如下图:

         绘制的饼状图如下所示:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/721361
推荐阅读
相关标签
  

闽ICP备14008679号