有没有办法从 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?
- 可能方法一:我自己编辑文本模型文件解决
- 可能方法二:参考@zsozso的回答。 (虽然我没有得到
它
工作)。
我需要从 "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?
- 可能方法一:我自己编辑文本模型文件解决
- 可能方法二:参考@zsozso的回答。 (虽然我没有得到 它
工作)。