# tangdou-bert **Repository Path**: weedlu/tangdou-bert ## Basic Information - **Project Name**: tangdou-bert - **Description**: 以糖豆TIM讨论问题为例,训练一个Encoder-only的问题分类模型 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-15 - **Last Updated**: 2026-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 糖豆TIM社区云讨论问题分类器 基于 RoBERTa-wwm-Ext 的中文问题分类模型,用于对糖豆TIM社区云平台的用户讨论问题进行自动分类。 ## 项目简介 本项目实现了一个 Encoder-only 架构的中文问题分类系统,采用 `chinese-roberta-wwm-ext` 预训练模型对社区云平台的用户问题进行 11 分类。该模型可应用于智能客服、工单分流、问题路由等场景。 ### 标签体系 | 编码 | 类别名称 | 说明 | |------|----------|------| | C01 | 走访/统计 | 走访记录、统计数据相关 | | C02 | 小区/物业/业委会/机构 | 社区、物业、业委会管理 | | C03 | 房态图/人房数据 | 房屋状态、人员数据 | | C04 | 标签/重点人群 | 人群标签、特殊人群 | | C05 | 换届选举 | 选举相关事务 | | C06 | 小事快办/社区动态 | 社区活动、动态发布 | | C07 | 账号/权限/登录 | 账户管理、权限控制 | | C08 | 系统故障/性能 | 系统问题、性能异常 | | C09 | 进度跟进/流程咨询 | 进度查询、流程指引 | | C10 | 功能优化/需求 | 新需求、功能建议 | | C11 | 数据导出/下载 | 数据导出相关 | ## 环境要求 - Python 3.8+ - PyTorch - Transformers - 详见 `requirements.txt` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 下载预训练模型 参考 [模型下载指南](docs/download_model.md),将模型文件下载到 `models/chinese-roberta-wwm-ext/` 目录。 ### 3. 准备数据 将训练数据放入 `data/` 目录,格式要求: - CSV 文件,包含 `text` 和 `label` 列 - `label_map.json` 定义标签映射关系 ```python # python src/prepare_data.py # === 1. 读取原始数据(GBK 编码)=== SRC = Path("input/讨论问题汇总-1.csv") df = pd.read_csv(SRC, encoding="utf-8-sig") print(f"[原始] 样本数: {len(df)}, 列: {list(df.columns)}") ``` 参照 input/讨论问题汇总-1.csv 准备训练数据。 ### 4. 训练模型 ```bash python src/train.py ``` 训练完成后模型保存至 `output/tdtim-classifier/` ### 5. 推理预测 **单条预测:** ```bash python src/infer.py --text "如何查看小区住户信息?" ``` **批量预测:** ```bash python src/infer.py --input data/test.csv --output data/test.pred.csv ``` **交互模式:** ```bash python src/infer.py --interactive ``` ### 6. 模型评估 ```bash python src/evaluate.py ``` ## 项目结构 ``` . ├── data/ # 数据目录 │ ├── train.csv # 训练集 │ ├── val.csv # 验证集 │ ├── test.csv # 测试集 │ ├── label_map.json # 标签映射 │ └── *.pred.csv # 预测结果 ├── src/ # 源代码 │ ├── train.py # 训练脚本 │ ├── infer.py # 推理脚本 │ ├── evaluate.py # 评估脚本 │ └── prepare_data.py # 数据清洗 ├── docs/ # 文档 │ ├── labeling_guide.md # 标注规范 │ ├── how-to-train-question-classifier.md # 训练指南 │ └── download_model.md # 模型下载 └── models/ # 模型目录 └── chinese-roberta-wwm-ext/ ``` ## 核心功能 - **多分类支持**:支持 11 类问题分类 - **自定义 Loss**:实现 WeightedTrainer 处理类别不均衡问题 - **多种推理模式**:支持单条、批量、交互三种预测方式 - **ONNX 导出**:支持导出为 ONNX 模型用于部署推理 ## 性能优化 详见 [训练指南](docs/how-to-train-question-classifier.md) 中的优化建议: - 数据增强 - 早停与学习率调度 - 类别采样策略 - 冻结底层微调 ## 文档 - [标注规范](docs/labeling_guide.md) - [训练指南](docs/how-to-train-question-classifier.md) - [模型下载](docs/download_model.md) ## 许可证 本项目仅供学习交流使用。