首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >词的余弦相似度与BERT模型的比较

词的余弦相似度与BERT模型的比较
EN

Stack Overflow用户
提问于 2021-10-31 06:24:39
回答 1查看 561关注 0票数 1

您好,我希望使用BERT模型为一个单词生成相似的单词,这与我们在gensim中使用的生成most_similar单词的方法相同,我发现该方法如下:

代码语言:javascript
复制
from transformers import BertTokenizer, BertModel

import torch

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

model = BertModel.from_pretrained('bert-base-uncased')

word = "Hello"

inputs = tokenizer(word, return_tensors="pt")

outputs = model(**inputs)

word_vect = outputs.pooler_output.detach().numpy()

好的,现在这给出了用户给出的输入单词的嵌入,所以我们可以将这个嵌入与完整的BERT模型进行余弦相似度比较,以找到与该单词最匹配的前N个嵌入,然后使用模型中的vocab.txt文件将嵌入转换为word?有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-31 06:42:13

看起来你需要从你的词汇表中存储所有单词的嵌入。在此之后,您可以使用一些工具来查找最接近目标嵌入的嵌入。例如,您可以使用来自scikit learn的NearestNeighbors。您可能需要考虑的另一个选择是HNSW,这是一种专门设计用于执行快速近似最近邻搜索的数据结构。Faiss是Facebook对HNSW的一个很好的实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69784408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档