web-dev-qa-db-ja.com

gensimからWord2indexを取得する方法

Docによって、これを使用して、genismでWord2vecモデルを読み取ることができます

model = KeyedVectors.load_Word2vec_format('Word2vec.50d.txt', binary=False)

これは、インデックスからWordへのマッピングです。つまり、model.index2Word[2]、これに基づいて逆マッピング(Word-to-index)を導出する方法は?

11
GabrielChu

Wordからインデックスへのマッピングは、KeyedVectorsプロパティを含むオブジェクトを含む辞書であるvocabindexプロパティにあります。

例えば:

Word = "whatever"  # for any Word in model
i = model.vocab[Word].index
model.index2Word[i] == Word  # will be true
12
gojomo

さらに簡単な解決策は、index2Wordを列挙することです。

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