如何从gensim获取word2index

How to get word2index from gensim

通过 doc 我们可以使用它来读取带有 genism 的 word2vec 模型

model = KeyedVectors.load_word2vec_format('word2vec.50d.txt', binary=False)

这是一个index-to-word mapping,例如model.index2word[2],如何推导出一个inverted mapping(word-to-index)?

单词到索引的映射在 KeyedVectors vocab 属性 中,这是一个包含 index 属性 对象的字典。

例如:

word = "whatever"  # for any word in model
i = model.vocab[word].index
model.index2word[i] == word  # will be true

更简单的解决方案是枚举 index2word

word2index = {token: token_index for token_index, token in enumerate(w2v.index2word)} 
word2index['hi'] == 30308  # True