基于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)模型