当前位置: 首页 > news >正文

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

爆款实战!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.jsqmd.com/news/262250/

相关文章:

  • COOP、COEP、CORS 详解
  • 磁混凝制造企业如何选择,江苏、广东等地哪家更靠谱? - 工业品牌热点
  • 救命神器!8款AI论文软件测评:专科生毕业论文救星
  • vue3+python django框架的青岛工学院线上文献阅览平台
  • 2026 年 1 月油桶烘箱厂家推荐排行榜,高温油桶烘箱,工业油桶烘箱,油桶烘箱加热原理,高效节能烘烤设备公司推荐 - 企业推荐官【官方】
  • 深入 Python 对象模型:PyObject 与 PyVarObject 全解析
  • vue3+python+django和Vue3的体育馆场地预约管理系统的设计与实现
  • 超越“调用.fit()”:深度解析 Scikit-learn API 的设计哲学与高级范式
  • 《挑战 json.dumps:手写一个比它快 5 倍的 JSON 序列化器》
  • 安卓android广城理校园电动车租赁系统移动应用程序的开题
  • Matlab p文件 转换为m文件MATLAB matlab pcode,matlab p m...
  • “熟人”私信藏杀机:LinkedIn钓鱼直击财务高管,企业社交平台成安全盲区
  • 当LabVIEW遇上Halcon:手把手玩转语义分割
  • 聊聊上海诚信的婚恋机构,绿洲婚介所靠谱吗? - 工业品牌热点
  • 2025年德阳高中复读学校权威排名发布,中学/实验中学/学校/高中复读学校/高中/实验学校/名办高中高中复读学校品牌怎么样 - 品牌推荐师
  • AI语音克隆掀起“声”命危机:全球Vishing攻击激增,传统身份核验体系告急
  • 钓鱼新变种:攻击者借Cloudflare Pages与Zendesk“合法外衣”伪造客服门户,企业凭证安全防线告急
  • 2026年西安有实力的全屋定制实力厂家排行榜单,床/油工/小红砖/小青瓦/全屋定制/旧房改造,全屋定制公司口碑推荐榜 - 品牌推荐师
  • 伪装成“对账单”的远控木马:Coinbase钓鱼新套路暴露Windows端点安全盲区
  • 2026年1月蒸汽防爆烘箱厂家推荐排行榜,大型蒸汽防爆烘箱,高温蒸汽防爆烘箱,苏州蒸汽防爆烘箱,蒸汽防爆烘箱价格参数深度解析与选购指南 - 企业推荐官【官方】
  • 市场上优质的短视频矩阵厂家口碑推荐榜,ai数字人矩阵/GEO排名/短视频矩阵,短视频矩阵源头厂家推荐 - 品牌推荐师
  • 【详解】使用java解决-一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  • 留学科研机构怎么选?2026年最新聚焦申请效果与学术价值的终极选择指南 - 品牌推荐
  • Claude Agent Skills 实战指南:从原理到自动化生成的最佳实践
  • 基于数据科学的校园心理咨询系统的设计与实现开题报告
  • java-SSM345的网上图书购物销售_旧书回收vue-springboot
  • 主动配电网短期负荷预测重构 以IEEE33节点为算例,有迭代图,各个节点在重构前的电压幅值及重...
  • 有没有一款真正适合新手,又足够稳定,能长期使用的 Linux 桌面系统?
  • java-ssm346线上买菜系统买菜优选系统vue-springboot
  • java-SSM354的高校网上报名系统vue-springboot