首页 文章

实现基于Aspect的情感分析深度学习模型时出错

提问于
浏览
1

我有一个 Aspect based sentiment analysis 的任务,我必须首先预测每个句子的方面 . 方面是预定义的,总共19个 .

我必须实现一个 2-layer Neural Network (用于上述任务),其中第一层完全连接,第二层输出softmax分布 .
每个句子由单词向量的平均值表示 . 使用的单词矢量模型是 GoogleNews 300 dimensional wordvec model [https://drive.google.com/file/d/0B7XkCwpI5KDYNlNUTTlSS21pQmM/edit?usp=sharing] .
因此,对于每个句子,我有一个300维的单词向量(句子中所有单词的所有300维度单词向量的平均值) .
当句子具有方面i和总共k个方面时,输出 y 被定义为 y(i) = 1/k
否则 y(i)=0
(注意 - 一个句子可以有多个方面)

实施上述模型 -
我总共有1739个句子,每个句子都有一个 300-dim 单词向量 . 所以我有 np.array X 的形状 (1739,300) . 同样 y 是形状 (1739,19)np.array .

我使用keras的代码是 -

model = Sequential()

model.add(Dense(output_dim=64, input_dim=300))
model.add(Activation('relu'))

model.add(Dense(output_dim=19))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])

model.fit(X, y, nb_epoch=3)

这段代码让我错误 -
Exception: Error when checking model input: expected dense_input_4 to have shape (None, 300) but got array with shape (1739, 1)

我是新学习和深思熟虑的人,所以如果有人能说出我做错了什么?

1 回答

  • 1

    问题在于数据的错误维度 . 它的形状应该是 (1739, 300) . 重新检查您的数据准备,因为可能在那里发生错误 .

相关问题