我试图在5000万个可变长度的句子中使用gensim库训练doc2vec模型。
有些教程(例如https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb)在实际培训过程之前有一个model.build_vocab
步骤。这部分现在已经运行了3个小时,没有任何更新。
此步骤是否需要培训过程?为什么这个步骤需要花费很长时间,因为它只是对数据进行线性传递?
使用gensim版本3.4.0和python 3.6.0
答案 0 :(得分:3)
需要build_vocab()
步骤来发现所有单词,然后设置已知词汇结构。 (但是,如果您将语料库作为Doc2Vec
的参数提供,则build_vocab()
和train()
都将自动完成。)
您应该在INFO级别启用Python日志记录,以查看有关此进度的记录信息以及其他长期运行的gensim步骤。这将帮助您了解是否真正取得了进展,或者在某些时候已经停止或放缓。
如果词汇发现开始很快但速度慢,那么您的系统可能内存太少而且开始使用非常慢的虚拟内存(交换)。如果它似乎停止了,也许在你阅读语料库的方法中存在一个无声的错误。如果它只是在整个过程中放慢速度,那么你的语料库阅读方法可能会出现问题。