# itheima-nlp **Repository Path**: lanjing12138/itheima-nlp ## Basic Information - **Project Name**: itheima-nlp - **Description**: 黑马6期第5组NLP协作开发项目 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nlp_project_five #### 介绍 NLP评论分类项目,支持多种方法对产品评论进行情感分类(5 分类:Terrible / Bad / Okay / Great / Perfect)。 #### 软件架构 项目采用模块化设计,包含以下分类方案: | 方案 | 方法 | 说明 | |------|------|------| | 传统机器学习 | 随机森林 (Random Forest) | TF-IDF + 随机森林分类器 | | 传统机器学习 | FastText | Facebook 快速文本分类 | | 深度迁移学习 | BERT | BERT-base-chinese 微调 | | 大语言模型 | DeepSeek API | 通过 OpenAI SDK 调用 DeepSeek 进行 Few-shot 分类 | | 模型压缩 | 知识蒸馏 | BERT(教师)→ BiLSTM(学生) | | 模型压缩 | 权重剪枝 | L1 非结构化全局剪枝 | | 模型压缩 | 动态量化 | PyTorch 动态量化 (qint8) | #### 项目结构 ``` itheima-nlp/ │ ├── common/ # 公共模块 │ └── load_model.py # Config_bert 类:预加载 BERT 分词器和模型 │ ├── configs/ # 配置文件 │ └── config.py # 主配置类:路径、超参数、标签映射 │ ├── data/ # 数据目录 │ ├── raw/ # 原始数据(不提交到 git) │ │ ├── train # 训练集 (90,000 条) │ │ ├── test # 测试集 (5,000 条) │ │ ├── dev # 验证集 (2,501 条) │ │ ├── class # 类别标签名称 │ │ └── stopwords # 停用词表 │ ├── processed/ # 预处理后的数据 │ │ ├── random_forests/ # 随机森林用的分词数据 │ │ └── fasttext/ # FastText 用的 __label__ 格式数据 │ └── cache/ # 缓存目录 │ ├── models/ # 模型目录 │ ├── baselines/ # 基线模型(传统方法) │ │ ├── random_forests/ # 随机森林 │ │ │ ├── data_process.py # 正则分词 │ │ │ ├── model_train.py # TF-IDF + 随机森林训练 │ │ │ ├── model_predict_fun.py # 推理函数 │ │ │ ├── model_eval.py # 测试集评估 │ │ │ └── model_web.py # Flask Web 应用 │ │ ├── fasttext/ # FastText │ │ │ ├── data_process.py # __label__ 格式数据生成 │ │ │ ├── model_train.py # FastText 监督训练 │ │ │ ├── model_predict_fun.py # 推理函数 │ │ │ └── model_web.py # Flask Web 应用 │ │ └── llm/ # 大语言模型(DeepSeek API) │ │ ├── llm_classifier.py # DeepSeek 分类器 │ │ ├── model_eval.py # 批量评估 │ │ └── model_web.py # Flask Web 应用 │ │ │ └── bert/ # BERT 模型(基础 + 压缩变体) │ ├── base/ # BERT 基础微调 │ │ ├── data_process.py # MyDataset + collate_fn │ │ ├── model_train.py # BERT 微调训练 │ │ ├── model_predict_fun.py # 推理函数 │ │ └── model_web.py # Flask Web 应用 │ ├── distill/ # 知识蒸馏 │ │ ├── bilstm_classifier.py # BiLSTM 学生模型定义 │ │ ├── model_train.py # 蒸馏训练 (KL + CE) │ │ ├── model_predict_fun.py # 推理函数 │ │ └── model_web.py # Flask Web 应用 │ ├── pruning/ # 权重剪枝 │ │ ├── model_train.py # L1 非结构化剪枝 │ │ ├── model_predict_fun.py # 推理函数 │ │ └── model_web.py # Flask Web 应用 │ └── quantization/ # 动态量化 │ ├── model_train.py # PyTorch 动态量化 │ ├── model_predict_fun.py # 推理函数 │ └── model_web.py # Flask Web 应用 │ ├── scripts/ # 数据脚本 │ ├── data_split.py # 原始数据格式转换(空格→制表符) │ └── data_analysis.py # 标签分布与文本长度统计 │ ├── pretrained_model/ # 预训练模型 │ └── bert-base-chinese/ # HuggingFace BERT-base-chinese 权重 │ ├── config.json │ ├── vocab.txt │ └── tokenizer.json │ ├── outputs/ # 模型输出目录 ├── logs/ # 日志目录 ├── utils/ # 工具目录 ├── web/ # 前端资源目录 ├── test/ # 测试目录 ├── requirements.txt # 依赖列表 └── README.md # 项目说明 ``` #### 项目启动 ```bash python -m venv .venv # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate pip install -r requirements.txt ``` **注意**:由于 `bert-base-chinese` 中的模型文件太大无法上传,克隆到本地后需要自行下载放入 `pretrained_model/bert-base-chinese/` 目录。 #### 配置文件 - 配置文件位于 `configs/config.py`,包含所有路径、超参数和标签映射。 - BERT 模型初始化及 tokenizer 单独提取到 `common/load_model.py` 中的 `Config_bert` 类。 - 修改配置文件中的 `self.dp_api_key`,**配置文件尽量不要提交**,如果有修改在群里说明讨论后提交。 #### 使用说明 1. **数据准备**:运行 `scripts/data_split.py` 将原始数据转换为制表符分隔格式 2. **数据处理**:进入各模型目录运行 `data_process.py` 生成预处理数据 3. **模型训练**:运行各模型目录下的 `model_train.py` 进行训练 4. **模型推理**:通过 `model_predict_fun.py` 中的 `predict_fun()` 进行单条推理 5. **Web 服务**:运行 `model_web.py` 启动 Flask Web 应用(端口 5000) 6. **模型评估**:运行 `model_eval.py` 在测试集上评估模型性能 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)