gpt4 book ai didi

nlp - Doc2Vec.infer_vector 每次在特定训练模型上都会不断给出不同的结果

转载 作者:行者123 更新时间:2023-12-04 21:39:03 24 4
gpt4 key购买 nike

我正在尝试遵循此处提到的官方 Doc2Vec Gensim 教程 - https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb

我修改了第 10 行的代码以确定给定查询的最佳匹配文档,每次运行时,我都会得到一个完全不同的结果集。我在笔记本第 10 行的新代码是:

inferred_vector = model.infer_vector(['only', 'you', 'can', 'prevent', 'forest', 'fires'])
sims = model.docvecs.most_similar([inferred_vector], topn=len(model.docvecs))
rank = [docid for docid, sim in sims]
print(rank)

每次运行这段代码时,我都会得到与此查询匹配的不同文档集:“只有您才能防止森林火灾”。区别很明显,只是似乎不匹配。

Doc2Vec 不适合查询和信息提取吗?还是有bug?

最佳答案

查看代码,在 infer_vector 中,您正在使用算法的非确定性部分。词向量的初始化是确定性的 - 参见 seeded_vector 的代码,但是当我们进一步看时,即词的随机采样,负采样(仅更新 样本 可能导致词向量的输出非确定性@mo-deterministic) )。

    def seeded_vector(self, seed_string):
"""Create one 'random' vector (but deterministic by seed_string)"""
# Note: built-in hash() may vary by Python version or even (in Py3.x) per launch
once = random.RandomState(self.hashfxn(seed_string) & 0xffffffff)
return (once.rand(self.vector_size) - 0.5) / self.vector_size

关于nlp - Doc2Vec.infer_vector 每次在特定训练模型上都会不断给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com