使用gensim doc2vec在两个单独的文档之间进行匹配

时间:2018-04-13 06:56:52

标签: gensim doc2vec

我有两个独立的数据集,一个是简历,另一个是需求,使用gensim doc2vec,我为每个创建模型,我能够在每个数据集中查询相似的单词,但现在,我需要合并这两个将模型合并为一个并查询需求中的简历并获得它们之间的相似性或匹配。我的数据集在普通的txt文件中,其中两个简历或要求由*分隔。请在下面找到我的实施,任何建议将不胜感激。 感谢。

import gensim
import os
import collections
import smart_open
import random


def read_corpus(fname, tokens_only=False):

    with open(fname) as f:
      i=0
      for  line in (f.read().split('&&')):
        if len(line)>1:
            if tokens_only:
                yield gensim.utils.simple_preprocess(line)
            else:
                # For training data, add tags
                yield gensim.models.doc2vec.TaggedDocument(gensim.utils.simple_preprocess(line), [i])
            i+=1    


vocabulary = read_corpus('D:\Demand.txt')
train_corpus = list(vocabulary)
print(train_corpus[:2])

model = gensim.models.doc2vec.Doc2Vec(size=50, min_count=2, iter=55)
model.build_vocab(train_corpus)
model.train(train_corpus, total_examples=model.corpus_count, epochs=model.iter)
print(model.infer_vector(['trainings', 'certifications', 'analyst', 'unix', 'jdbc','testing']))
model.docvecs.most_similar(positive=[model.infer_vector(['spark', 'sqoop'])])
model.most_similar('unix')

0 个答案:

没有答案