1

私のnltkデータは~/nltk_data/corpora/words/(en,en-basic,README)

__init__.py内部によると~/lib/python2.7/site-packages/nltk/corpus、ブラウンコーパスの単語のリストを読むには、次を使用します nltk.corpus.brown.words()

from nltk.corpus import brown
print brown.words()
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]

これ__init__.pyには

words = LazyCorpusLoader(
    'words', WordListCorpusReader, r'(?!README|\.).*')
  1. だから私が書くとき、ディレクトリにあるfrom nltk.corpus import words「単語」機能をインポートして いますか?__init__.pypython2.7/site-packages/nltk/corpus

  2. また、なぜこれが起こるのですか:

     import nltk.corpus.words
     ImportError: No module named words
     from nltk.copus import words
     # WORKS FINE
    
  3. 「茶色の」コーパスは~/nltk_data/corpora(nltk/コーパスではなく) 内部にあります。では、なぜこのコマンドが機能するのでしょうか。

    from nltk.corpus import brown
    

    これでいいのではないですか?

    from nltk_data.corpora import brown
    
4

2 に答える 2

0

1.]はい - 次の説明を見つけることができる util の LazyCorpusLoader を使用します。

"""
    A proxy object which is used to stand in for a corpus object
    before the corpus is loaded.  This allows NLTK to create an object
    for each corpus, but defer the costs associated with loading those
    corpora until the first time that they're actually accessed.

    The first time this object is accessed in any way, it will load
    the corresponding corpus, and transform itself into that corpus
    (by modifying its own ``__class__`` and ``__dict__`` attributes).

    If the corpus can not be found, then accessing this object will
    raise an exception, displaying installation instructions for the
    NLTK data package.  Once they've properly installed the data
    package (or modified ``nltk.data.path`` to point to its location),
    they can then use the corpus object without restarting python.
    """

3.] nltk_data はデータがあるフォルダーですが、モジュールもそのフォルダーにあるとは限りません (データはnltk_dataからダウンロードされます)

NLTK には、以下に示すように、多数のコーパスとトレーニング済みモデルのサポートが組み込まれています。これらを NLTK 内で使用するには、NLTK コーパス ダウンローダー >>> nltk.download() を使用することをお勧めします。

于 2013-08-27T13:00:09.183 に答える