AI驱动的小说内容分析与摘要生成系统
💡 功能 • 🚀 快速开始 • 🏗️ 架构 • ⚙️ 技术栈 • 📊 进度 • QQ: 1610494022
# NovelSight 小说智析 (Novel Assistant)让小说阅读更高效,内容理解更深入 联系方式: qq:1610494022
我在看小说时遇到的问题,让我决定做这个软件 一、那些年读小说踩过的坑
- 作为一个资深小说爱好者,我在阅读中频繁遇到这些困扰:
- 筛选难:面对书架上几百本小说,不知道哪本 "不踩雷"——
- 简介写得天花乱坠,实际剧情拖沓、人设崩塌,比如某科幻小说前 10 章都在堆砌技术术语,主线剧情推进极慢。
- 想找 "反套路" 小说,却只能靠网友评论盲选,耗时又低效。
二、理解累:
- 复杂世界观小说(如修真体系、星际设定),章节内容零散,看完记不住核心设定,比如某玄幻小说里 300 个门派设定,根本理不清脉络。
- 长章节小说(如百万字网文),中间穿插大量填充内容,想跳过 "水章" 却担心错过主线,比如某历史小说每 5 章就有 2 章在描写无关的配角日常。 -无论您是想快速了解一部新小说,还是希望深入分析您喜爱的作品,小说精读助手都能提供帮助。
身为资深小说爱好者,我在阅读中频繁遇到这些困扰:
- 面对书架上几百本小说,不知道哪本"不踩雷"
- 简介写得天花乱坠,实际剧情拖沓、人设崩塌
- 想找"反套路"小说,却只能靠网友评论盲选,耗时又低效
- 复杂世界观小说(如修真体系、星际设定),章节内容零散,理不清核心设定
- 长篇小说中穿插大量填充内容,想跳过"水章"却担心错过主线剧情
NovelSight 通过AI技术解析小说内容,提取关键情节,生成摘要和标签,为您省去筛选和理解的烦恼。无论是快速了解一部新小说,还是深入分析您喜爱的作品,小说智析都能提供专业帮助。
时间 | 工作内容 | 状态 |
---|---|---|
10:00-12:00 | 修复网站爬虫章节标题过长导致数据库存储错误问题 在WebScraperServiceImpl中实现标题截断功能 针对特定网站(biaiqu.cc)的爬虫优化 |
✅ |
13:30-15:30 | 在ProcessingServiceImpl中添加标题长度检查 优化截断算法,保留章节序号信息 确保符合数据库varchar(255)限制 |
✅ |
15:30-17:00 | 在NovelServiceImpl中添加额外标题检查 完善文本处理安全性 测试多个来源网站的小说抓取 |
✅ |
17:00-18:00 | 更新技术文档 记录问题解决方案 更新README开发日志 |
✅ |
时间 | 工作内容 | 状态 |
---|---|---|
09:00-10:30 | 修复前端ESLint错误 删除NovelVisualizationView中未使用的chartId变量 更新可视化组件的代码规范 |
✅ |
10:30-12:00 | 优化人物关系网络可视化组件 改进关系连线样式与交互效果 增强图表性能,减少重绘频率 |
✅ |
13:30-15:00 | 整理项目文件结构 优化API调用流程 添加缺失的组件注释 |
✅ |
15:00-17:30 | 完善可视化模块技术文档 更新README开发日志 记录近期bug修复与功能优化 |
✅ |
时间 | 工作内容 | 状态 |
---|---|---|
09:00-11:30 | 修复数据库字段长度限制问题 修复EmotionalData实体中event_description列定义 修改Chapter实体中summary字段定义为MEDIUMTEXT |
✅ |
13:30-15:00 | 优化文本处理流程 添加长文本自动截断功能 避免数据库存储溢出 |
✅ |
15:30-17:00 | 测试小说上传和处理功能 验证文本截断逻辑 确认数据库表结构更新 |
✅ |
17:00-18:30 | 代码优化与问题排查 更新技术文档和开发日志 记录字段长度问题解决方案 |
✅ |
时间 | 工作内容 | 状态 |
---|---|---|
09:00-11:30 | 前端代码清理与优化 删除冗余的AnalyzeView组件 更新路由系统移除/analyze路由 |
✅ |
13:30-15:30 | 修复上传小说后的页面跳转逻辑 添加lastUploadedNovelId状态管理 优化状态轮询和错误处理 |
✅ |
16:00-17:00 | 重构小说可视化流程 统一使用novel/:id/visualization路由 更新相关组件中的goToAnalyze方法 |
✅ |
17:00-18:30 | 增强NLP服务对话提取功能 改进中文引号识别正则表达式 实现extractDialogues方法支持更准确的角色识别 |
✅ |
时间 | 工作内容 | 状态 |
---|---|---|
09:00-11:30 | 编写可视化系统技术文档 详细记录系统架构和数据流程 补充数据库表设计说明 |
✅ |
13:30-15:30 | 为结构分析图表组件添加详细注释 创建可视化组件目录说明文档 补充API接口文档和使用示例 |
✅ |
16:00-17:30 | 更新主README文档可视化部分 添加可视化系统常见问题解决方案 校对所有文档确保一致性 |
✅ |
时间 | 工作内容 | 状态 |
---|---|---|
09:00-11:30 | 修复前端可视化组件的ECharts库依赖问题 更新所有图表组件直接导入echarts |
✅ |
13:30-15:30 | 优化小说结构分析图表组件 修复关键词云组件wordcloud依赖问题 统一echarts导入和初始化方式 |
✅ |
16:00-17:30 | 调整echarts引用 成功构建前端项目验证修复 解决编译警告并提升加载性能 优化系统日志格式与存储方式 |
✅ |
时间 | 工作内容 | 状态 |
---|---|---|
09:00-11:00 | 修复前端API调用问题 修正用户统计接口响应处理 优化MyNovelsView组件错误处理 |
✅ |
13:30-15:30 | 升级Spring Boot至3.x版本 更新所有javax.包引用为jakarta. 修复JwtUtils兼容性问题 |
✅ |
16:00-17:30 | 增强错误处理和日志记录 添加API响应调试功能 实现数据模型默认值设置 |
✅ |
时间 | 工作内容 | 状态 |
---|---|---|
09:30-11:30 | 解决Spring Security循环依赖问题 修复AccessDeniedException错误 |
✅ |
13:00-15:00 | 完善管理员仪表盘路由配置 创建NovelManagementView和SystemLogsView组件 修复ESLint错误,优化代码结构 |
✅ |
15:30-17:30 | 实现用户登录状态管理和动态显示 优化Vuex存储,改进组件显示 完善登录流程,基于角色跳转 |
✅ |
17:30-18:00 | 代码优化与清理 美化登录按钮和用户下拉菜单样式 |
✅ |
基础架构搭建 |
✓ 前端框架搭建 (Vue.js 3 + Element Plus) ✓ 后端框架搭建 (Spring Boot 3.2.4) ✓ 数据库配置 (MySQL 8.2.0) ✓ 基本API设计和实现 |
用户认证系统 |
✓ 用户注册/登录功能 ✓ JWT令牌认证 ✓ 基于角色的权限控制 ✓ 登录状态管理和动态显示用户信息 |
管理员后台 |
✓ 管理员仪表盘 ✓ 用户管理界面 ✓ 小说管理界面 ✓ 系统日志查看界面 |
基础UI组件 |
✓ 导航栏和页面布局 ✓ 登录和注册表单 ✓ 用户下拉菜单 ✓ 小说列表显示 |
核心业务流程 |
✓ 小说文件上传功能 ✓ 简单的章节识别与提取 ✓ 小说处理状态跟踪 ✓ 基本的小说详情查看 ✓ 用户小说统计功能 ✓ 我的小说列表展示 ✓ 文本处理安全性增强(长文本自动截断) |
系统安全性 |
✓ 解决Spring Security循环依赖问题 ✓ 修复AccessDeniedException错误 ✓ 优化认证授权流程 ✓ 升级至Spring Boot 3.x兼容 ✓ 增强API错误处理机制 ✓ 数据库字段长度溢出问题修复 |
可视化系统 |
✓ 关键词云实现 (基于ECharts-wordcloud) ✓ 情节波动图绘制 (基于ECharts折线图) ✓ 小说结构分析可视化 (双层饼图) ✓ 人物关系网络可视化 (基于力导向图) ✓ 可视化数据库设计与实现 ✓ 可视化API接口开发 ✓ 可视化技术文档编写 ✓ 修复可视化组件ESLint错误 ✓ 优化人物关系网络图表性能与样式 ✓ 完善组件注释与API文档 |
技术文档 |
✓ 系统架构文档 ✓ API接口文档 ✓ 可视化组件使用指南 ✓ 开发者文档 ✓ 问题排查指南 ✓ 开发日志更新 |
类别 | 任务 | 优先级 |
---|---|---|
核心功能强化 | 增强中文网络小说的章节识别 | 高 |
改进摘要生成算法,减少重复内容 | 高 | |
实现关键词提取和标签生成 | 高 | |
数据可视化增强 | 实现字数分布统计图表 | 中 |
添加可视化数据导出功能 | 低 | |
用户体验优化 | 添加用户偏好设置 | 中 |
实现暗黑模式 | 低 | |
优化移动端响应式设计 | 中 | |
高级分析功能 | 小说内容情感分析 | 低 |
写作风格识别 | 低 | |
小说相似度比较功能 | 低 | |
系统性能优化 | 大文件处理性能优化 | 中 |
数据库查询优化 | 高 | |
前端资源加载优化 | 低 | |
部署与CI/CD | 容器化部署方案 | 中 |
自动化测试流程 | 中 | |
持续集成与部署流程 | 低 |
- 🗃️ 多源输入: 支持TXT、EPUB格式文件上传和网页链接解析
- 📑 章节识别: 自动识别章节标题,提取正文内容,过滤广告
- 🔄 批量处理: 支持批量导入和处理多部小说
- 📌 分层摘要: 提供章节摘要、情节脉络图和全书概述
- 🧠 内容理解: 通过自然语言处理理解小说情节和主题
- 📊 结构化输出: 将非结构化文本转换为结构化信息
-
🔍 关键词云: 直观展示小说中的高频词汇和关键概念,帮助快速把握核心主题
- 基于词频和重要性权重自动生成
- 支持自定义颜色和布局
- 响应式设计,适配各种屏幕尺寸
-
📈 情节波动图: 展示小说情节起伏和情感变化
- 可视化故事情节的紧张度和情感强度
- 标记重要剧情点和高潮转折
- 帮助读者理解叙事结构和节奏
-
🥧 结构分析图表: 通过双层饼图展示小说的整体结构和章节分布
- 内层圆环展示主要结构(开端、发展、高潮、结局等)
- 外层圆环展示详细分段(各子情节、转折点等)
- 交互式设计,点击查看各部分详情
-
👨👩👧👦 人物关系网络图: 可视化小说中角色之间的关系
- 基于力导向图展示人物关系
- 节点大小反映角色重要性
- 连接线表示角色之间的关系类型和强度
- 支持交互式探索,鼠标悬停查看角色简介
- 自适应布局,智能排布复杂关系网络
- 自动识别对话内容中的角色关系
- 优化内存使用,支持大量角色节点显示
-
⚙️ 技术实现:
- 基于ECharts可视化库构建的响应式图表
- 前后端分离架构,数据缓存优化
- 结构化数据存储,支持实时更新
-
🔗 API接口:
/novels/visualization/{novelId}/keywords
: 获取关键词云数据/novels/visualization/{novelId}/emotional
: 获取情节波动数据/novels/visualization/{novelId}/structure
: 获取结构分析数据/novels/visualization/{novelId}/characters
: 获取人物关系网络数据/novels/visualization/{novelId}/all
: 获取所有可视化数据
- 👍 推荐标签: 突出小说的积极特点
⚠️ 避雷标签: 提示小说的潜在问题- 🚪 阅读门槛: 说明阅读所需的前置知识
- JDK: Oracle JDK 11.0.21 (LTS版本)
- Modular System Support
- Enhanced String API
- Improved Garbage Collector
- Sealed Classes
- Spring生态系统:
- Spring Boot 3.2.4
- Auto-configuration
- Embedded Server (Tomcat 10.1.x)
- Production-ready Features
- Jakarta EE 10 Support
- Spring Framework 6.1.x
- IoC Container
- AOP Support
- WebMVC Framework
- Spring Security 6.2.x
- Authentication & Authorization
- Password Encryption (BCrypt)
- CORS Configuration
- Spring Data JPA 3.2.x
- Repository Pattern
- Dynamic Query Generation
- Audit Features
- Spring Boot 3.2.4
- ORM框架:
- Hibernate 6.4.x
- Second-level Cache
- Lazy Loading
- Batch Processing
- Hibernate 6.4.x
- 数据库:
- MySQL 8.2.0
- InnoDB引擎
- UTF8MB4字符集
- 优化索引
- MySQL 8.2.0
- JWT: jjwt 0.11.5
- Stateless Authentication
- Configurable Expiration
- Refresh Token Support
- 加密算法:
- BCrypt (10轮加密)
- HTTPS/TLS 1.3
- 安全防护:
- XSS防护
- CSRF防护
- SQL注入防护
- 文本解析:
- JSoup 1.16.2 (HTML解析)
- Apache PDFBox 3.0.1
- Apache POI 5.2.5 (Office文档)
- 自然语言处理:
- HanLP portable-1.8.4
- 中文分词
- 命名实体识别
- 关键词提取
- OpenNLP 2.3.1
- HanLP portable-1.8.4
- Vue.js 3.2.47:
- Composition API
- 响应式系统
- 虚拟DOM
- 状态管理:
- Vuex 4.0.2
- 状态持久化
- 模块化管理
- Vuex 4.0.2
- 路由管理:
- Vue Router 4.1.6
- 动态路由
- 路由守卫
- 懒加载
- Vue Router 4.1.6
- Element Plus 2.3.5:
- 响应式布局
- 主题定制
- 国际化支持
- 可视化:
- ECharts 5.4.2
- 图表组件
- 数据可视化
- D3.js 7.8.5
- ECharts 5.4.2
- 构建工具:
- Vite 4.3.9
- 快速热重载
- 按需编译
- Vite 4.3.9
- 包管理:
- Node.js 16.20.1
- npm 8.19.4
- 代码质量:
- ESLint 8.41.0
- Prettier 2.8.8
- 测试框架:
- Jest 29.5.0
- Vue Test Utils 2.3.2
- Maven 3.8.8:
- 依赖管理
- 生命周期管理
- 多模块构建
- Gradle 7.6.1 (可选):
- 增量构建
- 构建缓存
- Docker 24.0.2:
- 多阶段构建
- 容器编排
- Docker Compose 2.18.1:
- 服务定义
- 环境配置
- Jenkins 2.401.1:
- 流水线即代码
- 自动化部署
- Git 2.40.1:
- 版本控制
- 分支管理
- Spring Boot Actuator:
- 健康检查
- 指标收集
- Prometheus + Grafana:
- 性能监控
- 可视化面板
graph TD
A[前端 Vue.js] -->|API请求| B[后端 Spring Boot]
B -->|数据存储| C[MySQL数据库]
B -->|文本处理| D[NLP处理模块]
D -->|返回分析结果| B
B -->|返回数据| A
style A fill:#b8e0d2,stroke:#5d9b9b,stroke-width:2px
style B fill:#f0d0b0,stroke:#d09a45,stroke-width:2px
style C fill:#c3b8e0,stroke:#8778ba,stroke-width:2px
style D fill:#f0b8e0,stroke:#ba5d9b,stroke-width:2px
- ☕ Java 11.0+ (推荐使用JDK 11.0.21)
- 🟢 Node.js 16+ (推荐使用16.20.1)
- 🐬 MySQL 8.0+
- 🏗️ Maven 3.6+
1. 配置数据库
1. **配置数据库** ```bash # 创建数据库和表结构 mysql -u root -p < sql/schema.sqlmysql -u root -p < sql/sample_data.sql
<details>
<summary><b>2. 配置后端</b></summary>
2. **配置后端**
```bash
cd backend
# 修改application.properties中的数据库连接信息
mvn clean install
3. 启动后端服务
3. **启动后端服务** ```bash ```为提升数据安全性和用户体验,系统现已实现小说的软删除功能。当用户"删除"小说时,系统不再物理删除数据,而是通过标记的方式将小说标记为已删除状态,前端不再显示该小说。同时,提供了恢复功能,允许用户恢复误删的小说。
-
数据库修改:
- 在
novels
表中新增is_deleted
字段(TINYINT类型),0表示正常,1表示已删除 - 添加索引
idx_novels_is_deleted
提高查询性能
- 在
-
实体类修改:
- 在
Novel
类中添加isDeleted
字段及对应的 getter/setter 方法
- 在
-
Repository层修改:
- 添加
findByIsDeletedFalse()
等方法用于查询未删除的小说 - 添加
findByUserIdAndIsDeletedFalse()
等针对用户的查询方法
- 添加
-
Service层修改:
- 更新
deleteNovel()
方法实现软删除逻辑 - 添加
restoreNovel()
方法允许恢复已删除的小说 - 添加
getDeletedNovelsByUserId()
方法获取用户已删除的小说
- 更新
-
Controller层修改:
- 添加
/novels/{id}/restore
端点实现小说恢复功能 - 添加
/user/novels/deleted
端点获取用户已删除的小说列表
- 添加
- 数据安全:避免误删操作导致的数据永久丢失
- 用户体验:提供恢复机制,使用户能够找回删除的小说
- 实施简单:通过添加标记字段实现,对现有代码影响最小
- 性能友好:软删除机制不会对系统性能造成明显影响
- 删除小说:使用原有的删除API,系统会执行软删除
- 查看已删除小说:
GET /user/novels/deleted
- 恢复已删除小说:
POST /novels/{id}/restore