2025-03-08 01:34:36 +08:00

281 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基于Python的中文文本分类系统
本项目是一个全面的中文文本分类系统它基于TensorFlow框架使用深度学习方法对中文文本进行自动分类。系统采用分层架构设计由数据层、处理层、模型层和接口层四个主要层次构成。
## 功能特点
- 支持多种深度学习模型CNN、RNN/LSTM、Transformer
- 完善的文本预处理:中文分词、停用词过滤、特征工程
- 丰富的评估指标准确率、精确率、召回率、F1分数等
- 多种接口方式命令行、Web界面、REST API
- 批量处理能力:支持批量文本、文件上传
## 系统架构
1. **数据层**:负责原始文本数据的存储和管理
2. **处理层**:实现文本预处理和特征工程
3. **模型层**:包含核心的分类模型,负责模型训练和预测
4. **接口层**:提供用户交互界面,支持数据输入输出和结果展示
## 安装方法
### 环境需求
- Python 3.7+
- TensorFlow 2.5+
- 其他依赖见 `requirements.txt`
### 安装步骤
1. 克隆仓库:
```bash
git clone https://git.sq0715.com/qin/Chinese_Text_Classification_System.git
cd chinese-text-classification
```
2. 创建虚拟环境(可选):
```bash
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
```
3. 安装依赖:
```bash
pip install -r requirements.txt
```
4. 安装项目:
```bash
pip install -e .
```
## 使用方法
### 训练模型
使用以下命令训练模型:
```bash
python main.py train --data_dir path/to/data --model_type cnn --epochs 10 --batch_size 64
```
参数说明:
- `--data_dir`:数据目录,默认使用配置中的目录
- `--model_type`:模型类型,可选 'cnn', 'rnn', 'transformer'
- `--epochs`:训练轮数
- `--batch_size`:批大小
- `--save_dir`:模型保存目录
### 评估模型
使用以下命令评估模型:
```bash
python main.py evaluate --model_path path/to/model --data_dir path/to/data
```
参数说明:
- `--model_path`:模型路径
- `--data_dir`:数据目录,默认使用配置中的目录
- `--output_dir`:评估结果输出目录
### 预测文本
使用以下命令预测单条文本:
```bash
python main.py predict --text "这是一条测试文本" --model_path path/to/model
```
使用以下命令预测文件内容:
```bash
python main.py predict --file path/to/file.txt --model_path path/to/model
```
### 启动Web服务
使用以下命令启动Web服务
```bash
python main.py web --host 0.0.0.0 --port 5000
```
然后在浏览器中访问 `http://localhost:5000`
### 启动API服务
使用以下命令启动API服务
```bash
python main.py api --host 0.0.0.0 --port 8000
```
然后可以通过 `http://localhost:8000/docs` 查看API文档
### 使用命令行接口
使用以下命令启动交互式命令行接口:
```bash
python main.py cli --interactive
```
## 目录结构
```
text_classification_system/
├── config/ # 配置文件目录
├── data/ # 数据层
├── preprocessing/ # 处理层
├── models/ # 模型层
├── training/ # 训练相关
├── evaluation/ # 评估相关
├── inference/ # 推理相关
├── interface/ # 接口层
├── utils/ # 工具类
├── saved_models/ # 保存的模型
├── tests/ # 测试代码
├── docs/ # 文档
├── scripts/ # 脚本文件
├── main.py # 主入口文件
├── requirements.txt # 依赖列表
├── setup.py # 安装脚本
└── README.md # 项目说明
```
## 数据集
本项目使用的数据集是清华大学开源的THUCNews数据集包含14个类别的新闻文本。您可以在以下位置下载数据集
[THUCNews数据集下载链接](http://thuctc.thunlp.org/)
下载后,将数据解压到 `data/raw/THUCNews` 目录下。
## 许可证
本项目采用 MIT 许可证,详情请参见 LICENSE 文件。
## 贡献指南
欢迎贡献代码、报告问题或提出改进建议。请先fork本仓库然后提交pull request。
## 联系方式
如有问题或建议,请通过 issue 或以下方式联系我们:
- 邮箱your.email@example.com
```
# 如何使用这个文本分类系统
## 1. 安装项目
首先,确保您的环境满足以下要求:
- Python 3.7+
- TensorFlow 2.5+
安装步骤:
```bash
# 克隆代码(假设您已有代码)
cd text_classification
# 创建虚拟环境(可选)
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或者在Windows上
# venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 安装项目(可选)
pip install -e .
```
## 2. 数据准备
确保THUCNews数据集位于正确路径
```
data/raw/THUCNews/
```
数据集应包含多个类别文件夹,每个文件夹中包含对应类别的文本文件。
## 3. 训练模型
使用以下命令训练CNN模型
```bash
python main.py train --model_type cnn --epochs 10 --batch_size 64
```
您也可以尝试其他模型类型:
- RNN/LSTM模型: `--model_type rnn`
- Transformer模型: `--model_type transformer`
训练完成后,模型将保存在`saved_models/classifiers/`目录下。
## 4. 评估模型
使用以下命令评估模型性能:
```bash
python main.py evaluate --model_path path/to/your/model
```
评估结果将包括准确率、精确率、召回率、F1分数等指标以及混淆矩阵可视化。
## 5. 使用模型预测
有多种方式使用训练好的模型:
### 命令行预测
```bash
# 预测单条文本
python main.py predict --text "2021年羽毛球冠军是林丹"
# 预测文件内容
python main.py predict --file path/to/your/file.txt
```
### 启动Web界面
```bash
python main.py web --port 5000
```
然后在浏览器中访问`http://localhost:5000`
### 启动API服务
```bash
python main.py api --port 8000
```
API文档可在`http://localhost:8000/docs`查看
### 交互式命令行
```bash
python main.py cli --interactive
```
## 6. 系统扩展
如需扩展系统功能:
1. 添加新模型:在`models/`目录下添加新的模型类
2. 调整预处理:修改`preprocessing/`目录下的相关模块
3. 添加新接口:在`interface/`目录下进行扩展
## 7. 常见问题解决
- 内存不足:减小`batch_size`或使用数据生成器
- 训练速度慢调整模型复杂度考虑使用GPU加速
- 分类准确率低:尝试不同模型结构,增加数据预处理步骤,调整超参数
这个完整的中文文本分类系统现在已经准备就绪,您可以根据上述说明开始训练和使用!