superlishunqin d7ab44203d Readme
2025-03-08 09:29:24 +08:00

6.8 KiB
Raw Blame History

基于Python的中文文本分类系统

本项目是一个全面的中文文本分类系统它基于TensorFlow框架使用深度学习方法对中文文本进行自动分类。系统采用分层架构设计由数据层、处理层、模型层和接口层四个主要层次构成。

功能特点

  • 支持多种深度学习模型CNN、RNN/LSTM、Transformer
  • 完善的文本预处理:中文分词、停用词过滤、特征工程
  • 丰富的评估指标准确率、精确率、召回率、F1分数等
  • 多种接口方式命令行、Web界面、REST API
  • 批量处理能力:支持批量文本、文件上传

系统架构

  1. 数据层:负责原始文本数据的存储和管理
  2. 处理层:实现文本预处理和特征工程
  3. 模型层:包含核心的分类模型,负责模型训练和预测
  4. 接口层:提供用户交互界面,支持数据输入输出和结果展示

安装方法

环境需求

  • Python 3.7+
  • TensorFlow 2.5+
  • 其他依赖见 requirements.txt

安装步骤

  1. 克隆仓库:
git clone https://git.sq0715.com/qin/Chinese_Text_Classification_System.git
cd chinese-text-classification
  1. 创建虚拟环境(可选):
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate  # Windows
  1. 安装依赖:
pip install -r requirements.txt
  1. 安装项目:
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个类别的新闻文本。您可以在以下位置下载数据集

THUCNews数据集下载链接

下载后,将数据解压到 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模型

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. 系统扩展

如需扩展系统功能:

  1. 添加新模型:在models/目录下添加新的模型类
  2. 调整预处理:修改preprocessing/目录下的相关模块
  3. 添加新接口:在interface/目录下进行扩展

7. 常见问题解决

  • 内存不足:减小batch_size或使用数据生成器
  • 训练速度慢调整模型复杂度考虑使用GPU加速
  • 分类准确率低:尝试不同模型结构,增加数据预处理步骤,调整超参数

这个完整的中文文本分类系统现在已经准备就绪,您可以根据上述说明开始训练和使用!