使用 BERT 通过词嵌入生成相似词或同义词

问题描述

众所周知,BERT 模型的词嵌入能力可能比 word2vec 和其他任何模型都要好。

我想在 BERT 词嵌入上创建一个模型来生成同义词或相似词。就像我们在 Gensim Word2Vec 中所做的一样。我想在 BERT 词嵌入中创建 Gensim model.most_similar()方法

我对此进行了大量研究,似乎可以这样做,但问题是它仅以数字形式显示嵌入,无法从中获取实际单词。有人可以帮我解决这个问题吗?

解决方法

  1. Bert 使用令牌,它与单词并不完全相同。因此,单个单词可能不仅仅是一个标记。

  2. Bert 为每个标记相对于上下文中的其他标记生成嵌入向量。

  3. 你可以选择一个预训练的 bert 模型,然后给它们输入单个单词,得到输出并求平均值,这样你就可以得到一个单词的单个向量

  4. 获取单词列表,计算每个单词的向量

  5. 计算向量距离,这样你就可以从距离中得到相似的词