【问题标题】:NLTK - how to find out what corpora are installed from within python?NLTK - 如何找出从 python 中安装的语料库?
【发布时间】:2009-12-14 19:32:25
【问题描述】:

我正在尝试加载一些我使用 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

【问题讨论】:

  • 我的在 /home/myUser/nltk_data

标签: python nlp nltk corpus


【解决方案1】:

试试

import nltk.corpus
dir(nltk.corpus)

此时,它可能告诉了你一些关于 __LazyModule__... 的信息,所以再次告诉你 dir(nltk.corpus)

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

【讨论】:

  • 这个方法不会告诉你nltk数据目录中安装了哪些语料库;只有哪些有预定义的接入点,无论它们是否已安装。
  • 如果你想查看是否安装了语料库,我推荐这个:stackoverflow.com/questions/57925041/…
【解决方案2】:

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 找到它。

【讨论】:

    猜你喜欢
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多