Gensim保存的字典没有id2token

Gensim saved dictionary has no id2token

我已将 Gensim 词典保存到磁盘。当我加载它时,id2token 属性字典未填充。

保存字典的一段简单代码:

dictionary = corpora.Dictionary(tag_docs)
dictionary.save("tag_dictionary_lda.pkl")

现在当我加载它时(我正在将它加载到 jupyter notebook 中),它仍然可以很好地将令牌映射到 ID,但是 id2token 不起作用(我无法将 ID 映射到令牌)并且事实上 id2token 根本没有填充。

> dictionary = corpora.Dictionary.load("../data/tag_dictionary_lda.pkl")
> dictionary.token2id["love"]
Out: 1613

> dictionary.doc2bow(["love"])
Out: [(1613, 1)]

> dictionary.id2token[1613]
Out: 
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input> in <module>()
----> 1 dictionary.id2token[1613]

KeyError: 1613

> list(dictionary.id2token.keys())
Out: []

有什么想法吗?

您不需要 dictionary.id2token[1613],因为您可以直接使用 dictionary[1613]

请注意,如果您之后检查 dictionary.id2token,它将不再为空。那是因为 dictionary.id2token 仅在请求保存内存时形成(如 Dictionary class 初始化期间所述)。