Bor*_*lov 6 python nlp machine-learning gensim doc2vec
我已经训练了 gensim doc2Vec 模型,它可以找到与未知文档最相似的文档。
现在我需要找到两个未知文档之间的相似度值(它们不在训练数据中,所以它们不能被 doc id 引用)
d2v_model = doc2vec.Doc2Vec.load(model_file)
string1 = 'this is some random paragraph'
string2 = 'this is another random paragraph'
vec1 = d2v_model.infer_vector(string1.split())
vec2 = d2v_model.infer_vector(string2.split())
Run Code Online (Sandbox Code Playgroud)
在上面的代码中 vec1 和 vec2 被成功初始化为一些值和大小 - 'vector_size'
现在查看 gensim api 和示例,我找不到适合我的方法,他们都期待 TaggedDocument
我可以按值比较特征向量值,如果它们更接近 => 文本更相似吗?
您好,以防万一有人感兴趣,为此您只需要两个向量之间的余弦距离。
我发现大多数人都在使用“空间”来做这个倾诉
如果你已经训练过 doc2vec,这里有一个小代码,它应该可以很好地工作
from gensim.models import doc2vec
from scipy import spatial
d2v_model = doc2vec.Doc2Vec.load(model_file)
fisrt_text = '..'
second_text = '..'
vec1 = d2v_model.infer_vector(fisrt_text.split())
vec2 = d2v_model.infer_vector(second_text.split())
cos_distance = spatial.distance.cosine(vec1, vec2)
# cos_distance indicates how much the two texts differ from each other:
# higher values mean more distant (i.e. different) texts
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6214 次 |
| 最近记录: |