基于集成学习的 Amazon 用户评论质量预测_1

前言

提醒:
文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。
其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。


数据集介绍

免费数据下载链接

数据集下载在链接1,百度网盘
数据集下载在链接2,github
数据集下载在链接3,github
数据集下载在链接4,huggingface

Amazon 用户评论质量预测数据集信息表

项目内容描述
数据集名称Amazon Review Quality Prediction Dataset
数据来源Amazon.com 用户商品评论
用途用户评论“有帮助”程度预测、文本质量评估、监督学习
任务类型二分类(有帮助 / 无帮助),或回归(预测被标记为有帮助的次数)
主要字段- reviewText:评论正文
- helpful:一个二元组,格式为 [有帮助票数, 总票数]
- overall:商品评分(1-5 星)
- reviewerID:用户 ID
- asin:商品 ID
目标变量- 有帮助的概率(可计算为 有帮助票数 / 总票数
- 或转换为二分类(如比例 ≥ 0.5 为有帮助)
数据格式JSON 或 CSV(根据版本不同)
语言英文(少部分版本支持多语言)
评论时间跨度大多数数据从 1995 年开始,具体取决于品类
数据规模数十万到数百万条评论,按品类划分(如电子、图书、家居等)
适用模型文本分类模型(如 BERT、XGBoost、LSTM)、回归模型等
常用预处理方式文本清洗、标注样本有帮助标签、采样平衡类别等

数据实例

  • review_id:评论 ID
  • reviewText:用户评论文本
  • product_id / product_category:商品信息
  • label / quality:表示评论质量的标签(如高质量/低质量)
  • overall:商品评分(1-5 星)

以下是一个专为这类数据设计的分析脚本,涵盖文本长度、类别分布、缺失值检查等常见内容:


✅ 1. 加载并预览数据集

import pandas as pd
# 加载数据
train_df = pd.read_csv('train.xlsx', sep='\t')
print(train_df.head())

在这里插入图片描述

df = train_df

# 显示基本信息
print("📌 前5行数据:")
print(df.head())

print("\n📐 数据维度 (行, 列):", df.shape)

print("\n🔎 字段信息:")
print(df.info())

在这里插入图片描述


✅ 2. 缺失值统计和基本描述

# 缺失值
print("\n🚫 缺失值统计:")
print(df.isnull().sum())

# 描述性统计(只适用于数值列)
print("\n📊 数值字段描述:")
print(df.describe())

在这里插入图片描述


✅ 3. 评论长度分析

# 添加评论长度字段
df['review_length'] = df['review_text'].astype(str).apply(len)

# 显示最短、最长评论长度
print("\n📝 评论长度统计:")
print(df['review_length'].describe())

在这里插入图片描述

可视化评论长度分布:

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(10,6))
sns.histplot(df['review_length'], bins=50, kde=True)
plt.title("评论长度分布")
plt.xlabel("字符数")
plt.ylabel("评论数量")
plt.show()

在这里插入图片描述


✅ 4. 标签分布(如评论质量标签)

label_col = 'label' if 'label' in df.columns else 'quality'
if label_col in df.columns:
    print("\n📈 标签分布:")
    print(df[label_col].value_counts())

    # 可视化
    sns.countplot(x=label_col, data=df)
    plt.title("评论质量标签分布")
    plt.show()

在这里插入图片描述


✅ 5. 词云可视化高质量与低质量评论词频(如有助于 NLP 分析需求)

from wordcloud import WordCloud

# 假设 1 为高质量,0 为低质量
high_quality = df[df[label_col]==1]['review_text'].dropna()
low_quality = df[df[label_col]==0]['review_text'].dropna()

def plot_wordcloud(texts, title):
    text = " ".join(texts.astype(str))
    wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
    plt.figure(figsize=(10,5))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.title(title)
    plt.show()

plot_wordcloud(high_quality, "高质量评论词云")
plot_wordcloud(low_quality, "低质量评论词云")

在这里插入图片描述
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值