因此,我试图从gensim为分布式LSI运行演示(您可以找到它这里),但是每当我运行代码时,都会得到错误。
AttributeError: module 'Pyro4' has no attribute 'expose'
我在这里检查过类似的堆栈溢出问题,它们通常是由于滥用库而引起的。
然而,我不是直接使用Pyro4,而是使用gensim引入的分布式LSI。因此,我这边没有犯错的余地(至少我相信)。
我的代码非常简单,您可以在下面找到它
from gensim import corpora, models, utils
import logging, os, Pyro4
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
os.environ["PYRO_SERIALIZERS_ACCEPTED"] = 'pickle'
os.environ["PYRO_SERIALIZER"] = 'pickle'
corpus = corpora.MmCorpus('wiki_corpus.mm') # load a corpus of nine documents, from the Tutorials
id2word = corpora.Dictionary.load('wiki_dict.dict')
lsi = models.LsiModel(corpus, id2word=id2word, num_topics=200, chunksize=1, distributed=True) # run distributed LSA on nine documents发布于 2017-08-05 10:25:41
Pyro4.expose从2014年8月起被添加到Pyro4版本4.27中。在我看来,您在此之前安装了一个非常老的Pyro4版本,您的gensim需要一个更新的版本。
检查使用:
$ python -m Pyro4.configuration | head -3你应该升级你的Pyro4库.不过,请注意,我认为gensim不支持最新版本的Pyro4,因此您可能应该检查它的手册,以获得所需的正确版本。您可以随时尝试安装最新版本(目前为4.61),并查看其运行情况。
我想您也可以尝试找到gensim特定的支持?https://radimrehurek.com/gensim/support.html。
https://stackoverflow.com/questions/45404027
复制相似问题