Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

Updated answer:NLTK works for 2.7 well. I had 3.2. I uninstalled 3.2 and installed 2.7. Now it works!!

I have installed NLTK and tried to download NLTK Data. What I did was to follow the instrution on this site: http://www.nltk.org/data.html

I downloaded NLTK, installed it, and then tried to run the following code:

>>> import nltk
>>> nltk.download()

It gave me the error message like below:

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    nltk.download()
AttributeError: 'module' object has no attribute 'download'
 Directory of C:\Python32\Lib\site-packages

Tried both nltk.download() and nltk.downloader(), both gave me error messages.

Then I used help(nltk) to pull out the package, it shows the following info:

PACKAGE CONTENTS align app (package) ccg (package) chat (package) chunk (package) classify (package) cluster (package) collocations corpus (package) decorators downloader draw (package) examples (package) featstruct grammar inference (package) internals lazyimport metrics (package) misc (package) model (package) parse (package) probability sem (package) sourcedstring stem (package) tag (package) test (package) tokenize (package) toolbox treetransforms yamltags c:\python32\lib\site-packages\nltk

I do see Downloader there, not sure why it does not work. Python 3.2.2, system Windows vista.

Short note: I do not know what the problem is, but what you are doing is correct and should give you a GUI to choose what to download (i.e. you're not doing it wrong, but something is wrong) – Miquel Mar 5, 2014 at 23:24 From where did you install NLTK? I highly suggest you install it through a package manager like pip to handle all the dependencies for you. – Michael Aquilina Mar 5, 2014 at 23:30 I am not sure how to do it. Do you mean I should install pip first and then use it to install NLTK? – Q-ximi Mar 5, 2014 at 23:35

TL;DR

To download a particular dataset/models, use the nltk.download() function, e.g. if you are looking to download the punkt sentence tokenizer, use:

$ python3
>>> import nltk
>>> nltk.download('punkt')

If you're unsure of which data/model you need, you can start out with the basic list of data + models with:

>>> import nltk
>>> nltk.download('popular')

It will download a list of "popular" resources, these includes:

<collection id="popular" name="Popular packages">
      <item ref="cmudict" />
      <item ref="gazetteers" />
      <item ref="genesis" />
      <item ref="gutenberg" />
      <item ref="inaugural" />
      <item ref="movie_reviews" />
      <item ref="names" />
      <item ref="shakespeare" />
      <item ref="stopwords" />
      <item ref="treebank" />
      <item ref="twitter_samples" />
      <item ref="omw" />
      <item ref="wordnet" />
      <item ref="wordnet_ic" />
      <item ref="words" />
      <item ref="maxent_ne_chunker" />
      <item ref="punkt" />
      <item ref="snowball_data" />
      <item ref="averaged_perceptron_tagger" />
    </collection>

EDITED

In case anyone is avoiding errors from downloading larger datasets from nltk, from https://stackoverflow.com/a/38135306/610569

$ rm /Users/<your_username>/nltk_data/corpora/panlex_lite.zip
$ rm -r /Users/<your_username>/nltk_data/corpora/panlex_lite
$ python
>>> import nltk
>>> dler = nltk.downloader.Downloader()
>>> dler._update_index()
>>> dler._status_cache['panlex_lite'] = 'installed' # Trick the index to treat panlex_lite as it's already installed.
>>> dler.download('popular')

Updated

From v3.2.5, NLTK has a more informative error message when nltk_data resource is not found, e.g.:

>>> from nltk import word_tokenize
>>> word_tokenize('x')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/l/alvas/git/nltk/nltk/tokenize/__init__.py", line 128, in word_tokenize
    sentences = [text] if preserve_line else sent_tokenize(text, language)
  File "/Users//alvas/git/nltk/nltk/tokenize/__init__.py", line 94, in sent_tokenize
    tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
  File "/Users/alvas/git/nltk/nltk/data.py", line 820, in load
    opened_resource = _open(resource_url)
  File "/Users/alvas/git/nltk/nltk/data.py", line 938, in _open
    return find(path_, path + ['']).open()
  File "/Users/alvas/git/nltk/nltk/data.py", line 659, in find
    raise LookupError(resource_not_found)
LookupError: 
**********************************************************************
  Resource punkt not found.
  Please use the NLTK Downloader to obtain the resource:
  >>> import nltk
  >>> nltk.download('punkt')
  Searched in:
    - '/Users/alvas/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'
**********************************************************************

Related

  • To find nltk_data directory (auto-magically), see https://stackoverflow.com/a/36383314/610569

  • To download nltk_data to a different path, see https://stackoverflow.com/a/48634212/610569

  • To config nltk_data path (i.e. set a different path for NLTK to find nltk_data), see https://stackoverflow.com/a/22987374/610569

  • Install Pip: run in terminal : sudo easy_install pip

    Install Numpy (optional): run : sudo pip install -U numpy

    Install NLTK: run : sudo pip install -U nltk

    Test installation: run: python

    then type : import nltk

    To download the corpus

    run : python -m nltk.downloader all

    NLTK Downloader
    ---------------------------------------------------------------------------
       d) Download   l) List    u) Update   c) Config   h) Help   q) Quit
    ---------------------------------------------------------------------------
    

    Then, Press d

    Do As Follows:

    Downloader> d all
    

    You will get following message on completion, and Prompt then Press q Done downloading collection all

    you can't have a saved python file called nltk.py because the interpreter is reading from that and not from the actual file.

    Change the name of your file that the python shell is reading from and try what you were doing originally:

    import nltk and then nltk.download()

  • Open pyScripter or any editor
  • Create a python file eg: install.py
  • write the below code in it.
  • import nltk
    nltk.download()
    
  • A pop-up window will apper and click on download .
  • The pop up window is not opening . I have tried many times . The version of the nltk is also new one which is 3.4.1 . Now tell what should be issue ? – Hamza Tahir May 31, 2019 at 11:24

    I had the similar issue. Probably check if you are using proxy.

    If yes, set up the proxy before doing download:

    nltk.set_proxy('http://proxy.example.com:3128', ('USERNAME', 'PASSWORD'))
    

    If you are running a really old version of nltk, then there is indeed no download module available (reference)

    Try this:

    import nltk
    print(nltk.__version__)
    

    As per the reference, anything after 0.9.5 should be fine

    This is actually what I suspected, which is why I suggested the OP uses pip to install NLTK instead. – Michael Aquilina Mar 5, 2014 at 23:41 It won't even print out the version info. The version is 2.0.4. That is the link I followed from the book Natural Language Processing with Python. Here is the [link]nltk.org/install.html. – Q-ximi Mar 5, 2014 at 23:42 Ok, that's the latest. I guess this isn't it then. Let's leave it here for future reference – Miquel Mar 5, 2014 at 23:45 Does any of nltk work for you? try running: nltk.word_tokenize("hello world") and see if gives you any output – Michael Aquilina Mar 6, 2014 at 9:25

    you should add python to your PATH during installation of python...after installation.. open cmd prompt type command-pip install nltk then go to IDLE and open a new file..save it as file.py..then open file.py type the following: import nltk

    nltk.download()
                    This is the method I had to use (in modified form) for a Linux server that is not connected to the internet.  I unzipped it under a directory I created, /usr/share/nltk_data/tokenizers/
    – Mike Maxwell
                    Aug 5, 2021 at 21:13
    nltk.download()
    

    then you will be show a popup asking what to download , select 'all'. it will take some time because of its size, but eventually we will get it.

    and if you are using Google Colab, you can use

    nltk.download(download_dir='/content/nltkdata')
    

    after running that you will be asked to select from a list

    NLTK Downloader
    ----------------------------------------------------------------- 
    ----------
    d) Download   l) List    u) Update   c) Config   h) Help   q) 
    ----------------------------------------------------------------- 
    ----------
    Downloader> d
    

    here you have to enter d as you want to download. after that you will be asked to enter the identifier that you want to download . You can see the list of available indentifier with l command or if you want all of them just enter 'all' in the input box. then you will see something like -

    Downloading collection 'all'
           | Downloading package abc to /content/nltkdata...
           |   Unzipping corpora/abc.zip.
           | Downloading package alpino to /content/nltkdata...
           |   Unzipping corpora/alpino.zip.
           | Downloading package biocreative_ppi to /content/nltkdata...
           |   Unzipping corpora/biocreative_ppi.zip.
           | Downloading package brown to /content/nltkdata...
           |   Unzipping corpora/brown.zip.
           | Downloading package brown_tei to /content/nltkdata...
           |   Unzipping corpora/brown_tei.zip.
           | Downloading package cess_cat to /content/nltkdata...
           |   Unzipping corpora/cess_cat.zip.
     |   Unzipping models/wmt15_eval.zip.
           | Downloading package mwa_ppdb to /content/nltkdata...
           |   Unzipping misc/mwa_ppdb.zip.
         Done downloading collection all
    ---------------------------------------------------------------------------
        d) Download   l) List    u) Update   c) Config   h) Help   q) Quit
    ---------------------------------------------------------------------------
    Downloader> q
    

    at last you can enter q to quit.