2016-06-25 15 views
5

Мы можем загрузить все данные NLTK с помощью:NLTK - Скачать все NLTK данных, за исключением corpara из командной строки без Downloader UI

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

или конкретных данных с помощью:

> nltk.download('punkt') 
> nltk.download('maxent_treebank_pos_tagger') 

Но я хочу, чтобы загрузить все данные, кроме файлов «corpara», , например, все chunkers, грамматисты, модели, стеблемеры, метки, токенизаторы и т. д.

есть ли способ сделать это без Downl Oader UI? что-то вроде,

> nltk.download('all-taggers') 
+0

Я думаю, что в какой-то момент я посмотрел на это и не смог найти способ сделать это. исходный код [здесь] (http://www.nltk.org/_modules/nltk/downloader.html), для чего он стоит. – patrick

ответ

2

Список всех идентификаторов корпусов и комплект _status_cache[pkg.id] = 'installed'.

Он установит значение статуса для всех корпусов, так как 'установлено', а пакеты корпусов будут пропущены, когда мы будем использовать nltk.download().

Вместо того чтобы загружать все корпуса и модели, если вы не уверены в каких корпусах/пакетах вам нужно, используйте nltk.download('popular').

import nltk 

dwlr = nltk.downloader.Downloader() 

for pkg in dwlr.corpora(): 
    dwlr._status_cache[pkg.id] = 'installed' 

dwlr.download('popular') 

Чтобы загрузить все пакеты определенной папки.

import nltk 

dwlr = nltk.downloader.Downloader() 

# chunkers, corpora, grammars, help, misc, 
# models, sentiment, stemmers, taggers, tokenizers 
for pkg in dwlr.packages(): 
    if pkg.subdir== 'taggers': 
     dwlr.download(pkg.id)