install - presentar - ¿Instalar mediante programación los corpus/modelos NLTK, es decir, sin el descargador GUI?
modelo habeas corpus caba (4)
Además de la opción de línea de comando ya mencionada, puede instalar mediante programación los datos NLTK en su secuencia de comandos de Python agregando un argumento a la función de download()
.
Ver el texto de help(nltk.download)
, específicamente:
Individual packages can be downloaded by calling the ``download()`` function with a single argument, giving the package identifier for the package that should be downloaded: >>> download(''treebank'') # doctest: +SKIP [nltk_data] Downloading package ''treebank''... [nltk_data] Unzipping corpora/treebank.zip.
Puedo confirmar que esto funciona para descargar un paquete a la vez, o cuando pasa una list
o tuple
.
>>> import nltk
>>> nltk.download(''wordnet'')
[nltk_data] Downloading package ''wordnet'' to
[nltk_data] C:/Users/_my-username_/AppData/Roaming/nltk_data...
[nltk_data] Unzipping corpora/wordnet.zip.
True
También puede intentar descargar un paquete ya descargado sin problemas:
>>> nltk.download(''wordnet'')
[nltk_data] Downloading package ''wordnet'' to
[nltk_data] C:/Users/_my-username_/AppData/Roaming/nltk_data...
[nltk_data] Package wordnet is already up-to-date!
True
Además, parece que la función devuelve un valor booleano que puede usar para ver si la descarga tuvo éxito o no:
>>> nltk.download(''not-a-real-name'')
[nltk_data] Error loading not-a-real-name: Package ''not-a-real-name''
[nltk_data] not found in index
False
Mi proyecto usa el NLTK. ¿Cómo puedo enumerar los requisitos de corpus y modelo del proyecto para que se puedan instalar automáticamente? No quiero hacer clic a través de la GUI de nltk.download()
, instalando paquetes uno por uno.
Además, ¿hay alguna manera de congelar esa misma lista de requisitos (como la pip freeze
)?
El sitio NLTK enumera una interfaz de línea de comando para descargar paquetes y colecciones al final de esta página:
El uso de la línea de comandos varía según la versión de Python que esté utilizando, pero en mi instalación de Python2.6 noté que me faltaba el modelo ''spanish_grammar'' y esto funcionó bien:
python -m nltk.downloader spanish_grammars
Usted menciona el listado del corpus del proyecto y los requisitos del modelo, y si bien no estoy seguro de una forma automática de hacerlo, pensé que al menos compartiría esto.
Para instalar todos los corpora y modelos de NLTK:
python -m nltk.downloader all
Alternativamente, en Linux, puede usar:
sudo python -m nltk.downloader -d /usr/local/share/nltk_data all
Reemplace all
por popular
si solo desea enumerar los corpora y modelos más populares.
También puede explorar los corpora y los modelos a través de la línea de comando:
mlee@server:/scratch/jjylee/tests$ sudo python -m nltk.downloader
[sudo] password for jjylee:
NLTK Downloader
---------------------------------------------------------------------------
d) Download l) List u) Update c) Config h) Help q) Quit
---------------------------------------------------------------------------
Downloader> d
Download which package (l=list; x=cancel)?
Identifier> l
Packages:
[ ] averaged_perceptron_tagger_ru Averaged Perceptron Tagger (Russian)
[ ] basque_grammars..... Grammars for Basque
[ ] bllip_wsj_no_aux.... BLLIP Parser: WSJ Model
[ ] book_grammars....... Grammars from NLTK Book
[ ] cess_esp............ CESS-ESP Treebank
[ ] chat80.............. Chat-80 Data Files
[ ] city_database....... City Database
[ ] cmudict............. The Carnegie Mellon Pronouncing Dictionary (0.6)
[ ] comparative_sentences Comparative Sentence Dataset
[ ] comtrans............ ComTrans Corpus Sample
[ ] conll2000........... CONLL 2000 Chunking Corpus
[ ] conll2002........... CONLL 2002 Named Entity Recognition Corpus
[ ] conll2007........... Dependency Treebanks from CoNLL 2007 (Catalan
and Basque Subset)
[ ] crubadan............ Crubadan Corpus
[ ] dependency_treebank. Dependency Parsed Treebank
[ ] europarl_raw........ Sample European Parliament Proceedings Parallel
Corpus
[ ] floresta............ Portuguese Treebank
[ ] framenet_v15........ FrameNet 1.5
Hit Enter to continue:
[ ] framenet_v17........ FrameNet 1.7
[ ] gazetteers.......... Gazeteer Lists
[ ] genesis............. Genesis Corpus
[ ] gutenberg........... Project Gutenberg Selections
[ ] hmm_treebank_pos_tagger Treebank Part of Speech Tagger (HMM)
[ ] ieer................ NIST IE-ER DATA SAMPLE
[ ] inaugural........... C-Span Inaugural Address Corpus
[ ] indian.............. Indian Language POS-Tagged Corpus
[ ] jeita............... JEITA Public Morphologically Tagged Corpus (in
ChaSen format)
[ ] kimmo............... PC-KIMMO Data Files
[ ] knbc................ KNB Corpus (Annotated blog corpus)
[ ] large_grammars...... Large context-free and feature-based grammars
for parser comparison
[ ] lin_thesaurus....... Lin''s Dependency Thesaurus
[ ] mac_morpho.......... MAC-MORPHO: Brazilian Portuguese news text with
part-of-speech tags
[ ] machado............. Machado de Assis -- Obra Completa
[ ] masc_tagged......... MASC Tagged Corpus
[ ] maxent_ne_chunker... ACE Named Entity Chunker (Maximum entropy)
[ ] moses_sample........ Moses Sample Models
Hit Enter to continue: x
Download which package (l=list; x=cancel)?
Identifier> conll2002
Downloading package conll2002 to
/afs/mit.edu/u/m/mlee/nltk_data...
Unzipping corpora/conll2002.zip.
---------------------------------------------------------------------------
d) Download l) List u) Update c) Config h) Help q) Quit
---------------------------------------------------------------------------
Downloader>
Pude instalar los corpora y los modelos dentro de un directorio personalizado usando el siguiente código:
import nltk
nltk.download(info_or_id="popular", download_dir="/path/to/dir")
nltk.data.path.append("/path/to/dir")
esto instalará " todos " los corpus / modelos dentro de /path/to/dir
, y le indicará a NLTK dónde buscarlo ( data.path.append
).
No puede "congelar" los datos en un archivo de requisitos, pero puede agregar este código a su __init__
además del código para verificar si los archivos ya están allí.