Nlp Doc2Vec:培训模型的反馈循环最佳实践
我正在学习Doc2Vec和gensim图书馆。我已经能够通过创建文档集来训练我的模型,例如Nlp Doc2Vec:培训模型的反馈循环最佳实践,nlp,python-3.4,gensim,word2vec,Nlp,Python 3.4,Gensim,Word2vec,我正在学习Doc2Vec和gensim图书馆。我已经能够通过创建文档集来训练我的模型,例如 LabeledSentence(['what', 'happens', 'when', 'an', 'army', 'of', 'wetbacks', 'towelheads', 'and', 'godless', 'eastern', 'european', 'commies', 'gather', 'their', 'forces', 'south', 'of', 'the', 'border', '
LabeledSentence(['what', 'happens', 'when', 'an', 'army', 'of', 'wetbacks', 'towelheads', 'and', 'godless', 'eastern', 'european', 'commies', 'gather', 'their', 'forces', 'south', 'of', 'the', 'border', 'gary', 'busey', 'kicks', 'their', 'butts', 'of', 'course', 'another', 'laughable', 'example', 'of', 'reagan-era', 'cultural', 'fallout', 'bulletproof', 'wastes', 'a', 'decent', 'supporting', 'cast', 'headed', 'by', 'l', 'q', 'jones', 'and', 'thalmus', 'rasulala'], ['LABELED_10', '0'])`
请注意,此特定文档有两个标记,即“标记为10”和“0”
现在,在我加载模型并执行
print(model.docvecs.most_similar("LABELED_10"))
我明白了
[('LABELED_107', 0.48432376980781555), ('LABELED_110', 0.4827481508255005), ('LABELED_214', 0.48039984703063965), ('LABELED_207', 0.479473352432251), ('LABELED_315', 0.47931796312332153), ('LABELED_307', 0.47898322343826294), ('LABELED_124', 0.4776897132396698), ('LABELED_222', 0.4768940210342407), ('LABELED_413', 0.47479286789894104), ('LABELED_735', 0.47462597489356995)]
太完美了!因为我得到的所有标签都与标记为_10的标签最为相似
现在我希望在训练我的模型时有一个反馈循环。因此,如果我给我的模型一个新文档,我想在标记该文档并将其添加到我的语料库之前,知道该模型的分类是好是坏。使用Doc2Vec我将如何做到这一点?那么,我如何知道标记为_107和标记为_10的文档实际上是否相似呢。这里是我想到的一个方法。下面是我的随机森林分类器的代码
result = cfun.rfClassifer(n_estimators, trainingDataFV, train["sentiment"],testDataFV)
这里是函数
def rfClassifer(n_estimators, trainingSet, label, testSet):
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
forest = RandomForestClassifier(n_estimators)
forest = forest.fit(trainingSet, label)
result = forest.predict(testSet)
return result
我终于可以做到了
output = pd.DataFrame(data={"id": test["id"], "sentiment": result})
output.to_csv("../../submits/Doc2Vec_AvgVecPredict.csv", index=False, quoting=3)
反馈过程
感谢根据我对Doc2Vec的理解,您可以重新训练您的模型,只要您拥有该模型的所有先前向量 从以下链接中,您可以看到他们如何执行验证:
这些标签有什么意义吗,还是只是句子索引?每个句子都有独立的句子情感,是吗?每个句子都有自己的情感。标签可以是句子索引,如本例中所示,但我也尝试了使用多个标签。这意味着指数的标签和情绪的标签