当前位置:   article > 正文

改良的用于情感分类的餐馆评论数据集_餐饮评论数据集哪里有

餐饮评论数据集哪里有

原数据说明

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])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
用户 数目:542706
评分/评论 数目(总计):4422473

总体 评分 数目([1,5]):3293878
环境 评分 数目([1,5]):4076220
口味 评分 数目([1,5]):4093819
服务 评分 数目([1,5]):4076220
评论 数目:4107409
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

字段说明

在这里插入图片描述

pd_ratings.sample(10)
  • 1

在这里插入图片描述

数据集改良

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

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())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
(2681023, 8)
  • 1

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])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
评论数目(总体):2681023
评论数目(正向):2478300
评论数目(负向):202723
  • 1
  • 2
  • 3

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

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("保存成功!")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
评论数目(总体):405446
评论数目(正向):202723
评论数目(负向):202723
  • 1
  • 2
  • 3

最终的[cleanratings.csv]文件

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/755536
推荐阅读
相关标签
  

闽ICP备14008679号