【问题标题】:How to classify both sentiment and genres from movie reviews using CNN Tensorflow如何使用 CNN Tensorflow 对电影评论中的情绪和类型进行分类
【发布时间】:2017-12-13 17:50:29
【问题描述】:

我正在尝试对电影评论的情绪进行分类,并根据评论本身预测该电影的类型。现在 Sentiment 是一个二元分类问题,而 Genres 可以是多标签分类问题。

另一个澄清问题的例子是对句子的 Sentiment 进行分类,并预测句子的语气是快乐、讽刺、悲伤、可怜、愤怒还是恐惧。

更重要的是,我想使用 Tensorflow CNN 执行此分类。我的问题在于构建 y_label 并训练数据,以便输出帮助我检索 Sentiment 以及类型。 例如数据 Y 标签:[[0,1],[0,1,0,1,0]] 表示情绪为负面,情绪为讽刺和愤怒

你建议我如何解决这个问题?

【问题讨论】:

  • 您可以将此视为multi-label 问题,并将sentimenttone 标签附加在一起。
  • 那是最佳方法吗?如果第一类(这里是情感)和第二类(例如文学领域,例如科学、法律、社会学,作为多类分类问题)没有语义关系,网络是否仍然有效?
  • 为什么输出之间应该有任何关系?输入-输出应该有语义关系,而不是输出之间。
  • @vijaym 所以,澄清一下;我应该将 y_label 更改为 [0,1,0,1,0,1,0] 并使用 sigmoid 函数训练 CNN 模块以获得 logits 对吗?
  • 查看答案

标签: python-3.x tensorflow neural-network deep-learning data-science


【解决方案1】:

基本上在 CNN 的最后一层,当您将 CNN 输出调整为 1x1xN 的形式时,添加两个前馈神经网络。因此,如果您有一个简单的分类问题,您可以将 CNN 的输出输入到前馈神经网络中,现在在这种情况下,您将拥有两个这样的网络。因此,为了实现这一点,基本上你将拥有以下内容:

  • CNN 输出 ---feed---> 分类器#1
  • CNN 输出 ---feed---> 分类器#2

因此,您必须分离分类,但您仍然必须反向传播它们,因此它看起来像这样:

loss1 = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(prediction1, labels_1))
loss2 = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(prediction2, labels_2))

loss = loss1 + loss2 

因此,您将使用优化器“最小化”loss

【讨论】:

  • 您能否添加有关如何在 logits 上添加两个前馈网络的代码部分?与 vijay 建议的使用 Multi 类有何不同?
  • 我已经编辑了我的答案,希望对您有所帮助。如有任何其他问题,请随时提出。
【解决方案2】:

您可以将此视为multi-label 问题,并将sentimenttone 标签附加在一起。

现在由于网络必须预测多个输出(在这种情况下为 2 个),您需要使用像 sigmoid 而不是 softmax 这样的激活函数。您可以使用tf.round(logits) 进行预测。

【讨论】:

  • 好的,谢谢,我会按照您的建议编辑代码。那我会接受答案的。再次感谢。
  • 酷..首先尝试您的二进制分类以检查您的网络是否正常工作。因为在你的任务中使用 CNN 有点棘手(我会从 LSTM 开始做这个任务,也许还有 CNN)。因此,在尝试合并之前,请先让这个工作正常。
  • @vijaym 但是在多标签分类中,如果我使用的是 tf.nn。 sigmoid_cross_entropy_with_logits 那么我应该在这里减少什么 reduce_mean 或 reduce_sum ,?查看 dhusyant 的上一期 github.com/tensorflow/skflow/issues/113
  • @AyodhyankitPaul 的损失函数 reduce_meanreduce_sum 应该可以工作。但如果您想让learning rate 与不同的batch size 表现相同,则首选reduce_mean
猜你喜欢
  • 2015-07-03
  • 1970-01-01
  • 2014-02-02
  • 2021-06-23
  • 2016-04-19
  • 1970-01-01
  • 2017-03-05
  • 2018-12-26
  • 1970-01-01
相关资源
最近更新 更多