我正在尝试对影评的情绪进行分类,并根据影评本身预测这部电影的类型。现在情感是一个二分类问题,其中的流派可以是多标签分类问题。
另一个澄清问题的例子是对句子的情绪进行分类,并预测句子的语气是快乐、讽刺、悲伤、可怜、愤怒还是恐惧。
更重要的是,我想使用Tensorflow CNN执行这种分类。我的问题是构建y_label和训练数据,以便输出帮助我检索情感和流派。例如,数据Y标签:[0,1,0,1,1,0]表示情绪为负面,情绪为讽刺和愤怒
你建议我怎么解决这个问题?
发布于 2017-07-10 17:28:52
基本上,在CNN的最后一层,当您将CNN输出调整为1x1xN的形式时,添加两个前馈神经网络。所以如果你有一个简单的分类问题,你可以将CNN的输出输入到一个前馈神经网络中,在这种情况下,你就有了两个这样的网络。因此,为了实现这一点,你需要具备以下条件:
因此,你必须分离分类,但你仍然需要反向传播它们,所以它看起来像这样:
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。
发布于 2017-07-10 14:54:18
您可以将其视为multi-label问题,并将sentiment和tone标签附加在一起。
现在,由于网络必须预测多个输出(在本例中为2个),您需要使用sigmoid而不是softmax这样的激活函数。你的预测可以用tf.round(logits)来实现。
https://stackoverflow.com/questions/45004514
复制相似问题