我在尝试使用机器学习进行一些文本分类,为此我已经从预处理的文本数据中提取了特征向量,使用了简单的词袋方法(计数向量化)和TFIDF向量化。
现在我想使用word2vec,即词嵌入作为我的特征向量,类似于计数向量化/TFIDF向量化那样,我应该能够从训练数据中学习词汇表,并用学到的词汇表转换或拟合测试数据,但我找不到实现它的方法。
//我需要类似这样的东西,用word2veccount = CountVectorizer()train_feature_ vector =count.fit_transform(train_data)test_feature_vector = count.fit(test_data)//这样我就可以像这样训练我的模型mb = MultinomialNB()mb.fit(train_feature_vector,y_train)acc_score = mb.score(test_feature_vector,y_test)print("Accuracy "+str(acc_score))
回答:
你首先应该了解词嵌入是什么。当你应用CountVectorizer或TfIdfVectorizer时,你得到的是一种稀疏的句子表示,通常称为独热编码。词嵌入表示用于在高维实数空间中表示一个词。
一旦你获得了每个词的表示,就有一些方法可以做到这一点,请查看:如何从句子中词的word2vec获得句子的向量