1、项目介绍

技术栈
Python 语言、Django 框架、Echarts 可视化库、机器学习随机森林预测算法、爬虫技术、HTML

功能模块

  • 首页数据大屏模块
  • 整体分析模块
  • 相关性分析模块
  • 评论分析模块
  • 数据中心模块
  • 商品详情页与推荐模块
  • 评论列表模块
  • 销量预测模块
  • 注册登录模块
  • 后台管理模块

项目介绍
本系统基于 Python 与 Django 框架开发,整合 Echarts 可视化工具与随机森林预测算法,构建商品数据分析与销量预测平台。系统通过爬虫采集商品销量、用户评论等数据,经处理后存储于数据库。首页数据大屏实时展示商品总销量、热门品类占比等核心指标;整体分析与相关性分析模块借助 Echarts 呈现品牌分布、价格区间、销量与好评率关联等数据关系;评论分析模块生成评论情感分布与词云图;销量预测模块基于随机森林算法,输入商品品牌、价格、好评率等参数后输出未来销量预测结果。数据中心与后台管理模块支持商品信息维护,商品详情页提供个性化推荐,为运营决策提供数据支撑。

2、项目界面

(1)首页数据大屏
该页面为商品数据可视化分析系统首页,涵盖系统访问量、用户访问类型、登录注册人数等数据展示,还有商品、评论数据可视化图表,支持整体、相关性、评论分析及销量排行与预测,同时设有后台管理模块呈现商品相关信息。

在这里插入图片描述

(2)整体分析
该页面是商品数据可视化分析系统的数据信息页,可查看商品与评论数据,支持开展整体、相关性、评论分析及销量预测,能呈现商品品牌分布、价格区间、店铺商品数量和销量区间统计,也可进行数据描述性分析,还设有后台管理相关功能模块。

在这里插入图片描述

(3)相关性分析
该页面是商品数据可视化分析系统的可视化图表页,可查看商品与评论数据,支持整体、相关性、评论分析及销量数据预测,能开展数据关系型分析,展示不同品牌评论分布情况和各品牌销售额排行榜,同时配备后台管理相关功能模块。
在这里插入图片描述

(4)相关性分析2
该页面是商品数据可视化分析系统的可视化图表页,可查看商品与评论数据,支持整体、相关性、评论分析及销量数据预测,能展示销量和好评率的关联关系,还可呈现各品牌的商品量、销量、追评率等不同属性数据,同时设有后台管理相关功能模块。
在这里插入图片描述

(5)评论分析
该页面是商品数据可视化分析系统的评论分析页,可查看商品与评论数据,支持整体、相关性分析及销量数据预测,能展示评论时间分布、不同品牌评论情感对比和评论情感分布,生成评论相关词云图,还设有后台管理相关功能模块。
在这里插入图片描述

(6)数据中心
该页面是商品数据可视化分析系统的商品数据页,支持商品搜索功能,以列表形式展示各类商品的相关信息及优惠活动,呈现商品的购买人数、价格、好评率等内容,同时可开展各类数据分析及销量预测,配备后台管理相关功能模块。
在这里插入图片描述

(7)商品详情页+推荐
该页面是商品数据可视化分析系统的商品详情页,展示单款商品的基础信息、购买及价格相关数据,呈现店铺品牌信息与商品优惠活动,还可查看商品各类评论数据和精选评论,同时支持多维度数据分析、销量预测及后台管理相关操作。
在这里插入图片描述

(8)评论列表
该页面是商品数据可视化分析系统的商品评论列表页,支持商品评论的搜索功能,以列表形式展示商品id和对应的评论内容,配备分页浏览功能,同时可开展整体、相关性、评论分析及销量数据预测,设有后台管理相关功能模块。
在这里插入图片描述

(9)销量预测
该页面是商品数据可视化分析系统的销量数据预测页,支持输入商品相关信息进行销量预测,可填写商品品牌、价格、好评率、平均得分等信息,还能开展整体、相关性、评论分析,同时设有商品和评论数据查看、可视化图表及后台管理相关功能模块。

在这里插入图片描述

(10)注册登录
该页面是商品数据可视化分析系统的登录页,提供账号和密码的输入框,设有记住密码、忘记密码的相关功能选项,配备立即登录操作按钮,同时提供注册账户的跳转入口,完成账号验证后可进入系统进行各类商品数据相关的分析操作。
在这里插入图片描述

(11)后台管理
该页面是商品数据可视化分析系统的后台商品信息管理页,支持商品相关信息的搜索,可对商品信息表进行增加、删除等操作,能选择操作数据条目,展示商品多维度详细信息,还可切换查看商品评论表、用户表等数据表格,配备分页浏览功能。

在这里插入图片描述

3、项目说明

一、技术栈简要说明
系统后端采用 Python 语言与 Django 框架构建,前端页面使用 HTML 进行展示,可视化部分通过 Echarts 图表库实现柱状图、折线图、词云图等多种图形渲染。数据采集环节集成爬虫技术,预测模块基于机器学习随机森林算法,对商品销量进行建模与预测。

二、功能模块详细介绍
· 首页数据大屏模块
作为系统核心总览入口,实时展示系统访问量、用户访问类型、登录注册人数等关键指标,集成商品与评论数据的可视化图表,支持整体分析、相关性分析、评论分析及销量排行与预测功能的快速跳转。

· 整体分析模块
呈现商品品牌分布、价格区间、店铺商品数量和销量区间统计等数据,支持数据描述性分析,通过图表形式直观展示商品数据的整体结构与分布特征。

· 相关性分析模块
开展数据关系型分析,展示不同品牌评论分布情况、各品牌销售额排行榜,以及销量与好评率的关联关系,同时呈现各品牌的商品量、销量、追评率等不同属性数据,为商品定价与选品提供依据。

· 评论分析模块
展示评论时间分布、不同品牌评论情感对比和评论情感分布,生成评论相关词云图,帮助提取用户评价中的情感倾向与核心需求,辅助产品优化决策。

· 数据中心模块
支持商品搜索功能,以列表形式展示各类商品的购买人数、价格、好评率等信息及优惠活动,为后续分析与预测提供可靠的数据基础。

· 商品详情页与推荐模块
展示单款商品的基础信息、购买及价格数据、店铺品牌信息与优惠活动,提供商品各类评论数据和精选评论,基于用户行为数据实现个性化推荐,提升用户转化。

· 评论列表模块
支持商品评论的搜索功能,以列表形式展示商品 ID 和对应的评论内容,配备分页浏览功能,便于用户集中查看与管理评论数据。

· 销量预测模块
作为系统核心功能,用户可输入商品品牌、价格、好评率、平均得分等参数,基于随机森林算法输出未来销量预测结果,指导库存备货与运营策略。

· 注册登录模块
提供账号密码输入框,包含记住密码、忘记密码功能选项与立即登录操作按钮,提供注册账户跳转入口,通过角色权限管控保障系统数据安全。

· 后台管理模块
支持商品相关信息的搜索、增加、删除等操作,可展示商品多维度详细信息,切换查看商品评论表、用户表等数据表格,配备分页浏览功能,实现系统数据的集中维护与配置。

三、项目总结
本系统基于 Python 与 Django 框架开发,整合 Echarts 可视化工具与随机森林预测算法,构建商品数据分析与销量预测平台。系统通过爬虫采集商品销量、用户评论等数据,经处理后存储于数据库。首页数据大屏实时展示商品总销量、热门品类占比等核心指标;整体分析与相关性分析模块借助 Echarts 呈现品牌分布、价格区间、销量与好评率关联等数据关系;评论分析模块生成评论情感分布与词云图;销量预测模块基于随机森林算法,输入商品品牌、价格、好评率等参数后输出未来销量预测结果。数据中心与后台管理模块支持商品信息维护,商品详情页提供个性化推荐,为运营决策提供数据支撑。

4、核心代码


def products_details(request):
    id = request.GET.get('id')
    product = get_object_or_404(XinXi, id=id)
    product.full_stars = ['bx bxs-star text-warning'] * int(product.AverageScore)
    product.empty_stars = ['bx bxs-star text-secondary'] * (5 - int(product.AverageScore))

    # 查询同一品牌的其他商品
    brand = product.brand
    other_products = XinXi.objects.filter(brand=brand).exclude(id=id)[:3]

    # 如果不足三个商品,则随机选取
    if len(other_products) < 3:
        other_products = XinXi.objects.filter(brand=brand).exclude(id=id)
        other_products = sample(list(other_products), min(len(other_products), 3))

    # 计算评分星星
    for product in other_products:
        product.full_stars = ['bx bxs-star text-warning'] * int(product.AverageScore)
        product.empty_stars = ['bx bxs-star text-secondary'] * (5 - int(product.AverageScore))
    comments = Comment.objects.filter(product_id=product.product_id).order_by('-comment_date')[:5]
    context = {
        'product': product,
        'other_products': other_products,
        'comments': comments,
    }

    return render(request, 'ecommerce-products-details.html',context)


def ecommerce_comment_list(request):
    query = request.GET.get('search', '')
    page_number = request.GET.get('page')  # 获取请求中的页码参数
    if query:
        comments = Comment.objects.filter(content__icontains=query)
    else:
        comments = Comment.objects.all()

    # 创建分页器对象,设置每页显示的数量为 10
    paginator = Paginator(comments, 10)

    # 获取请求的页码对应的Page对象
    page_obj = paginator.get_page(page_number)

    context = {
        'comments': page_obj,
        'page_obj': page_obj,
        'query': query,  # 添加搜索参数到上下文中
    }
    return render(request, 'ecommerce_comment_list.html',context)


def widgets(request):
    return render(request, 'widgets.html')


def chart(request):
    return render(request, 'charts-apex-chart.html')

def preprocess_text(text):
    text = re.sub(r'[^\w\s]', '', text)
    text = text.lower()
    words = jieba.lcut(text)
    filtered_words = [word for word in words if len(word) > 1]

    return filtered_words

def comment_chart(request):
    df = pd.read_csv('spiders/comments.csv')
    df = df[['评论']]

    all_text = ' '.join(df.values.flatten().astype(str))

    words = preprocess_text(all_text)
    word_count = Counter(words)
    top_50_words = word_count.most_common(200)

    result = [{'name': word, 'value': count} for word, count in top_50_words]

    context = {
        'result': result,
    }
    return render(request, 'comment_chart.html',context)



from speculate import Speculate
def predict(request):
    result = None  # 初始化结果为 None
    if request.method == 'POST':
        brand = request.POST.get('brand')
        rating = request.POST.get('rating', 0)
        price = request.POST.get('price', 0)
        average_score = request.POST.get('average_score', 5)  # 获取平均得分

        # 使用 Speculate 函数进行预测
        # data = [, brand, rating, average_score]
        print([])
        data = [float(price),brand,float(rating),float(average_score)]
        result = Speculate(data)

    context = {
        'result': result,
    }
    return render(request, 'predict.html', context)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐