基于Python的中文文本分类系统
本项目是一个全面的中文文本分类系统,它基于TensorFlow框架,使用深度学习方法对中文文本进行自动分类。系统采用分层架构设计,由数据层、处理层、模型层和接口层四个主要层次构成。
功能特点
- 支持多种深度学习模型:CNN、RNN/LSTM、Transformer
- 完善的文本预处理:中文分词、停用词过滤、特征工程
- 丰富的评估指标:准确率、精确率、召回率、F1分数等
- 多种接口方式:命令行、Web界面、REST API
- 批量处理能力:支持批量文本、文件上传
系统架构
- 数据层:负责原始文本数据的存储和管理
- 处理层:实现文本预处理和特征工程
- 模型层:包含核心的分类模型,负责模型训练和预测
- 接口层:提供用户交互界面,支持数据输入输出和结果展示
安装方法
环境需求
- Python 3.7+
- TensorFlow 2.5+
- 其他依赖见
requirements.txt
安装步骤
- 克隆仓库:
git clone https://git.sq0715.com/qin/Chinese_Text_Classification_System.git
cd chinese-text-classification
- 创建虚拟环境(可选):
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requirements.txt
- 安装项目:
pip install -e .
使用方法
训练模型
使用以下命令训练模型:
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
:模型保存目录
评估模型
使用以下命令评估模型:
python main.py evaluate --model_path path/to/model --data_dir path/to/data
参数说明:
--model_path
:模型路径--data_dir
:数据目录,默认使用配置中的目录--output_dir
:评估结果输出目录
预测文本
使用以下命令预测单条文本:
python main.py predict --text "这是一条测试文本" --model_path path/to/model
使用以下命令预测文件内容:
python main.py predict --file path/to/file.txt --model_path path/to/model
启动Web服务
使用以下命令启动Web服务:
python main.py web --host 0.0.0.0 --port 5000
然后在浏览器中访问 http://localhost:5000
启动API服务
使用以下命令启动API服务:
python main.py api --host 0.0.0.0 --port 8000
然后可以通过 http://localhost:8000/docs
查看API文档
使用命令行接口
使用以下命令启动交互式命令行接口:
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个类别的新闻文本。您可以在以下位置下载数据集:
下载后,将数据解压到 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模型:
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. 评估模型
使用以下命令评估模型性能:
python main.py evaluate --model_path path/to/your/model
评估结果将包括准确率、精确率、召回率、F1分数等指标,以及混淆矩阵可视化。
5. 使用模型预测
有多种方式使用训练好的模型:
命令行预测
# 预测单条文本
python main.py predict --text "2021年羽毛球冠军是林丹"
# 预测文件内容
python main.py predict --file path/to/your/file.txt
启动Web界面
python main.py web --port 5000
然后在浏览器中访问http://localhost:5000
启动API服务
python main.py api --port 8000
API文档可在http://localhost:8000/docs
查看
交互式命令行
python main.py cli --interactive
6. 系统扩展
如需扩展系统功能:
- 添加新模型:在
models/
目录下添加新的模型类 - 调整预处理:修改
preprocessing/
目录下的相关模块 - 添加新接口:在
interface/
目录下进行扩展
7. 常见问题解决
- 内存不足:减小
batch_size
或使用数据生成器 - 训练速度慢:调整模型复杂度,考虑使用GPU加速
- 分类准确率低:尝试不同模型结构,增加数据预处理步骤,调整超参数
这个完整的中文文本分类系统现在已经准备就绪,您可以根据上述说明开始训练和使用!