web-dev-qa-db-fra.com

Comment obtenir Word2index de gensim

J'ai lu un modèle Word2vec dans le génisme

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

Il semble que le génisme ne fournisse qu'un mappage d'index en Word, c'est-à-dire, par exemple, model.index2Word[2], comment pourrions-nous également obtenir un dictionnaire inversé (Word2index) basé sur cela?

7
GabrielChu

Les mappages de Word vers index sont dans la propriété KeyedVectorsvocab, un dictionnaire avec des objets qui incluent une propriété index

Par exemple:

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

Une solution encore plus simple consisterait à énumérer index2Word

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