基于Aspect的情感分析深度学习模型实现错误
Error in implementing Aspect-based sentiment analysis deep learning model
我有一个 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 维词向量的平均值)。
输出 y
被定义为 y(i) = 1/k
当句子有 aspect i 和总共 k aspect
否则 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)
我是深度学习和 keras 的新手,所以如果有人能指出我做错了什么?
问题在于您的数据维度错误。它的形状应该是 (1739, 300)
。重新检查您的数据准备,因为那里可能发生了错误。
我有一个 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 维词向量的平均值)。
输出 y
被定义为 y(i) = 1/k
当句子有 aspect i 和总共 k aspect
否则 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)
我是深度学习和 keras 的新手,所以如果有人能指出我做错了什么?
问题在于您的数据维度错误。它的形状应该是 (1739, 300)
。重新检查您的数据准备,因为那里可能发生了错误。