# 基于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. 数据库初始化 ```bash # 创建数据库并执行初始化脚本 mysql -u root -p < docs/schema.sql ``` ### 2. 后端启动 ```bash 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. 前端启动 ```bash cd frontend # 安装依赖 npm install # 开发模式运行 npm run tauri:dev # 构建桌面应用 npm run tauri:build ``` ### 4. 使用Docker ```bash cd docker # 启动所有服务 docker-compose up -d # 停止服务 docker-compose down ``` ### 5. 机器学习模块 (可选) ```bash 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刷新/权限控制 | 待开发 | | 新闻爬取模块 | 多源新闻抓取与清洗 | 已完成 | | 文本分类模块 | 自动识别新闻类别 | 待开发 | | 新闻展示模块 | 列表/详情/相关推荐 | 待开发 | | 搜索模块 | 关键词全文检索 | 待开发 | | 数据可视化模块 | 分类统计/热门排行/趋势图 | 待开发 | | 后台管理模块 | 用户/新闻/分类/日志管理 | 待开发 | | 系统设置模块 | 主题切换/缓存清理/自动更新 | 待开发 | ## 文本分类算法 系统支持三种分类方案: 1. **传统机器学习**: TF-IDF + 朴素贝叶斯/SVM 2. **深度学习**: BERT-Chinese预训练模型微调 3. **混合方案**: 规则引擎 + 机器学习置信度评分 ## 开发规范 ### 后端开发规范 - RESTful API设计 - 统一响应格式 - 全局异常处理 - 接口文档自动生成 ### 前端开发规范 - TypeScript类型安全 - Composition API写法 - 统一的代码风格 - 响应式设计 ## 预期成果 1. 功能完整的新闻文本分类系统 2. 中文新闻分类数据集 (5000+条) 3. 分类准确率 > 85%, F1-Score > 0.82 4. 跨平台桌面应用 (安装包 < 50MB) ## 作者 张俊恒 软件学院 22级11班 学号: 2210121328 ## 许可证 MIT License