【发布时间】:2021-11-02 02:06:36
【问题描述】:
我有一个基于网站数据的 Doc2Vec 模型。我正在尝试使用嵌入来查找彼此最相似的网站。为此,我正在做矩阵的余弦相似度。我还将它与 most_similar() 的输出进行比较。
问题是,他们提供了本质上不同的匹配项(不仅略有不同)。
具体来说,对于一家指数值为 791 的公司和我比较的文本值文本。
text = self.website_info.iloc[791].text
tokens = text.split()
vec = self.word2vec_model.infer_vector(tokens,negative=0)
most_similar = self.word2vec_model.docvecs.most_similar([vec])
到
self.word2vec_model.init_sims()
mat = self.word2vec_model.docvecs.get_normed_vectors()
w2v_sim = np.dot(mat, mat.T)
sims = pd.DataFrame(pd.Series(w2v_sim[791]))
sims.rename(columns={0:'sim'}, inplace = True)
sims.sort_values(by='sim',ascending=False,inplace=True)
most_similar = sims.head(20)
我还看到嵌入向量 real 和 inferred 本质上是不同的。不仅是标准化或数值,还有分量符号的巨大差异。
【问题讨论】: