Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/649453932/Bert-Chinese-Text-Classification-Pytorch
使用Bert,ERNIE,进行中文文本分类
https://github.com/649453932/Bert-Chinese-Text-Classification-Pytorch
Last synced: about 1 month ago
JSON representation
使用Bert,ERNIE,进行中文文本分类
- Host: GitHub
- URL: https://github.com/649453932/Bert-Chinese-Text-Classification-Pytorch
- Owner: 649453932
- License: mit
- Created: 2019-07-15T12:08:59.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-28T08:34:59.000Z (6 months ago)
- Last Synced: 2024-11-11T13:01:49.372Z (about 1 month ago)
- Language: Python
- Homepage:
- Size: 5.95 MB
- Stars: 4,026
- Watchers: 20
- Forks: 900
- Open Issues: 156
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- StarryDivineSky - 649453932/Bert-Chinese-Text-Classification-Pytorch
README
# Bert-Chinese-Text-Classification-Pytorch
[![LICENSE](https://img.shields.io/badge/license-Anti%20996-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)中文文本分类,Bert,ERNIE,基于pytorch,开箱即用。
## 介绍
模型介绍、数据流动过程:~~还没写完,写好之后再贴博客地址。~~ 工作忙,懒得写了,类似文章有很多。机器:一块2080Ti , 训练时间:30分钟。
## 环境
python 3.7
pytorch 1.1
tqdm
sklearn
tensorboardX
~~pytorch_pretrained_bert~~(预训练代码也上传了, 不需要这个库了)## 中文数据集
我从[THUCNews](http://thuctc.thunlp.org/)中抽取了20万条新闻标题,已上传至github,文本长度在20到30之间。一共10个类别,每类2万条。数据以字为单位输入模型。类别:财经、房产、股票、教育、科技、社会、时政、体育、游戏、娱乐。
数据集划分:
数据集|数据量
--|--
训练集|18万
验证集|1万
测试集|1万### 更换自己的数据集
- 按照我数据集的格式来格式化你的中文数据集。## 效果
模型|acc|备注
--|--|--
bert|94.83%|单纯的bert
ERNIE|94.61%|说好的中文碾压bert呢
bert_CNN|94.44%|bert + CNN
bert_RNN|94.57%|bert + RNN
bert_RCNN|94.51%|bert + RCNN
bert_DPCNN|94.47%|bert + DPCNN原始的bert效果就很好了,把bert当作embedding层送入其它模型,效果反而降了,之后会尝试长文本的效果对比。
CNN、RNN、DPCNN、RCNN、RNN+Attention、FastText等模型效果,请见我另外一个[仓库](https://github.com/649453932/Chinese-Text-Classification-Pytorch)。
## 预训练语言模型
bert模型放在 bert_pretain目录下,ERNIE模型放在ERNIE_pretrain目录下,每个目录下都是三个文件:
- pytorch_model.bin
- bert_config.json
- vocab.txt预训练模型下载地址:
bert_Chinese: 模型 https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-chinese.tar.gz
词表 https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-chinese-vocab.txt
来自[这里](https://github.com/huggingface/pytorch-transformers)
备用:模型的网盘地址:https://pan.baidu.com/s/1qSAD5gwClq7xlgzl_4W3PwERNIE_Chinese: http://image.nghuyong.top/ERNIE.zip
来自[这里](https://github.com/nghuyong/ERNIE-Pytorch)
备用:网盘地址:https://pan.baidu.com/s/1lEPdDN1-YQJmKEd_g9rLgw解压后,按照上面说的放在对应目录下,文件名称确认无误即可。
## 使用说明
下载好预训练模型就可以跑了。
```
# 训练并测试:
# bert
python run.py --model bert# bert + 其它
python run.py --model bert_CNN# ERNIE
python run.py --model ERNIE
```### 参数
模型都在models目录下,超参定义和模型定义在同一文件中。## 未完待续
- 封装预测功能## 对应论文
[1] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
[2] ERNIE: Enhanced Representation through Knowledge Integration