项目背景
现在大家在进行网购过程中,肯定会看商品的相关评论,然后再综合衡量,最后决定是否购买相关产品。甚至不少消费者会先略过详情页直接看评论,然后决定是否下单,那么商品评论就成为了用户是否购买的核心因素之一了,因此了解商品给用户的体验尤为重要。
项目需求
对指定某一/类商品,生产商,卖家需要了解用户认同的优点和不认同的缺点。
项目流程
爬取数据并导出
通过scrapy框架爬取多个电商平台近20w条数据,这里展示下具体代码框架,此篇就不重点介绍了。
数据分析及训练模型
导入所需模块
import pandas as pd
import numpy as np
import csv
import codecs
from snownlp import SnowNLP
import jieba
from pandas import Series,DataFrame
from gensim import corpora,models
数据预处理
数据预处理包括数据去重以及机械压缩去词
由于代码不是同一天编写,所以我习惯性运行一步就导出一步,后面再导入数据,以免多次运行浪费时间。
# 文本去重
data = pd.read_csv('huizong.csv',encoding = 'utf-8')
data = data.dropna() # 删除空值
l1 = len(data)
data = pd.DataFrame(data['评论'].unique()) # 删除重复值
l2 = len(data)
data.to_csv('pinglun.csv',index = False,encoding='utf-8')
print(f'删除了{l1 - l2}条评论')
# 机械压缩去词
f = codecs.open('pinglun2.csv' ,'w','utf-8')
def cutword(strs,reverse = False):
for A_string in strs:
temp1= A_string[0].strip('\n') #去掉每行最后的换行符'\n'
temp2 = temp1.lstrip('\ufeff')
temp3= temp2.strip('\r')
char_list=list(temp3)
list1=['']
list2=['']
del1=[]
flag=['']
i=0
while(i<len(char_list)):
if (char_list[i]==list1[0]):
if (list2=&#