Nlp 基于方面的情绪分析深度学习模型的实现错误

Nlp 基于方面的情绪分析深度学习模型的实现错误,nlp,deep-learning,keras,sentiment-analysis,Nlp,Deep Learning,Keras,Sentiment Analysis,我的任务是基于方面的情绪分析,首先要预测每个句子的方面。方面是预定义的&它们总共有19个 我必须实现一个2层神经网络(用于上述任务),其中第一层完全连接,第二层输出softmax分布。 每个句子由词向量的平均值表示。所使用的词向量模型是GoogleNews 300维词向量模型[]。 因此,对于每个句子,我有一个300维的单词向量(句子中所有单词的300维单词向量的平均值)。 当句子具有方面i和k个方面的总和时,输出y被定义为y(i)=1/k 否则y(i)=0 (注意-一个句子可以有多个方面) 要

我的任务是基于方面的情绪分析,首先要预测每个句子的方面。方面是预定义的&它们总共有19个

我必须实现一个
2层神经网络
(用于上述任务),其中第一层完全连接,第二层输出softmax分布。
每个句子由词向量的平均值表示。所使用的词向量模型是
GoogleNews 300维词向量模型
[]。
因此,对于每个句子,我有一个300维的单词向量(句子中所有单词的300维单词向量的平均值)。
当句子具有方面i和k个方面的总和时,输出
y
被定义为
y(i)=1/k
否则
y(i)=0

(注意-一个句子可以有多个方面)

要实现上述模型-
我总共有1739个句子&每个句子都有一个
300 dim
wordvector。所以我有一个
np.array
X
的形状
(1739300)
。类似地,
y
np.数组
的形状
(1739,19)

我使用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)     
此代码向我抛出错误-
异常:检查模型输入时出错:预期密集输入\u 4具有形状(无,300),但获得具有形状的数组(1739,1)


我是深入学习和keras的新手,所以如果有人能告诉我我做错了什么?

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

您能打印出X和y的形状吗。似乎出了什么问题,它们的形状与您预期的不同。X.shape是
(1739,)
&y.shape是
(1739,)
X不应该有一个形状(1739300)?是的,谢谢@MarcinMożejko指出这一点。我再次形成了
X
y
,它们的形状现在分别是
(1739300)
(1739,19)
,上面的代码运行时没有错误。顺便说一句,你是否在我的代码中发现了任何其他异常/错误/奇怪的地方……或者你想建议的任何改进?你可以检查是否发生了过度拟合,并最终通过某种形式的规范化来防止它。