• Stars
    star
    332
  • Rank 126,957 (Top 3 %)
  • Language
    Python
  • Created almost 5 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于Transformers的文本分类

Transformers_for_Text_Classification

基于Transformers的文本分类

基于最新的 huggingface 出品的 transformers v2.2.2代码进行重构。为了保证代码日后可以直接复现而不出现兼容性问题,这里将 transformers 放在本地进行调用。

Highlights

  • 支持transformer模型后接各种特征提取器
  • 支持测试集预测代码
  • 精简原始transformers代码,使之更适合文本分类任务
  • 优化logging终端输出,使之输出内容更加合理

Support

model_type:

  • bert
  • bert_cnn
  • bert_lstm
  • bert_gru
  • xlnet
  • xlnet_cnn
  • xlnet_lstm
  • xlnet_gru
  • albert

Content

  • dataset:存放数据集
  • pretrained_models:存放预训练模型
  • transformers:transformers文件夹
  • results:存放训练结果

Usage

1. 使用不同模型

在shell文件中修改model_type参数即可指定模型

如,BERT后接FC全连接层,则直接设置model_type=bert;BERT后接CNN卷积层,则设置model_type=bert_cnn.

在本README的Support中列出了本项目中各个预训练模型支持的model_type

最后,在终端直接运行shell文件即可,如:

bash run_classifier.sh

在中文RoBERTa、ERNIE、BERT_wwm这三种预训练语言模型中,均使用BERT的model_type进行加载。

2. 使用自定义数据集

  1. dataset文件夹里存放自定义的数据集文件夹,如TestData.
  2. 在根目录下的utils.py中,仿照class THUNewsProcessor写一个自己的类,如命名为class TestDataProcessor,并在tasks_num_labels, processors, output_modes三个dict中添加相应内容.
  3. 最后,在你需要运行的shell文件中修改TASK_NAME为你的任务名称,如TestData.

Environment

  • one 2080Ti, 12GB RAM

  • Python: 3.6.5

  • PyTorch: 1.3.1

  • TensorFlow: 1.14.0(仅为了支持TensorBoard,无其他作用)

  • Numpy: 1.14.6

Performance

数据集: THUNews/5_5000

epoch:1

train_steps: 5000

model dev set best F1 and Acc remark
bert_base 0.9308869881728941, 0.9324 BERT接FC层, batch_size 8, learning_rate 2e-5
bert_base+cnn 0.9136314735833212, 0.9156 BERT接CNN层, batch_size 8, learning_rate 2e-5
bert_base+lstm 0.9369254464106703, 0.9372 BERT接LSTM层, batch_size 8, learning_rate 2e-5
bert_base+gru 0.9379539112313108, 0.938 BERT接GRU层, batch_size 8, learning_rate 2e-5
roberta_large RoBERTa接FC层, batch_size 2, learning_rate 2e-5
xlnet_mid 0.9530066512880131, 0.954 XLNet接FC层, batch_size 2, learning_rate 2e-5
xlnet_mid+lstm 0.9269927348553552, 0.9304 XLNet接LSTM层, batch_size 2, learning_rate 2e-5
xlnet_mid+gru 0.9494631023945569, 0.9508 XLNet接GRU层, batch_size 2, learning_rate 2e-5
albert_xlarge_183k

Download Chinese Pre-trained Models

NPL_PEMDC

More Repositories

1

EDA_NLP_for_Chinese

An implement of the paper of EDA for Chinese corpus.中文语料的EDA数据增强工具。NLP数据增强。论文阅读笔记。
Python
1,340
star
2

CS224N-Stanford-Winter-2019

The collection of ALL relevant materials about CS224N-Stanford/Winter 2019 course. THANKS TO THE PROFESSOR AND TAs! 斯坦福大学CS224N 【2019】课程的【所有】相关的资料。感谢Chris Manning教授和Abigail See,感谢所有助教!
663
star
3

CCF_BDCI_2019_datafountain350

CCF BDCI 2019 互联网新闻情感分析 复赛top8 代码
Jupyter Notebook
66
star
4

NLP_PEMDC

NLP Predtrained Embeddings, Models and Datasets Collections(NLP_PEMDC). The collection will keep updating.
63
star
5

USTC_Reexamination

本仓库建立的目的是,共享中国科学技术大学(USTC)计算机科学与技术学院硕士研究生历年复试真题。
46
star
6

NLP_competitions

A list of NLP competitions, including solutions.
34
star
7

Text_Classification

Summary of Text Classification in deep learning techniques implemented by PyTorch and TensorFlow. 深度学习文本分类技术总结,以PyTorch实现。
Python
13
star
8

NLP_tasks

将我做过的NLP中主流任务做一个集合 ,以形成一个大体的知识框架。本集合将不断更新。
8
star
9

BERT_tasks

Record my using BERT to solve problems.
Python
6
star
10

spider_for_Crawling_Comments

基于Scrapy的爬虫,爬取 地方领导留言网 “http://liuyan.people.com.cn/threads/list?fid=539 中的留言内容。
Python
3
star
11

CS224N-Stanford-2017-Learning-Notes

斯坦福大学CS224N学习笔记。本笔记不会重复包含该课程提供的现成材料,只会记录我学习过程中的理解、总结、心得与补充等。
1
star