《自然语言处理实战入门》文本分类 ---- 使用TextRNN 进行文本分类

Posted shiter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《自然语言处理实战入门》文本分类 ---- 使用TextRNN 进行文本分类相关的知识,希望对你有一定的参考价值。


TextRNN的原理

在一些自然语言处理任务中,当对序列进行处理时,我们一般会采用循环神经网络RNN,尤其是它的一些变种,如LSTM(更常用),GRU。当然我们也可以把RNN运用到文本分类任务中。

这里的文本可以一个句子,文档(短文本,若干句子)或篇章(长文本),因此每段文本的长度都不尽相同。在对文本进行分类时,我们一般会指定一个固定的输入序列/文本长度:该长度可以是最长文本/序列的长度,此时其他所有文本/序列都要进行填充以达到该长度;该长度也可以是训练集中所有文本/序列长度的均值,此时对于过长的文本/序列需要进行截断,过短的文本则进行填充。总之,要使得训练集中所有的文本/序列长度相同,该长度除之前提到的设置外,也可以是其他任意合理的数值。在测试时,也需要对测试集中的文本/序列做同样的处理。

首先我们需要对文本进行分词,然后指定一个序列长度n(大于n的截断,小于n的填充),并使用词嵌入得到每个词固定维度的向量表示。对于每一个输入文本/序列,我们可以在RNN的每一个时间步长上输入文本中一个单词的向量表示,计算当前时间步长上的隐藏状态,然后用于当前时间步骤的输出以及传递给下一个时间步长并和下一个单词的词向量一起作为RNN单元输入,然后再计算下一个时间步长上RNN的隐藏状态,以此重复…直到处理完输入文本中的每一个单词,由于输入文本的长度为n,所以要经历n个时间步长。

基于RNN的文本分类模型非常灵活,有多种多样的结构。接下来,我们主要介绍两种典型的结构。


代码实现

数据加载

以上是关于《自然语言处理实战入门》文本分类 ---- 使用TextRNN 进行文本分类的主要内容,如果未能解决你的问题,请参考以下文章

《自然语言处理实战入门》深度学习 ---- 预训练模型的使用(ALBERT 进行多标签文本分类与微调 fine tune)

《自然语言处理实战入门》深度学习 ---- 预训练模型的使用(ALBERT 进行多标签文本分类与CPU 下的微调 fine tune)

自然语言处理入门实战——基于循环神经网络RNNLSTMGRU的文本分类(超级详细,学不会找我!!!)

《自然语言处理实战入门》深度学习 ---- 预训练模型的使用(ALBERT 进行多标签文本分类与使用windows11 在WSL GPU 下的微调 fine tune)

《自然语言处理实战入门》 ---- NLP方向:面试笔试题集

《自然语言处理实战入门》 ---- NLP方向:面试笔试题集