8

我正在尝试加载一些我使用 NLTK 安装程序安装的语料库,但我得到了:

>>> from nltk.corpus import machado
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      ImportError: cannot import name machado

但是在下载管理器 ( nltk.download()) 中,machado 包被标记为已安装,并且我有一个nltk_data/corpus/machado文件夹。

我如何从 python 解释器内部看到已安装的语料库是什么?

另外,我应该安装什么包来使用这个方法? http://nltk.googlecode.com/svn/trunk/doc/howto/portuguese_en.html

我找不到操作指南中nltk.examples提到的模块。

4

2 回答 2

12

尝试

import nltk.corpus
dir(nltk.corpus)

在这一点上,它可能会告诉你一些关于__LazyModule__...这样做的事情dir(nltk.corpus)

如果这不起作用,请尝试 iPython 中的制表符补全。

于 2009-12-14T19:39:49.773 回答
6

NLTK 包含一个包 ,nltk.corpus其中包含语料库阅读器的定义(例如PlainTextCorpusReader)。该软件包还包括大量预定义的语料库访问点列表,可以使用nltk.downloader(). nltk.corpus.brown无论是否已下载相应的语料库,都定义了这些访问点(例如)。

  1. 要查看NLTK中定义了哪些接入点dir(nltk.corpus),请使用(after import nltk)。

  2. 要查看您所在地区的语料库nltk_data,请尝试以下操作:

    import os
    import nltk
    print( os.listdir( nltk.data.find("corpora") ) )
    

    这只是转储一个包含文件夹内容的列表nltk_data/corpora。你可以从那里拿走它。

  3. 如果您在该区域安装了自己的语料库nltk_data/corpora而 NLTK 不知道,您需要自己启动相应的阅读器。例如,如果它是一个明文语料库corpora/mycorpus并且所有文件都以 结尾.txt,你会这样做:

    import nltk
    from nltk.corpus import PlaintextCorpusReader
    
    mypath = nltk.data.find("corpora/mycorpus")
    mycorpus = PlaintextCorpusReader(mypath, r".*\.txt$")
    

    但在这种情况下,您可以将自己的语料库放在任何地方,并mypath直接指向它,而不是让 NLTK 找到它。

于 2013-11-19T15:31:39.143 回答