新闻资讯

「广州哪里有可靠私人调查公司」CNN情感分析(文本分类)

「情感短文章」_关于情感教学的文章_情感 文章

这篇文章翻译到denny britz的博客。

一、数据预处理

这个情感分析的数据集来自Rotten Tomatoes的电影评论,总共10662个样本,一半正例,一半负例,词汇的数目大约2万个。

任何机器学习能够受到很高的执行,数据预处理都很重要。首先,简单介绍上其数据预处理的过程:

1、从原始文件中载入正例和负例;

2、对数据进行清理;

3、设定最大句子长度是59,不足的补符号;

4、建立一个字典,映射字至0-18765。

简单说明一下,第3步保证输入的段落间距一致,CNN本来是处理图像的,所以,我们要做的象个照片一样,因此要求长度一致。

二、CNN模型设计

这个图终于画的非常6了。

第一层词嵌入,用word2vec把句子映射为128维的向量。第二层是递归层,这个卷积层非常尤其,用了多个过滤器的大小。例如,每次分别划分3,4或5个字词;第三层,池化层,在这里采用的最大池化,并将所有卷积层的结果放到一个长的特点向量上,然后加上dropout正则,最后用softmax输出结果。

下面是代码实现。

为了更好的处理超参数「情感短文章」,我们把代码都放到一个TextCNN类上面:

import tensorflow as tf
import numpy as np
class TextCNN(object):
    """
    A CNN for text classification.
    Uses an embedding layer, followed by a convolutional, max-pooling and softmax layer.
    """
    def __init__(
      self, sequence_length, num_classes, vocab_size,
      embedding_size, filter_sizes, num_filters):
        # Implementation...

sequence_length-句子的长度,59;

num_classes-分类的数目,2;

vocab_size-字典的长度;

embedding_size-我们映射的向量维度大小,128;

filter_sizes-卷积层过滤器的大小,[3, 4, 5];

num_filters-过滤器的深度。

1、输入

定义输入数据的placeholder和dropout。

# Placeholders for input, output and dropout
self.input_x=tf.placeholder(tf.int32[None,sequence_length], name="input_x")
self.input_y=tf.placeholder(tf.float32[None,num_classes], name="input_y")
self.dropout_keep_prob=tf.placeholder(tf.float32,name="dropout_keep_prob")

tf.placeholder相当于一个坑,等着填呢。第二个参数是tensor的shape,None表示这个维度可以是任意数。在示例中,第一个维度是批数据的大小,用None表示,可以是任意大小的批数据。

关于情感教学的文章_「情感短文章」_情感 文章

2、词嵌入层

with tf.device('/cpu:0'), tf.name_scope("embedding"):
    W = tf.Variable(
        tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
        name="W")
    self.embedded_chars = tf.nn.embedding_lookup(W, self.input_x)
    self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)

联系我们

CONTACT US

广州及时雨私家侦探(广州本地私家侦探公司)

微信:185-2064-4544

电话:185-2064-4544

地址:广州市天河区

广州出轨调查