Skip to content

中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,DPCNN,Transformer,基于pytorch,开箱即用。

License

Notifications You must be signed in to change notification settings

nlp-coder/Chinese-Text-Classification-Pytorch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chinese-Text-Classification-Pytorch

LICENSE

中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,基于pytorch,开箱即用。

介绍

每个模型详细介绍之后会写到我的博客上(待更新)。
数据以字为单位输入模型,预训练词向量使用 搜狗新闻 Word+Character 300d

环境

python 3.7
pytorch 1.1
tqdm
sklearn

中文数据集

我从THUCNews中抽取了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, 效果出奇的好

使用说明

# 训练并测试:
# 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 

参数

模型都在models目录下,超参定义和模型定义在同一文件中。

未完待续

  • transformer
  • bert

论文

[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

About

中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,DPCNN,Transformer,基于pytorch,开箱即用。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%