zoukankan      html  css  js  c++  java
  • python实现电商评论的情感分析

      现如今各种APP、微信订阅号、微博、购物网站等网站都允许用户发表一些个人看法、意见、态度、评价、立场等信息。针对这些数据,我们可以利用情感分析技术对其进行分析,总结出大量的有价值信息。例如对商品评论的分析,可以了解用户对商品的满意度,进而改进产品;通过对一个人分布内容的分析,了解他的情绪变化,哪种情绪多,哪种情绪少,进而分析他的性格。怎样知道哪些评论是正面的,哪些评论是负面的呢?正面评价的概率是多少呢?

      利用python的第三方模块SnowNLP可以实现对评论内容的情感分析预测,SnowNLP可以方便的处理中文文本内容,如中文分词、词性标注、情感分析、文本分类、提取文本关键词、文本相似度计算等。大概大于等于0.5,可以判断为正面评价——积极情感,小于0.5,可以判断为负面评价——消极情感。

      下面分析一组京东上某产品的评论数据并生成折线图:

    部分源数据:

     实现过程:

    #加载情感分析模块
    from snownlp import SnowNLP
    #from snownlp import sentiment
    import pandas as pd
    import matplotlib.pyplot as plt
    #导入样例数据
    aa ='F:\python入门\python编程锦囊\Code(实例源码及使用说明)\Code(实例源码及使用说明)\Code(实例源码及使用说明)\09\data\京东评论.xls'
    #读取文本数据
    df=pd.read_excel(aa)
    #提取所有数据
    df1=df.iloc[:,3]
    print('将提取的数据打印出来:
    ',df1)
    #遍历每条评论进行预测
    values=[SnowNLP(i).sentiments for i in df1]
    #输出积极的概率,大于0.5积极的,小于0.5消极的
    #myval保存预测值
    myval=[]
    good=0
    bad=0
    for i in values:
       if (i>=0.5):
           myval.append("正面")
           good=good+1
       else:
           myval.append("负面")
           bad=bad+1
    df['预测值']=values
    df['评价类别']=myval
    #将结果输出到Excel
    df.to_excel('F:\python入门\python编程锦囊\Code(实例源码及使用说明)\Code(实例源码及使用说明)\Code(实例源码及使用说明)\09\data\result2.xls')
    rate=good/(good+bad)
    print('好评率','%.f%%' % (rate * 100)) #格式化为百分比
    #作图
    y=values
    plt.rc('font', family='SimHei', size=10)
    plt.plot(y, marker='o', mec='r', mfc='w',label=u'评价分值')
    plt.xlabel('用户')
    plt.ylabel('评价分值')
    # 让图例生效
    plt.legend()
    #添加标题
    plt.title('京东评论情感分析',family='SimHei',size=14,color='blue')
    plt.show()

    Excel结果:

     作图的结果:

     

  • 相关阅读:
    objectMediator
    vi
    string regex
    ar
    widget class in class
    Makefile 语法分析 第三部分
    在Makefile中的 ".PHONY "是做什么的?
    】openssl移植Android使用及其相关经验分享
    精品Android源码推荐,看了绝不后悔
    Makefile 语法分析 第三部分
  • 原文地址:https://www.cnblogs.com/xiao02fang/p/13155124.html
Copyright © 2011-2022 走看看