0

所以我试图从 gensim 为分布式 LSI 运行演示(你可以在这里找到它)但是每当我运行代码时,我都会收到错误

AttributeError: module 'Pyro4' has no attribute 'expose'

我在 stackoverflow 上检查了类似的问题,通常它们是由于滥用库引起的。

但是我没有直接使用 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
4

1 回答 1

1

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

于 2017-08-05T10:25:41.607 回答