1. 项目概述:基于SpringBoot的影评情感分析推荐系统
这个项目是我去年带队开发的一个电影推荐平台,核心创新点在于将传统推荐系统与NLP情感分析技术深度整合。不同于市面上简单的"猜你喜欢"推荐,我们通过分析海量影评的情感倾向,建立用户-电影-情感的三维关联模型。实际运营数据显示,这种融合情感维度的推荐算法使点击转化率提升了37%,远超传统协同过滤算法的表现。
系统采用经典的B/S架构,但有几个技术选型值得重点说明:
- 后端选择SpringBoot 2.7 + JDK1.8组合,这个看似保守的选择其实经过严格压测验证。在阿里云4核8G的ECS上,该组合能稳定支撑2000+ TPS的并发请求。
- 数据库没有跟风用MongoDB,而是坚持MySQL 5.7。因为影评数据虽然量大,但结构化程度高,关系型数据库的ACID特性对用户行为日志尤为重要。
- 前端采用Vue3+Element Plus,但特别开发了情感可视化专用组件库,后面会详细介绍实现细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心架构设计解析
2.1 技术栈选型背后的思考
很多教学项目喜欢堆砌新技术,但在真实生产环境中,稳定性永远是第一考量。我们的技术选型经历了三个阶段的验证:
第一阶段:原型验证
- 用Python快速实现情感分析POC(TextBlob+SnowNLP)
- 用Django搭建简易推荐接口
- 验证核心算法可行性
第二阶段:性能测试
- 对比SpringBoot、Quarkus、Micronaut三种Java框架
- 测试JPA、MyBatis、JOOQ三种ORM方案
- 最终选定SpringBoot+MyBatis组合,在开发效率与运行时性能间取得平衡
第三阶段:生产优化
- 引入Redisson实现分布式锁
- 用Hystrix实现熔断降级
- 配置Arthas在线诊断工具
2.2 系统分层架构
系统采用经典的四层架构,但每层都有特殊设计:
code复制[表现层]
- 自定义情感可视化组件
- 防XSS的富文本编辑器
- JWT鉴权拦截器
[业务层]
- 推荐策略工厂模式
- 情感分析责任链
- 影评审核流水线
[数据层]
- 电影数据分库策略(按年份)
- 用户行为日志分表策略(按月)
- 影评全文索引(ES集群)
[基础层]
- 自定义Starter监控埋点
- 敏感词DFA算法过滤
- 推荐结果AB测试框架
3. 情感分析模块深度实现
3.1 算法选型演进过程
我们经历了三次算法迭代:
V1.0 基于词典的方法
- 使用大连理工情感词典
- 简单加权计算情感分值
- 准确率仅68%,无法识别反讽
V2.0 传统机器学习
- 特征工程:TF-IDF + N-gram
- 模型选择:SVM > LR > NaiveBayes
- 准确率提升到82%
V3.0 深度学习方案
- BERT预训练模型微调
