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

时间:2021-05-07 16:37:10

标签: python deep-learning nlp 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 模型。 我想加载模型并预测一个文本的情绪。但是,我对如何获得新文本的向量值有点困惑。你能帮我吗?

1 个答案:

答案 0 :(得分:0)

您应该找到一个带有情感数据的注释数据集,或者注释您自己的数据集,这非常耗时。使用 word2vec 将文本转换为一批向量,将向量提供给 lstm 层而不是密集层。 仅 word2vec 不足以进行情感分析。 如果你因为要分析 Twitter 而问我,推文中充满了不符合 word2vec 标准词汇的即兴创作,你最好使用 fastText。