是否可以从向量中找到一个词汇,以便我可以进行更灵活的比较?
类似这样的:
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)
我意识到在这个例子中我可以直接检查国王和王后的相似度,但我的用例是我想比较句子/文档的相似度,我读到为了获得句子向量我可以简单地相加给定句子中的单词,我假设这意味着我也可以比较它们。
比对形成句子的单词嵌入进行求和更好,您可以使用句子嵌入模型作为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)