26 lines
820 B
Python
26 lines
820 B
Python
import gensim
|
|
import numpy as np
|
|
|
|
|
|
def sim(txt1,txt2):
|
|
|
|
# 加载已经训练好的Doc2Vec模型
|
|
model = gensim.models.doc2vec.Doc2Vec.load('doc2vec.model')
|
|
print("model loading...")
|
|
# 获取两个标签对应的向量
|
|
# inferred_vector = model.infer_vector(doc_words=test_text,alpha=0.025,steps=300)
|
|
# sims = model.docvecs.most_similar([inferred_vector],topn=10)
|
|
|
|
vector1 = model.dv[txt1 + ".txt"]
|
|
vector2 = model.dv[txt2 + ".txt"]
|
|
|
|
vector1Mod = np.sqrt(vector1.dot(vector1))
|
|
vector2Mod = np.sqrt(vector2.dot(vector2))
|
|
res = (vector1.dot(vector2)) / (vector1Mod * vector2Mod)
|
|
|
|
return res
|
|
# print(res)
|
|
# res = model.dv.most_similar("numpy_numpy24195.txt", topn=20)
|
|
# print(res)
|
|
# res = model.dv.most_similar("numpy_numpy24401.txt", topn=20)
|
|
# print(res) |