Datawhale九月组队学习–情感分析–Task04

往期指路:

本篇主要是将卷积神经网络应用到了情感分类任务当中,本篇所用的模型来自论文Convolutional Neural Networks for Sentence Classification,了解细节的小伙伴们可以查看原文。
在上一个教程中,我们研究了FastText模型,该模型通过将bi-gram显式添加到文本末尾来使用bi-gram,在这个CNN模型中,我们将使用多个不同大小的filter,这些filter将查看文本中的bi-grams(a 1×2 filter)、tri-grams(a 1×3 filter)and/or n-grams(a 1x n n n filter)

一、 模型搭建流程

1、数据预处理
2、构建模型
3、训练模型
4、模型验证

二、 数据预处理要点记录

与 task3 使用FastText模型的方法不同,本节不再需要刻意地创建bi-gram将它们附加到句子末尾。

这里的处理方法依然是:

  • 加载IMDB数据集
  • 构建词典,加载预训练词向量
  • 创建迭代器

三、 模型搭建要点记录

问题:如何将CNN用于文本处理?

1、图像一般是二维的,而文本是一维的。所以我们可以将一段文本中的每个单词沿着一个轴展开,向量中的元素沿着另一个维度展开。

2、然后我们可以使用一个 [n x emb_dim] 的filter。这将完全覆盖 n n n 个words,因为它们的宽度为emb_dim 尺寸。这里有4个词和5维嵌入,创建了一个[4×5] “image” 张量。一次覆盖两个词(即bi-grams))的filter 将是 [2×5] filter,filter 的每个元素都有一个与之相关的 weight。此filter 的输出将是一个实数,它是filter覆盖的所有元素的加权和。

3、filter “down” 移动图像(或穿过句子)以覆盖下一个bi-gram,并计算另一个输出(weighted sum)。

4、最后,filter 再次向下移动,并计算此 filter 的最终输出。

实现细节

1、in_channels参数是图像中进入卷积层的”通道”数,但是当使用文本时,我们只有一个通道,即文本本身。
2、out_channels是 filters 的数量,kernel_size是 filters 的大小。我们的每个”卷积核大小”都将是 [n x emb_dim] 其中 n n n 是n-grams的大小。

注:如果句子的长度小于实验设置的最大filter,那么必须将句子填充到最大filter的长度。

四、模型训练要点记录

训练和前面task一样,我们初始化优化器、损失函数(标准),并将模型和标准放置在GPU上。

以上就是Task04的全部内容了,接下来的学习继续坚持呀~。

Original: https://blog.csdn.net/weixin_44186785/article/details/120464839
Author: 二进制研究员
Title: Datawhale九月组队学习–情感分析–Task04

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/544785/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球