改良的用于情感分类的餐馆评论数据集

原数据说明

yf_dianping 说明
下载地址: 百度网盘
数据概览: 24 万家餐馆,54 万用户,440 万条评论/评分数据
推荐实验: 推荐系统、情感/观点/评论 倾向性分析
数据来源: 大众点评
原数据集: Dianping Review Dataset,Yongfeng Zhang 教授为 WWW 2013, SIGIR 2013, SIGIR 2014 会议论文而搜集的数据
加工处理:
只保留原数据集中的评论、评分等信息,去除其他无用信息
整理成与 MovieLens 兼容的格式
进行脱敏操作,以保护用户隐私

该数据集中主要用到的是ratings.csv

import numpy as np
import pandas as pd
pd_ratings = pd.read_csv(path+'ratings.csv')

print('用户 数目:%d' % pd_ratings.userId.unique().shape[0])
print('评分/评论 数目(总计):%d\n' % pd_ratings.shape[0])

print('总体 评分 数目([1,5]):%d' % pd_ratings[(pd_ratings.rating>=1) & (pd_ratings.rating<=5)].shape[0])
print('环境 评分 数目([1,5]):%d' % pd_ratings[(pd_ratings.rating_env>=1) & (pd_ratings.rating_env<=5)].shape[0])
print('口味 评分 数目([1,5]):%d' % pd_ratings[(pd_ratings.rating_flavor>=1) & (pd_ratings.rating_flavor<=5)].shape[0])
print('服务 评分 数目([1,5]):%d' % pd_ratings[(pd_ratings.rating_service>=1) & (pd_ratings.rating_service<=5)].shape[0])
print('评论 数目:%d' % pd_ratings[~pd_ratings.comment.isna()].shape[0])
用户 数目:542706
评分/评论 数目(总计):4422473

总体 评分 数目([1,5]):3293878
环境 评分 数目([1,5]):4076220
口味 评分 数目([1,5]):4093819
服务 评分 数目([1,5]):4076220
评论 数目:4107409

该数据集非常的大,大约1.75G,WPS或Excel根本无法打开完整的数据集

字段说明

在这里插入图片描述

pd_ratings.sample(10)

在这里插入图片描述

数据集改良

为了减少数据集数量,和便于情感二分类处理,对该数据集做了以下处理:

1.只保留 rating列 和comment列

在这里插入图片描述

2.数据集去重去空

column1 = ["rating"]
column2 = ["comment"]

pd_all=pd_all.dropna(how = 'any')#去空值
pd_all=pd_all.drop_duplicates(column2)#去重  
#去除空数据
display(pd_all.shape, pd_all.head())
(2681023, 8)

3.按照rating大小二分类

浏览数据集,rating1,2分为差评,3,4,5分为好评。
顺便将列名改为label 和review

在这里插入图片描述

df = pd.read_csv('./cleanratings.csv')#经上文操作处理过的文件
def score(x):
    if x>=3:#大于等于3好评
        return 1
    else:#评分为1,2 差评
        return 0
df['label']=df['label'].transform(score)
print('评论数目(总体):%d' % df.shape[0])
print('评论数目(正向):%d' % df[df.label==1].shape[0])
print('评论数目(负向):%d' % df[df.label==0].shape[0])
评论数目(总体):2681023
评论数目(正向):2478300
评论数目(负向):202723

可以看出正负向评论数量差别悬殊

4.均衡正负向评论

通过对正向评论随机抽样,使得正负向评论数目相同

df = pd.read_csv('./cleanratings.csv')
df1=df[df.label==1].sample(202723)
df2=df[df.label==0]
df = pd.concat([df1,df2],axis=0)#按行合并
#df[df.label==1]=df[df.label==1].sample(202723).label
print('评论数目(总体):%d' % df.shape[0])
print('评论数目(正向):%d' % df[df.label==1].shape[0])
print('评论数目(负向):%d' % df[df.label==0].shape[0])
df.to_csv('cleanratings.csv',index=False)
print("保存成功!")
评论数目(总体):405446
评论数目(正向):202723
评论数目(负向):202723

最终的[cleanratings.csv]文件

链接:https://pan.baidu.com/s/1G0_U-rkMHU4JfoK2SQyr4g
提取码:5y1h

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Your_Majesty!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值