# 基于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 或以下方式联系我们: - 邮箱:1980721162@qq.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加速 - 分类准确率低:尝试不同模型结构,增加数据预处理步骤,调整超参数 这个完整的中文文本分类系统现在已经准备就绪,您可以根据上述说明开始训练和使用!