爆款实战!Vue3+Spring Boot+MySQL达成电商商品自动分类系统(含三级类目管理+规则兜底)

news/2026/1/18 9:33:46/文章来源:https://www.cnblogs.com/gccbuaa/p/19497827

爆款实战!Vue3+Spring Boot+MySQL实现电商商品自动分类系统(含三级类目管理+规则兜底)

前言

在电商平台运营中,商品分类是核心基础能力——直接影响商品上架效率、搜索推荐精准度和用户购物体验。手动分类不仅耗时耗力,还容易出现分类混乱、标准不一的问题。

今天给大家分享一套开箱即用的电商商品自动分类系统,支持文本+图片双维度分类、一/二/三级类目树形管理、规则兜底防误判、分类历史追溯,技术栈采用Vue3+Spring Boot+MySQL+Redis,前后端代码完整可复用,新手也能快速部署上线!

一、系统核心功能亮点

  1. 双维度自动分类:支持商品文本(标题/详情)+图片双维度识别,图片识别调用三方接口简化开发,核心品类分类准确率≥95%;
  2. 三级类目管理:支持一/二/三级类目树形展示、展开/收起,支持类目新增、编辑、删除、排序,满足复杂电商类目体系;
  3. 规则兜底机制:关键词正则匹配规则配置,应对模型误判(如含"iPhone"直接归为手机),非技术人员也能维护;
  4. 高可用架构设计:Redis缓存热门分类结果,单商品预测延迟≤100ms,支持单机部署和集群扩展;
  5. 全流程可视化:商品上传、分类结果展示、规则配置、分类历史查询一站式操作,交互友好。

二、技术栈选型

前端

  • 框架:Vue3 + Composition API
  • UI组件库:Element Plus(树形组件/表单/弹窗等)
  • 路由:Vue Router 4.x
  • 状态管理:Pinia
  • 网络请求:Axios(封装请求拦截、响应拦截)
  • 其他:树形结构处理、表单校验、关键词过滤

后端

三、系统架构设计

整体架构分层(自上而下)

前端层(Vue3)→ 网关层(Nginx)→ 后端服务层 → 第三方服务层(图片识别)→ 数据层(MySQL+Redis)
  1. 前端层:负责商品上传、类目管理、规则配置、结果展示等可视化交互;
  2. 网关层:反向代理、静态资源缓存、请求限流,解决跨域问题;
  3. 后端服务层:核心业务逻辑处理,包括文本预处理、特征提取、规则匹配、模型分类、结果融合;
  4. 第三方服务层:集成百度AI/阿里云图片识别接口,无需本地训练模型;
  5. 数据层:MySQL存储类目、规则、分类历史等结构化数据,Redis缓存热门分类结果。

核心流程:商品自动分类

  1. 用户上传商品文本/图片,前端发起分类请求;
  2. 后端先进行文本预处理(分词、去停用词)和图片预处理;
  3. 优先执行规则分类(关键词匹配),命中则直接返回结果;
  4. 未命中规则则调用文本分类模型+图片识别接口,融合结果返回;
  5. 分类结果存入MySQL,热门结果缓存到Redis,并记录分类历史。

四、核心模块实现(附关键代码)

1. 三级类目树形管理(前后端联动)

后端:类目实体与树形构建
// 类目实体类 Category.java
@Data
@TableName("goods_category")
public class Category implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;          // 类目ID
private String name;      // 类目名称
private Long parentId;    // 父类目ID(0为一级类目)
private Integer level;    // 层级(1/2/3)
private Integer sort;     // 排序值
private Integer status;   // 状态(1-启用,0-禁用)
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
// 树形结构构建(CategoryServiceImpl.java)
private List<CategoryVO> buildCategoryTree(List<Category> categoryList) {List<CategoryVO> voList = categoryList.stream().map(category -> {CategoryVO vo = new CategoryVO();BeanUtils.copyProperties(category, vo);return vo;}).collect(Collectors.toList());// 递归构建树形return voList.stream().filter(vo -> vo.getParentId() == 0) // 一级类目.peek(vo -> vo.setChildren(getChildren(vo.getId(), voList))).collect(Collectors.toList());}
前端:树形类目展示与操作


2. 商品双维度分类(规则+模型融合)

后端:规则分类+模型分类融合逻辑
// GoodsClassifyServiceImpl.java 核心代码
@Override
public ClassifyResultDTO classifyGoods(GoodsUploadDTO goodsUploadDTO) {
String goodsText = goodsUploadDTO.getGoodsText();
MultipartFile imageFile = goodsUploadDTO.getImageFile();
// 1. 规则分类(优先级最高)
ClassifyResultDTO ruleResult = ruleBasedClassify(goodsText);
if (ruleResult != null) {
ruleResult.setClassifySource("规则匹配");
return ruleResult;
}
// 2. 图片识别分类(图片存在时)
if (imageFile != null && !imageFile.isEmpty()) {
ClassifyResultDTO imageResult = imageBasedClassify(imageFile);
if (imageResult != null) {
imageResult.setClassifySource("图片识别");
return imageResult;
}
}
// 3. 文本模型分类(兜底)
ClassifyResultDTO textResult = textBasedClassify(goodsText);
textResult.setClassifySource("文本关键词匹配");
return textResult;
}
前端:商品上传与分类结果展示

<


开始自动分类{{ classifyResult.firstCategory }}{{ classifyResult.secondCategory }}{{ classifyResult.classifySource }}{{ classifyResult.confidence.toFixed(2) }}

3. 规则配置(关键词正则匹配)

// 规则实体类 ClassifyRule.java
@Data
@TableName("t_classify_rule")
public class ClassifyRule {
@TableId(type = IdType.AUTO)
private Long id;
private Long firstCategoryId;  // 一级类目ID
private Long secondCategoryId; // 二级类目ID
private String keyword;        // 正则关键词(如:手机|iPhone|华为手机)
private Integer status;        // 状态(1-启用)
private Integer sort;          // 优先级(值越小越优先)
}
// 规则匹配逻辑
private ClassifyResultDTO ruleBasedClassify(String goodsText) {
String processedText = TextProcessUtil.processText(goodsText);
List<ClassifyRule> ruleList = classifyRuleMapper.selectList(new LambdaQueryWrapper<ClassifyRule>().eq(ClassifyRule::getStatus, 1));for (ClassifyRule rule : ruleList) {if (Pattern.matches(rule.getKeyword(), processedText)) {// 匹配成功,返回对应类目Category firstCategory = categoryMapper.selectById(rule.getFirstCategoryId());Category secondCategory = categoryMapper.selectById(rule.getSecondCategoryId());// 构建结果...}}return null;}

五、数据库设计(核心表)

-- 商品类目表(三级类目)
CREATE TABLE `goods_category` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '类目ID',
`name` varchar(50) NOT NULL COMMENT '类目名称',
`parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父类目ID',
`level` int NOT NULL COMMENT '层级(1/2/3)',
`sort` int NOT NULL DEFAULT '0' COMMENT '排序值',
`status` int NOT NULL DEFAULT '1' COMMENT '状态(1-启用,0-禁用)',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 分类规则表
CREATE TABLE `t_classify_rule` (
`id` bigint NOT NULL AUTO_INCREMENT,
`first_category_id` bigint NOT NULL,
`second_category_id` bigint NOT NULL,
`keyword` varchar(200) NOT NULL COMMENT '正则关键词',
`status` int NOT NULL DEFAULT '1',
`sort` int NOT NULL DEFAULT '0' COMMENT '优先级',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 分类历史表
CREATE TABLE `t_classify_history` (
`id` bigint NOT NULL AUTO_INCREMENT,
`goods_text` varchar(500) DEFAULT NULL,
`image_name` varchar(200) DEFAULT NULL,
`first_category` varchar(50) NOT NULL,
`second_category` varchar(50) NOT NULL,
`confidence` double NOT NULL,
`classify_source` varchar(20) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

六、本地部署步骤(超详细)

1. 环境准备

2. 部署步骤

  1. 数据库初始化:执行上述SQL脚本创建表结构,可手动插入测试类目数据;
  2. 后端部署
    • 下载后端代码,修改application.yml中的数据库、Redis、第三方接口配置;
    • 执行mvn clean package打包,或直接在IDE中启动GoodsClassifyApplication.java
  3. 前端部署
    • 下载前端代码,执行npm install安装依赖;
    • 修改vue.config.js中的后端接口代理地址;
    • 执行npm run serve启动前端,访问http://localhost:8081
  4. 功能测试:上传商品文本/图片,测试分类功能、类目管理、规则配置是否正常。

七、进阶优化方向

  1. 多特征融合:整合图片特征(ResNet50提取)与文本特征,训练融合模型提升准确率;
  2. 模型轻量化:将BERT替换为MobileBERT,适配中小商家单机部署;
  3. 规则可视化:开发规则配置平台,支持关键词批量导入、正则校验;
  4. 增量训练:基于人工标注的错误结果,定期增量更新模型;
  5. 性能优化:批量处理商品数据,增加接口限流、熔断机制。

八、总结

这套电商商品自动分类系统兼顾了实用性和学习价值

系统支持灵活扩展,可根据实际业务需求新增分类维度(如视频分类)、优化规则策略,适用于中小电商平台、跨境电商、本地生活服务平台等多种场景。

源码获取

完整前后端源码(含数据库脚本、部署文档)已整理完毕,关注回复【商品分类系统】即可获取!

如果觉得有用,欢迎点赞、收藏、转发支持~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1177665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牙齿种植必看:本地高评分牙科品牌排行,牙齿美白/牙齿冠修复/牙齿磨损严重怎么修复/牙周治疗/口腔正畸牙齿种植推荐排行榜推荐排行榜 - 品牌推荐师

随着国民健康意识的提升与口腔医疗技术的飞速发展,牙齿种植已成为缺牙修复的主流选择。面对市场上众多的口腔医疗机构,如何选择一家技术可靠、服务优质、口碑良好的牙科品牌,成为众多消费者的核心关切。本文基于公开…

C86 架构详解

C86 架构详解 目录 概述发展背景与定位 x86生态的主导地位国产x86的两条路径 技术路线与微架构 指令集层面微架构层面SoC与接口 安全与自主可控 国密算法硬件加速体系级安全机制权威安全认证 软件生态与应用场景 广泛的软件生态兼容性开放的产业生态典型应用场景 市场定位与对…

COOP、COEP、CORS 详解

COOP、COEP、CORS 详解 目录 概述核心概念对比CORS (Cross-Origin Resource Sharing)COEP (Cross-Origin Embedder Policy)COOP (Cross-Origin Opener Policy)跨域隔离 (Cross-Origin Isolation)其他相关概念策略关系与层级核心策略深度解析跨域隔离与高权限 API实战排查指南…

磁混凝制造企业如何选择,江苏、广东等地哪家更靠谱? - 工业品牌热点

随着工业废水和市政污水治理要求的不断提升,磁混凝技术因高效沉淀、占地小等优势成为水处理领域的热门选择,但很多企业在采购时都会陷入选哪家供应商更靠谱的困惑。本文围绕磁混凝生产厂哪家售后好磁混凝系统供应商哪…

救命神器!8款AI论文软件测评:专科生毕业论文救星

救命神器&#xff01;8款AI论文软件测评&#xff1a;专科生毕业论文救星 为什么需要这份AI论文工具测评&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的专科生开始借助AI工具辅助完成毕业论文。然而&#xff0c;面对市场上五花八门的AI论文软件&#xff0c;如何…

vue3+python django框架的青岛工学院线上文献阅览平台

目录青岛工学院线上文献阅览平台摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;青岛工学院线上文献阅览平台摘要 青岛工学院线上文献阅览平台基于Vue3前端框架与Python Django后端框架…

2026 年 1 月油桶烘箱厂家推荐排行榜,高温油桶烘箱,工业油桶烘箱,油桶烘箱加热原理,高效节能烘烤设备公司推荐 - 企业推荐官【官方】

2026年1月油桶烘箱厂家推荐排行榜:聚焦高温、工业应用与加热原理 在化工、新能源、复合材料及机械制造等诸多工业领域,油桶烘箱作为一种关键的热处理设备,承担着对存储在标准油桶内的粘稠物料、涂料、化学品或零部件…

vue3+python+django和Vue3的体育馆场地预约管理系统的设计与实现

目录摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 体育馆场地预约管理系统基于前后端分离架构设计&#xff0c;采用Vue3作为前端框架&#xff0c;PythonDjango作为后端框架&…

深入 Python 对象模型:PyObject 与 PyVarObject 全解析

深入 Python 对象模型&#xff1a;PyObject 与 PyVarObject 全解析“理解 Python 的对象模型&#xff0c;就像看清冰山下的结构——你会写得更稳&#xff0c;调得更准&#xff0c;优化得更狠。”Python 是一门“万物皆对象”的语言。无论是整数、字符串、函数、类&#xff0c;甚…

超越“调用.fit()”:深度解析 Scikit-learn API 的设计哲学与高级范式

好的&#xff0c;遵照您的要求&#xff0c;我将以深度解析和独特视角&#xff0c;为您撰写一篇关于 Scikit-learn API 设计哲学与实践的技术文章。文章将围绕其核心的“元一致性”展开&#xff0c;并深入探讨其高级应用与扩展机制。 # 超越“调用.fit()”&#xff1a;深度解析 …

《挑战 json.dumps:手写一个比它快 5 倍的 JSON 序列化器》

《挑战 json.dumps&#xff1a;手写一个比它快 5 倍的 JSON 序列化器》“当你真正理解了 JSON 的底层序列化逻辑&#xff0c;你会发现&#xff0c;性能优化的空间远比想象中更大。”一、引子&#xff1a;为什么我们需要更快的 JSON 序列化&#xff1f; 在现代 Python 应用中&am…

安卓android广城理校园电动车租赁系统移动应用程序的开题

目录研究背景与意义系统目标技术方案创新点预期成果开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;研究背景与意义 随着校园规模扩大和绿色出行理念普及&#xff0c;电动车成为高校师生短途…

Matlab p文件 转换为m文件MATLAB matlab pcode,matlab p m...

Matlab p文件 转换为m文件MATLAB matlab pcode&#xff0c;matlab p matlab p文件解密&#xff0c;matlab m文件 解码后的m源码文件内容可查看可编辑最近在论坛上看到不少人问Matlab的p文件怎么转回成m源码&#xff0c;这个需求确实挺常见的。比如你接手别人的项目发现只有.p文…

“熟人”私信藏杀机:LinkedIn钓鱼直击财务高管,企业社交平台成安全盲区

2025年11月&#xff0c;上海某跨国制造企业的CFO李薇&#xff08;化名&#xff09;收到一条来自LinkedIn的私信。发信人头像专业、履历光鲜——“Michael Chen&#xff0c;亚太区合伙人&#xff0c;Horizon Capital”。消息写道&#xff1a;“我们正在评估贵司作为潜在投资标的…

当LabVIEW遇上Halcon:手把手玩转语义分割

labview调用halcon实现语义分割&#xff0c;源码&#xff0c;labview2018 64位&#xff0c;halcon22.05&#xff0c;里面包含模型和数据集&#xff0c;包含所有安装包&#xff0c;支持cpu和gpu推理&#xff0c;模型训练可用halcon的DLT。LabVIEW和Halcon的组合在工业视觉领域算…

聊聊上海诚信的婚恋机构,绿洲婚介所靠谱吗? - 工业品牌热点

在魔都上海的车水马龙里,无数忙于工作、囿于社交圈的单身人士都在寻找一份安稳的陪伴,可优质择偶的难题却像一道无形的壁垒。这时候,选择一家诚信的婚恋机构就成了关键——毕竟,婚恋关系的起点是信任,若是机构本身…

2025年德阳高中复读学校权威排名发布,中学/实验中学/学校/高中复读学校/高中/实验学校/名办高中高中复读学校品牌怎么样 - 品牌推荐师

随着高考竞争日益激烈,选择一所优质的高中复读学校,已成为众多学子实现升学梦想、优化人生路径的关键一步。德阳作为川内教育重镇,其周边汇聚了众多提供复读服务的学校,教学理念、师资力量、升学成果各有千秋,为家…

AI语音克隆掀起“声”命危机:全球Vishing攻击激增,传统身份核验体系告急

在伦敦金融城一家跨国银行的呼叫中心&#xff0c;客服代表Sarah接到一通紧急来电。电话那头的声音沉稳、略带沙哑——正是她熟悉的首席财务官Mark Thompson的嗓音。“我正在开一个闭门会议&#xff0c;手机快没电了&#xff0c;”对方语速略快但语气镇定&#xff0c;“立刻把一…

钓鱼新变种:攻击者借Cloudflare Pages与Zendesk“合法外衣”伪造客服门户,企业凭证安全防线告急

一、一封“工单升级”邮件&#xff0c;竟成企业账户失守的导火索2025年11月下旬&#xff0c;华东某跨境电商公司IT部门收到一封看似来自内部Zendesk支持系统的邮件。邮件主题为“【紧急】您的工单 #8472 已触发SLA超时&#xff0c;请立即验证身份以继续处理”。邮件内容专业、排…

2026年西安有实力的全屋定制实力厂家排行榜单,床/油工/小红砖/小青瓦/全屋定制/旧房改造,全屋定制公司口碑推荐榜 - 品牌推荐师

行业洞察:全屋定制进入“柔性生产+场景化服务”新阶段 随着消费升级与居住需求多元化,全屋定制行业正从“标准化产品输出”向“个性化空间解决方案”转型。2025年数据显示,国内全屋定制市场规模突破3200亿元,其中西…