我使用Gensim的doc2vec为大型语料库创建了文档向量。
sentences=gensim.models.doc2vec.TaggedLineDocument('file.csv')
model = gensim.models.doc2vec.Doc2Vec(sentences,size = 10, window = 800, min_count = 1, workers=40, iter=10, dm=0)
现在我使用Gensim的infer_vector()使用这些文档向量为另一个样本语料库创建文档向量
Eg: model.infer_vector('This is a string')
有没有办法通过infer_vector传递整个DataFrame并获取DataFrame中每一行的输出向量?
答案 0 :(得分:1)
Doc2Vec
infer_vector()
只会将单个文本示例作为单词标记列表。所以你不能传递一批例子。 (而且,你不应该传入非标记化的字符串 - 而是列出令牌,以与训练数据预处理相同的方式进行预处理。)
但是,您可以使用一个为您添加infer_vector()
的函数,正如@COLDSPEED评论所暗示的那样。如果你想要有意义的结果,那么列应该有令牌列表,而不是字符串。
此外,大多数用户发现infer_vector()
使用其steps
参数的非默认值(远大于其默认值5)可以更好地工作,并且可能使用较小的值来启动alpha
}参数(比如训练默认值0.025比推理默认值0.1)。
答案 1 :(得分:0)
@gojomo:感谢您的回答,但我尝试使用标记化行和原始字符串进行推断,并获得相同的文档向量。
有没有办法知道创建的文档向量是否有意义?