NLTK - 如何找出python中安装的语料库?

时间:2009-12-14 19:32:26

标签: python nlp nltk corpus

我正在尝试加载我使用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 intepreter里面看到安装的语料库是什么?

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

我无法在操作方法中找到模块nltk.examples

2 个答案:

答案 0 :(得分:10)

import nltk.corpus
dir(nltk.corpus)

此时,它可能会告诉您一些关于__LazyModule__...的事情,所以再次dir(nltk.corpus)

如果这不起作用,请在iPython中尝试tab-completion。

答案 1 :(得分:4)

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

  1. 要在NLTK中查看定义了哪些接入点,请使用dir(nltk.corpus)(在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找到它。