基于Transformer实现文本分类(Keras/TensorFlow)

Posted 白马负金羁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Transformer实现文本分类(Keras/TensorFlow)相关的知识,希望对你有一定的参考价值。

2017年,Google 在论文 Attention is All you need 中提出了 Transformer 模型,其使用 Self-Attention 结构取代了在 NLP 任务中常用的 RNN 网络结构。而且实验也证明Transformer 在效果上已经完败传统的 RNN 网络。

简单来说,Transformer  可以被看做是一个 Seq2seq 模型,它包括一个Encoder和一个Decoder。常常被用来做机器翻译,Encoder读入一个英语句子,Decoder输出一个德语句子。

可以用Transformer来实现一个分类器(例如判断自然语言的Sentiment)。这时,我们只需要使用其中的Encoder部分即可。


一、数据集解析

本文的示例使用的是 IMDB 数据集,它已经被包含在了TensorFlow/Keras中。该数据集包含有50000条电影评论,其中的25000条将被作为训练集,另外25000条将被作为测试集。在训练集中有一半的评论为正面评价,另外一半的评论为负面评价。同样地,测试集中的一半评论是正面评价,另外一半评论则为负面评价。

vocab_size = 20000  # Only consider the top 20k words
maxlen = 200  # Only consider the first 200 words of each movie review
(x_train, y_train), (x_val, y_val) = keras.datasets.imdb.load_data(num_words=vocab_size)
print(len(x_train), "Training sequences")
print(len(x_val), "Validation sequence

以上是关于基于Transformer实现文本分类(Keras/TensorFlow)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Keras 中实现分层 Transformer 用于文档分类?

[Python人工智能] 三十六.基于Transformer的商品评论情感分析 keras构建多头自注意力(Transformer)模型

[Python人工智能] 三十六.基于Transformer的商品评论情感分析 keras构建多头自注意力(Transformer)模型

文本分类:Keras+RNN vs 传统机器学习

文本分类:Keras+RNN vs传统机器学习

文本分类-06Transformer