Python大数据-电商产品评论情感数据分析(1),Python开发应该了解的Binder原理

删除停用词

stop_path = open(“…/data/stoplist.txt”, ‘r’,encoding=‘UTF-8’)

stop = stop_path.readlines()

stop = [x.replace(‘\n’, ‘’) for x in stop]

word = list(set(word) - set(stop))

result = result[result[‘word’].isin(word)]

构造各词在对应评论的位置列

n_word = list(result.groupby(by = [‘index_content’])[‘index_content’].count())

index_word = [list(np.arange(0, y)) for y in n_word]

index_word = sum(index_word, []) # 表示词语在改评论的位置

合并评论id,评论中词的id,词,词性,评论类型

result[‘index_word’] = index_word

result

处理后表格样式

提取含有名词的评论

  • 由于本次分析的目标是对产品特征的优缺点进行分析,**类似“不错,很好的产品”“很不错,继续支持”等评论虽然表达了对产品的情感倾向,但是实际上无法根据这些评论提取出哪些产品特征是用户满意的。**评论中只有出现明确的名词,如机构团体及其他专有名词时,才有意义,因此需要对分词后的词语进行词性标注。之后再根据词性将含有名词类的评论提取出来。jieba关于词典词性标记,采用ICTCLAS 的标记方法,对于词性标注大家可以看:ICTCLAS汉语词性标注集

提取评论中词性含有**“n”(名词)**的评论,

提取含有名词类的评论

ind = result[[‘n’ in x for x in result[‘nature’]]][‘index_content’].unique()

result = result[[x in ind for x in result[‘index_content’]]]

词云图绘制

进行数据预处理后,可绘制词云查看分词效果,词云会将文本中出现频率较高的“关键词”予以视觉上的突出。首先需要对词语进行词频统计,将词频按照降序排序,选择前100个词,使用wordcloud模块中的WordCloud绘制词云,查看分词效果(常用字体代码

import matplotlib.pyplot as plt

from wordcloud import WordCloud

frequencies = result.groupby(by = [‘word’])[‘word’].count()

frequencies = frequencies.sort_values(ascending = False)

backgroud_Image=plt.imread(‘…/data/pl.jpg’)

wordcloud = WordCloud(font_path=“simkai.ttf”,

max_words=100,

background_color=‘white’,

mask=backgroud_Image)

my_wordcloud = wordcloud.fit_words(frequencies)

plt.imshow(my_wordcloud)

plt.axis(‘off’)

plt.show()

​从生成的词云图中可以初步判断用户比较在意的是音质、质感、续航、舒适度等关键词

五、 数据分析

=======

评论数据情感倾向分析


匹配情感词

  • 情感倾向也称为情感极性。在某商品评论中,可以理解为用户对该商品表达自身观点所持的态度是支持、反对还是中立,即通常所指的正面情感、负面情感、中性情感。对评论情感倾向进行分析首先要对情感词进行匹配,使用知网发布的“情感分析用词语集 ( beta版)"中的“中文正面评价”词表、“中文负面评价”“中文正面情感”“中文负面情感”词表等。将“中文正面评价”“中文正面情感”两个词表合并,并给每个词语赋予初始权重1,作为正面评论情感词表。将“中文负面评价”“中文负面情感”两个词表合并,并给每个词语赋予初始权重-1,作为负面评论情感词表。

  • 读入正负面评论情感词表,正面词语赋予初始权重1,负面词语赋予初始权重-1,使用merge函数按照词语情感词表与分词结果进行匹配。

import pandas as pd

import numpy as np

word = pd.read_csv(“…/tmp/result.csv”)

读入正面、负面情感评价词

pos_comment = pd.read_csv(“…/data/正面评价词语(中文).txt”, header=None,sep=“\n”,

encoding &#

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值