从向量中查找词汇进行灵活比较

问题描述 投票:0回答:1

是否可以从向量中找到一个词汇,以便我可以进行更灵活的比较?

类似这样的:

queen = nlp.vocab["king"].vector - nlp.vocab["man"].vector + nlp.vocab["woman"].vector
king = nlp.vocab["queen"].vector - nlp.vocab["woman"].vector + nlp.vocab["man"].vector
queen.similarity(king)

我意识到在这个例子中我可以直接检查国王和王后的相似度,但我的用例是我想比较句子/文档的相似度,我读到为了获得句子向量我可以简单地相加给定句子中的单词,我假设这意味着我也可以比较它们。

nlp spacy
1个回答
0
投票

比对形成句子的单词嵌入进行求和更好,您可以使用句子嵌入模型作为sentence-transformer。这会给你:

from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

model = SentenceTransformer('paraphrase-MiniLM-L6-v2')

e1 = model.encode(['This is your first sentence'])
e2 = model.encode(['This is your 2nd sentence'])

cosine_similarity(e1, e2)
© www.soinside.com 2019 - 2024. All rights reserved.