如何使用 word2Vec 和深度学习模型预测文本的情绪?

问题描述

我正在尝试使用 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。