有没有办法从 KeyedVectors 词汇表中删除一个词?

Is there a way to remove a word from a KeyedVectors vocab?

我需要从 "gensim.models.keyedvectors.Word2VecKeyedVectors" 的词汇表中删除无效单词。

我尝试使用 del model.vocab[word] 删除它,如果我打印 model.vocab 这个词消失了,但是当我 运行 model.most_similar 使用其他词时我删除后仍显示为相似。 那么我怎样才能以影响 model.most_similar 不带它的方式从 model.vocab 中删除一个词呢?

目前还没有支持删除单个单词的方法。

一个快速而肮脏的解决方法可能是,在删除 vocab 条目的同时,注意现有向量的 index(在底层大向量数组中),并将该索引处 kv_model.index2entity 列表中的字符串更改为某个插入值(比如 '***DELETED***')。

然后,在执行任何 most_similar() 后,丢弃任何匹配 '***DELETED***' 的条目。

参考:

How to remove a word completely from a Word2Vec model in gensim?

  1. 可能方法一:我自己编辑文本模型文件解决
  2. 可能方法二:参考@zsozso的回答。 (虽然我没有得到 它

工作)。