SentimentAnalysisModel/BertTopicDetection_Finetuned/README.md
本目录提供一个使用 google-bert/bert-base-chinese 的中文话题分类实现:
train.py 进行微调训练;predict.py 进行单条或交互式预测;model/。参考模型卡片: google-bert/bert-base-chinese
实际训练时,请以
dataset/下的 CSV 为准;脚本会自动识别常见列名或允许通过命令参数显式指定。
BertTopicDetection_Finetuned/
├─ dataset/ # 已放置数据
├─ model/ # 训练生成;亦缓存基础 BERT
├─ train.py
├─ predict.py
└─ README.md
pip install torch transformers scikit-learn pandas
或使用你既有的 Conda 环境。
CSV 至少包含文本列与标签列,脚本会尝试自动识别:
text/content/sentence/title/desc/questionlabel/labels/category/topic/class如需显式指定,请使用 --text_col 与 --label_col。
python train.py \
--train_file ./dataset/web_text_zh_train.csv \
--valid_file ./dataset/web_text_zh_valid.csv \
--text_col auto \
--label_col auto \
--model_root ./model \
--save_subdir bert-chinese-classifier \
--num_epochs 10 --batch_size 16 --learning_rate 2e-5 --fp16
要点:
model/bert-base-chinese;若无则尝试本机缓存,再不行则自动下载并保存;SAVE_TOTAL_LIMIT 调整);label_map.json 保存到 model/bert-chinese-classifier/。默认基座:google-bert/bert-base-chinese。启动训练时,若终端可交互,程序会提示从下列选项中选择(或输入任意 Hugging Face 模型 ID):
google-bert/bert-base-chinesehfl/chinese-roberta-wwm-ext-largehfl/chinese-macbert-largeIDEA-CCNL/Erlangshen-DeBERTa-v2-710M-ChineseIDEA-CCNL/Erlangshen-DeBERTa-v3-Base-ChineseLangboat/mengzi-bert-baseBAAI/bge-base-zh(更适合检索式/对比学习范式)nghuyong/ernie-3.0-base-zh说明:
NON_INTERACTIVE=1 时,会直接使用命令行参数 --pretrained_name 指定的模型(默认为 google-bert/bert-base-chinese)。model/ 目录,统一管理。单条:
python predict.py --text "这条微博讨论的是哪个话题?" --model_root ./model --finetuned_subdir bert-chinese-classifier
交互:
python predict.py --interactive --model_root ./model --finetuned_subdir bert-chinese-classifier
示例输出:
预测结果: 体育-足球 (置信度: 0.9412)
label_map.json。google-bert/bert-base-chinese;分类头维度=训练集唯一标签数。lr=2e-5,weight_decay=0.01,可在大型数据上微调到 1e-5~3e-5。max_length=128,batch_size=16;若截断严重可升至 256(成本上升)。warmup_ratio=0.1;否则回退 warmup_steps=0。--eval_fraction 折算步数(默认 0.25),save_total_limit=5 限制磁盘占用。--gpu 指定;脚本会清理分布式环境变量。TopicGPT 等生成式/自监督话题发现与动态体系构建方向;本实现旨在提供一个可运行的基线与工程示例。