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 初始化期间所述)。
我已将 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 初始化期间所述)。