python情感分析详细步骤,python自然语言处理情感分析

  python情感分析详细步骤,python自然语言处理情感分析

  商品评论挖掘、电影推荐、股市预测……情绪分析大有用武之地。下面文章主要介绍如何用python实现简单的情感分析的相关信息。通过示例代码非常详细的介绍,有需要的朋友可以参考一下。

  00-1010 1数据导入和预处理1.1数据导入1.2数据描述1.3数据预处理2情感分析2.1情感评分2.2情感评分直方图2.3词云图2.4关键词提取3正面评论和负面评论3.1正面评论和负面评论占比3.2负面评论分析总结python实现简单的情感分析。

  

目录

  

1 数据导入及预处理

  #数据导入

  进口熊猫作为pd

  Data=pd.read_csv(./data/JD.COM评论data . CSV’)

  data.head()

  

1.1 数据导入

  #数据描述

  data.describe()

  

1.2 数据描述

  #数据预处理

  #取出sku_Id,内容字段

  data1=数据[[sku_id ,内容]]

  data1.head(10)

  

1.3 数据预处理

  

2 情感分析

  #情绪分析

  从snownlp导入SnowNLP

  data1[情感]=data1[内容]。应用(lambda x: SnowNLP(x)。感悟)

  data1.head()

  #情感数据描述

  data1.describe()

  情绪的平均值为0.74,中值为0.96,25%分位数为0.56。可以看出,只有不到25%的数据导致了整体平均值的下移。

  

2.1 情感分

  #绘制情感直方图

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  PLT . RC params[ font . sans-serif ]=[ sim hei ]

  PLT . RC params[ axes . unicode _ MINUS ]=False

  bin=NP . arange(0,1.1,0.1)

  plt.hist(data1[emotion],bin,color=#4F94CD ,alpha=0.9)

  plt.xlim(0,1)

  Plt.xlabel(情感分数)

  Plt.ylabel(数量)

  Plt.title(“情感直方图”)

  plt.show()

  从直方图可以看出,评论内容两级分化严重;

  337条评论中约有2200条的情感评分在[0.9,1]范围内;同时,情感分在[0,0.1]范围内的评论约有500条。

  

2.2 情感分直方图

  #绘制单词云图(此处不做停用词处理)

  从wordcloud导入WordCloud

  进口洁霸

  myfont=myf

  ont = rC:\Windows\Fonts\simhei.ttf

  w = WordCloud(font_path=myfont)

  text =

  for i in data[content]:

   text += i

  data_cut = .join(jieba.lcut(text))

  w.generate(data_cut)

  image = w.to_file(词云图.png)

  image

  

  

  

2.4 关键词提取

  

# 关键词提取top10

  # 这儿直接写import jieba运行会显示没有analyse属性

  from jieba import analyse

  key_words = jieba.analyse.extract_tags(sentence=text, topK=10, withWeight=True, allowPOS=())

  key_words

  

  以上关键词显示,消费者比较在意手机的屏幕拍照手感等特性,华为小米是出现频次最高的两个手机品牌。

  参数说明 :

  

  • sentence 需要提取的字符串,必须是str类型,不能是list
  • topK 提取前多少个关键字
  • withWeight 是否返回每个关键词的权重
  • allowPOS是允许的提取的词性,默认为allowPOS=‘ns’, ‘n’, ‘vn’, ‘v’,提取地名、名词、动名词、动词

  

  

3 积极评论与消极评论

  

  

3.1 积极评论与消极评论占比

  

# 计算积极评论与消极评论各自的数目

  pos, neg = 0, 0

  for i in data1[emotion]:

   if i >= 0.5:

   pos += 1

   else:

   neg += 1

  print(积极评论数目为:, pos, \n消极评论数目为:, neg)

  

  

# 积极消极评论占比

  import matplotlib.pyplot as plt

  plt.rcParams[font.sans-serif]=[SimHei]

  plt.rcParams[axes.unicode_minus] = False

  pie_labels = positive, negative

  plt.pie([pos, neg], labels=pie_labels, autopct=%1.2f%%, shadow=True)

  plt.show()

  

  

  

3.2 消极评论分析

  

# 获取消极评论的数据

  data2 = data1[data1[emotion] < 0.5]

  data2.head()

  

  

#消极评论词云图(这儿没有做停用词处理)

  text2 =

  for s in data2[content]:

   text2 += s

  data_cut2 = .join(jieba.lcut(text2))

  w.generate(data_cut2)

  image = w.to_file(消极评论词云.png)

  image

  

  

#消极评论关键词top10

  key_words = jieba.analyse.extract_tags(sentence=text2, topK=10, withWeight=True, allowPOS=())

  key_words

  

  消极评论关键词显示,屏幕快递充电是造成用户体验不佳的几个重要因素;屏幕和充电问题有可能是手机不良品率过高或快递压迫;

  因此平台应注重提高手机品控,降低不良品率;另外应设法提升发货,配送,派件的效率和质量。

  

  

总结

  到此这篇关于利用python实现简单的情感分析的文章就介绍到这了,更多相关python情感分析内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: