TensorFlow实现文本情感分析详解

  • 内容
  • 评论
  • 相关

前面我们介绍了如何将卷积网络应用于图像。本节将把相似的想法应用于文本。

文本和图像有什么共同之处?乍一看很少。但是,如果将句子或文档表示为矩阵,则该矩阵与其中每个单元是像素的图像矩阵没有什么区别。

接下来的问题是,如何能够将文本表示为矩阵?好吧,这很简单:矩阵的每一行都是一个表示文本的向量。当然,现在需要定义一个基本单位。一个简单方法是将基本单位表示为字符。另一种做法是将一个单词看作基本单位,将相似的单词聚合在一起,然后用表示符号表示每个聚合(有时称为聚类或嵌入)。

请注意,无论如何选择基本单位,都需要完成一个从基本单位到整数值地址的一一映射,以便可以将文本视为矩阵。例如,有10行文字,每行都是一个100维的嵌入,那么将其表示为10×100的矩阵。在这个特别的文本图像中,一个像素表示该句子x在位置y处有相应的嵌入。

你也许会注意到,文本并不是一个真正的矩阵,而是一个矢量,因为位于相邻行中的两个单词几乎没有什么关联。实际上,位于相邻列中的两个单词最有可能具有某种相关性,这是文本矩阵与图像的主要差异。

现在你可能想问:我明白你是想把文本当成一个向量,但是这样做就失去了这个词的位置信息,这个位置信息应该是很重要的,不是吗?

其实,事实证明,在很多真实的应用程序中,知道一个句子是否包含一个特定的基本单位(一个字符、一个单词或一个聚合体)是非常准确的信息,即使不去记住其在句子中的确切位置。

本节将使用 TFLearn 创建一个基于 CNN 的情感分析深度学习网络。正如前一节所讨论的,这里的 CNN 是一维的。

这里将使用 IMDb 数据集,收集 45000 个高度受欢迎的电影评论样本进行训练,并用 5000 个样本进行测试。TFLearn有从网络自动下载数据集的库,便于创建卷积网络,所以可以直接编写代码。

文本情感分析实现过程

  1. 导入 TensorFlow、tflearn 以及构建网络所需要的模块。然后导入 IMDb 库并执行独热编码和填充:



     

本文标题:TensorFlow实现文本情感分析详解

本文地址:https://www.hosteonscn.com/4251.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注