问题描述
我正在尝试使用 word2vec 和一些深度学习算法来检测推文的情绪。这是我的模型训练代码:
word2VecValues = pd.read_csv(allVectorValuesPath,sep=",",skipinitialspace=True)
word2VecValues = convertLabelToFloat(word2VecValues)
word2VecValues = prepareDataSet(word2VecValues)
X = word2VecValues.iloc[:,:-1]
Y = word2VecValues.iloc[:,-1]
model = Sequential()
model.add(Dense(12,input_dim=100,activation='relu'))
model.add(Dense(8,activation='relu'))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
model.fit(X,Y,epochs=25,batch_size=10)
saveModel(model,"Word2Vec")
_,accuracy = model.evaluate(X,Y)
print('Accuracy: %.2f' % (accuracy * 100))
如您所见,我有一个 csv 文件,其中包含我的语料库中每个单词的 word2vec 向量值。我将它用作“word2VecValues”的数据框。
我在模型训练完成后保存我的 word2vec 模型。 我想加载模型并预测一个文本的情绪。但是,我对如何获得新文本的向量值有点困惑。你能帮我吗?
解决方法
您应该找到一个带有情感数据的注释数据集,或者注释您自己的数据集,这非常耗时。使用 word2vec 将文本转换为一批向量,将向量提供给 lstm 层而不是密集层。 仅 word2vec 不足以进行情感分析。 如果你因为要分析 Twitter 而问我,推文中充满了不符合 word2vec 标准词汇的即兴创作,你最好使用 fastText。