|
|
||
|---|---|---|
| .claude | ||
| backend | ||
| client | ||
| crawler-module | ||
| docker | ||
| docs | ||
| ml-module | ||
| .gitignore | ||
| README.md | ||
README.md
基于Tauri的新闻文本类别分类系统
项目简介
本系统是一个基于Tauri 2.x框架开发的跨平台桌面新闻文本分类系统,采用前后端分离架构,后端使用Spring Boot 3.x,前端使用Vue 3 + Composition API + TypeScript。系统集成了机器学习文本分类算法,能够自动识别新闻类别并进行智能分类。
技术栈
后端技术栈
- 核心框架: Spring Boot 3.2.x + Spring MVC
- 数据库: MySQL 8.0 + Redis 7.x
- ORM: MyBatis-Plus 3.5.x
- 安全认证: Spring Security 6.x + JWT
- API文档: Knife4j/OpenAPI 3.x
- 任务调度: XXL-Job
- HTTP客户端: Apache HttpClient 5 + Jsoup
前端技术栈
- 桌面框架: Tauri 2.x (基于Rust)
- UI框架: Vue 3 + Composition API + TypeScript
- 状态管理: Pinia
- 路由: Vue Router 4.x
- 样式: Tailwind CSS 3.x + HeadlessUI
- 构建工具: Vite 5.x
- 图表: ECharts 5.x
机器学习模块
- 传统算法: Scikit-learn (朴素贝叶斯、SVM)
- 深度学习: Transformers + BERT-Chinese (可选)
- NLP: jieba分词
项目结构
news-classifier/
├── backend/ # 后端Spring Boot项目
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/newsclassifier/
│ │ │ │ ├── controller/ # 控制器层
│ │ │ │ ├── service/ # 服务层
│ │ │ │ ├── mapper/ # 数据访问层
│ │ │ │ ├── entity/ # 实体类
│ │ │ │ ├── dto/ # 数据传输对象
│ │ │ │ ├── vo/ # 视图对象
│ │ │ │ ├── common/ # 公共类
│ │ │ │ ├── config/ # 配置类
│ │ │ │ ├── security/ # 安全认证
│ │ │ │ ├── crawler/ # 新闻爬虫
│ │ │ │ ├── classifier/ # 文本分类器
│ │ │ │ ├── scheduler/ # 定时任务
│ │ │ │ └── exception/ # 异常处理
│ │ │ └── resources/
│ │ │ ├── mapper/ # MyBatis映射文件
│ │ │ └── application.yml # 配置文件
│ │ └── test/
│ └── pom.xml
├── frontend/ # 前端Tauri+Vue3项目
│ ├── src/
│ │ ├── api/ # API接口
│ │ ├── assets/ # 静态资源
│ │ ├── components/ # 组件
│ │ ├── composables/ # 组合式函数
│ │ ├── layouts/ # 布局
│ │ ├── router/ # 路由
│ │ ├── stores/ # 状态管理
│ │ ├── types/ # 类型定义
│ │ ├── utils/ # 工具函数
│ │ ├── views/ # 页面
│ │ ├── App.vue
│ │ └── main.ts
│ ├── src-tauri/ # Tauri Rust后端
│ ├── package.json
│ └── vite.config.ts
├── ml-module/ # 机器学习模块
│ ├── data/
│ │ ├── raw/ # 原始数据
│ │ └── processed/ # 处理后的数据
│ ├── models/ # 训练好的模型
│ ├── src/
│ │ ├── traditional/ # 传统机器学习算法
│ │ ├── deep_learning/ # 深度学习算法
│ │ └── hybrid/ # 混合策略
│ ├── notebooks/ # Jupyter notebooks
│ ├── tests/ # 测试
│ └── requirements.txt
├── docs/ # 文档
│ └── schema.sql # 数据库脚本
├── docker/ # Docker配置
│ └── docker-compose.yml
└── README.md
快速开始
环境要求
- Java: JDK 17 或更高版本
- Node.js: 18.x 或更高版本
- Python: 3.9+ (机器学习模块)
- MySQL: 8.0+
- Redis: 7.x+
- Rust: 1.70+ (Tauri需要)
1. 数据库初始化
# 创建数据库并执行初始化脚本
mysql -u root -p < docs/schema.sql
2. 后端启动
cd backend
# 修改配置文件中的数据库连接信息
# src/main/resources/application.yml
# 启动后端服务
mvn spring-boot:run
# 或者使用IDE运行 NewsClassifierApplication.java
后端服务地址: http://localhost:8080/api API文档: http://localhost:8080/api/doc.html
3. 前端启动
cd frontend
# 安装依赖
npm install
# 开发模式运行
npm run tauri:dev
# 构建桌面应用
npm run tauri:build
4. 使用Docker
cd docker
# 启动所有服务
docker-compose up -d
# 停止服务
docker-compose down
5. 机器学习模块 (可选)
cd ml-module
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
# 训练模型
python src/traditional/train_model.py
功能模块
| 模块名称 | 功能描述 | 状态 |
|---|---|---|
| 用户认证模块 | 注册/登录/JWT刷新/权限控制 | 待开发 |
| 新闻爬取模块 | 多源新闻抓取与清洗 | 已完成 |
| 文本分类模块 | 自动识别新闻类别 | 待开发 |
| 新闻展示模块 | 列表/详情/相关推荐 | 待开发 |
| 搜索模块 | 关键词全文检索 | 待开发 |
| 数据可视化模块 | 分类统计/热门排行/趋势图 | 待开发 |
| 后台管理模块 | 用户/新闻/分类/日志管理 | 待开发 |
| 系统设置模块 | 主题切换/缓存清理/自动更新 | 待开发 |
文本分类算法
系统支持三种分类方案:
- 传统机器学习: TF-IDF + 朴素贝叶斯/SVM
- 深度学习: BERT-Chinese预训练模型微调
- 混合方案: 规则引擎 + 机器学习置信度评分
开发规范
后端开发规范
- RESTful API设计
- 统一响应格式
- 全局异常处理
- 接口文档自动生成
前端开发规范
- TypeScript类型安全
- Composition API写法
- 统一的代码风格
- 响应式设计
预期成果
- 功能完整的新闻文本分类系统
- 中文新闻分类数据集 (5000+条)
- 分类准确率 > 85%, F1-Score > 0.82
- 跨平台桌面应用 (安装包 < 50MB)
作者
张俊恒 软件学院 22级11班 学号: 2210121328
许可证
MIT License