1

我正在尝试使用 Python 遵循“构建机器学习系统”一书中关于主题建模/潜在狄利克雷分配 (LDA) 的教程。

我在这本书中没有走得太远,主题建模的第一部分为我返回了错误:

from gensim import corpora, models, similarities
corpus = corpora.BleiCorpus('./data/ap/ap.dat', './data/ap/vocab.txt')

错误:

     63 
     64         self.fname = fname
---> 65         with utils.smart_open(fname_vocab) as fin:
     66             words = [utils.to_unicode(word).rstrip() for word in fin]
     67         self.id2word = dict(enumerate(words))

/Users/user/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/gensim/utils.pyc in smart_open(fname, mode)
    659         from gzip import GzipFile
    660         return make_closing(GzipFile)(fname, mode)
--> 661     return open(fname, mode)
    662 
    663 

IOError: [Errno 2] No such file or directory: './data/ap/vocab.txt'

vocab.txt 文件不存在,但是切换到它应该在的目录,我发现以下内容:

$ ls download_ap.sh download_wp.sh preprocess-wikidata.sh

看起来ap数据需要单独下载(书中没有提到),所以这样做:

sh download_ap.sh

我明白了:

download_ap.sh: line 2: wget: command not found
tar: Error opening archive: Failed to open 'ap.tgz'

有谁知道如何解决这个问题?

谢谢

4

2 回答 2

4

您的计算机上没有安装 wget,您是在使用带有 Cygwin 的 Windows 吗?从http://www.cs.princeton.edu/~blei/lda-c/ap.tgz下载文件,解压缩并将其放在正确的文件夹中。

于 2014-10-01T18:08:31.280 回答
2

代码或您的开发环境没有任何问题。最可能的问题是您没有 wget。如果您想尝试一下,可以使用 CURL 实现相同的功能。您还可以直接从其他来源(进行 Google 搜索)下载美联社语料库,并将其放在 Gensim 用于本教程的目录中。

如果您想完全按照书中的教程进行操作,您可能需要安装 wget,它对于 OS X(我假设那是您的系统)需要一些配置。要将 wget 添加并安装到 OS X,您需要下载源文件、编译代码并进行安装。要实际编译代码,您需要一个编译器,不幸的是 OS X 默认不附带它。首先,您需要从 Apple 安装包含 GCC 编译器的 xcode 套件。

这篇文章解释了如何一步一步地做到这一点。

希望这有效。

于 2014-10-01T19:03:55.470 回答