Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/649453932/Chinese-Text-Classification-Pytorch
中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,DPCNN,Transformer,基于pytorch,开箱即用。
https://github.com/649453932/Chinese-Text-Classification-Pytorch
Last synced: 29 days ago
JSON representation
中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,DPCNN,Transformer,基于pytorch,开箱即用。
- Host: GitHub
- URL: https://github.com/649453932/Chinese-Text-Classification-Pytorch
- Owner: 649453932
- License: mit
- Created: 2019-07-11T01:38:08.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-09-23T11:28:21.000Z (about 4 years ago)
- Last Synced: 2024-08-03T23:23:30.963Z (4 months ago)
- Language: Python
- Homepage:
- Size: 41.1 MB
- Stars: 5,216
- Watchers: 35
- Forks: 1,220
- Open Issues: 80
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- TCPapers - 649453932 / Chinese-Text-Classification-Pytorch - 开箱即用的基于PyTorch实现的中文文本分类 (Repository & Tool / Weakly-supervised & Semi-supervised Learning)
- StarryDivineSky - 649453932/Chinese-Text-Classification-Pytorch
README
# Chinese-Text-Classification-Pytorch
[![LICENSE](https://img.shields.io/badge/license-Anti%20996-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention, DPCNN, Transformer, 基于pytorch,开箱即用。
## 介绍
模型介绍、数据流动过程:[我的博客](https://zhuanlan.zhihu.com/p/73176084)数据以字为单位输入模型,预训练词向量使用 [搜狗新闻 Word+Character 300d](https://github.com/Embedding/Chinese-Word-Vectors),[点这里下载](https://pan.baidu.com/s/14k-9jsspp43ZhMxqPmsWMQ)
## 环境
python 3.7
pytorch 1.1
tqdm
sklearn
tensorboardX## 中文数据集
我从[THUCNews](http://thuctc.thunlp.org/)中抽取了20万条新闻标题,已上传至github,文本长度在20到30之间。一共10个类别,每类2万条。类别:财经、房产、股票、教育、科技、社会、时政、体育、游戏、娱乐。
数据集划分:
数据集|数据量
--|--
训练集|18万
验证集|1万
测试集|1万### 更换自己的数据集
- 如果用字,按照我数据集的格式来格式化你的数据。
- 如果用词,提前分好词,词之间用空格隔开,`python run.py --model TextCNN --word True`
- 使用预训练词向量:utils.py的main函数可以提取词表对应的预训练词向量。## 效果
模型|acc|备注
--|--|--
TextCNN|91.22%|Kim 2014 经典的CNN文本分类
TextRNN|91.12%|BiLSTM
TextRNN_Att|90.90%|BiLSTM+Attention
TextRCNN|91.54%|BiLSTM+池化
FastText|92.23%|bow+bigram+trigram, 效果出奇的好
DPCNN|91.25%|深层金字塔CNN
Transformer|89.91%|效果较差
bert|94.83%|bert + fc
ERNIE|94.61%|比bert略差(说好的中文碾压bert呢)bert和ERNIE模型代码我放到另外一个仓库了,传送门:[Bert-Chinese-Text-Classification-Pytorch](https://github.com/649453932/Bert-Chinese-Text-Classification-Pytorch),后续还会搞一些bert之后的东西,欢迎star。
## 使用说明
```
# 训练并测试:
# TextCNN
python run.py --model TextCNN# TextRNN
python run.py --model TextRNN# TextRNN_Att
python run.py --model TextRNN_Att# TextRCNN
python run.py --model TextRCNN# FastText, embedding层是随机初始化的
python run.py --model FastText --embedding random# DPCNN
python run.py --model DPCNN# Transformer
python run.py --model Transformer
```### 参数
模型都在models目录下,超参定义和模型定义在同一文件中。## 对应论文
[1] Convolutional Neural Networks for Sentence Classification
[2] Recurrent Neural Network for Text Classification with Multi-Task Learning
[3] Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
[4] Recurrent Convolutional Neural Networks for Text Classification
[5] Bag of Tricks for Efficient Text Classification
[6] Deep Pyramid Convolutional Neural Networks for Text Categorization
[7] Attention Is All You Need