我是 Python 和 Gensim 的新手。我目前正在阅读有关gensim
(http://radimrehurek.com/gensim/tut1.html)的教程之一。我对这行代码有两个问题:
# collect statistics about all tokens
>>> dictionary = corpora.Dictionary(line.lower().split() for line in open('mycorpus.txt'))
1)mycorpus.txt
在 Dictionary 开始构建之前文件是否已完全加载到内存中?该教程明确表示不:
Similarly, to construct the dictionary without loading all texts into memory
但是当我在我的活动监视器中监视 RAM 使用情况时,Python 进程为 3 gig 文件命中 1 gig(我中途终止了进程)。这很奇怪,因为我假设我的 3 gig 文本文件的字典会小得多。有人可以为我澄清这一点吗?
2)我怎样才能重新编码这一行,以便我可以在每一行读取之间做一些事情?我想打印到屏幕上查看进度。这是我的尝试:
i = 1
for line in f:
if i % 1000 == 0:
print i
dictionary = corpora.Dictionary([line.lower().split()])
i += 1
这不起作用,因为字典正在为每一行重新初始化。
我意识到这些都是非常n00b的问题 - 感谢您的帮助和耐心。