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

Raf*_*ini 8 python nlp corpus nltk

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

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

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

我如何从python intepreter里面看到安装的语料库是什么?

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

我找不到该方法中nltk.examples提到的模块.

Han*_*Gay 10

尝试

import nltk.corpus
dir(nltk.corpus)
Run Code Online (Sandbox Code Playgroud)

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

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


ale*_*xis 5

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") ) )
    
    Run Code Online (Sandbox Code Playgroud)

    这只是转储包含文件夹内容的列表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$")
    
    Run Code Online (Sandbox Code Playgroud)

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