NLTK-如何找出在python中安装了哪些语料库?

2024-06-06 15:52:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图加载一些我用NLTK安装程序安装的corpora,但是我得到了一个:

>>> 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内部看到已安装的corpora是什么?

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

我找不到how-to中引用的模块nltk.examples


Tags: tofromimportmostcorpuscallhowfile
2条回答

试试看

import nltk.corpus
dir(nltk.corpus)

在这一点上,它可能告诉了你一些关于__LazyModule__...的事情,所以请再次dir(nltk.corpus)

如果不起作用,请尝试在iPython中完成制表符。

NLTK包含一个包nltk.corpus,其中包含语料库读取器的定义(例如PlainTextCorpusReader)。这个包还包括一个大型的corpo预定义访问点列表,可以使用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对此一无所知,则需要自己启动相应的阅读器。E、 例如,如果它是corpora/mycorpus中的纯文本语料库,并且所有文件都以.txt结尾,那么您应该这样做:

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

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

相关问题 更多 >