2009-12-14 11 views
7

sto cercando di caricare un po 'di corpora ho installato con il programma di installazione NLTK ma ho avuto un:NLTK - come scoprire quali corpora sono installati all'interno di python?

>>> from nltk.corpus import machado 
     Traceback (most recent call last): 
     File "<stdin>", line 1, in <module> 
     ImportError: cannot import name machado 

Ma nel download manager (nltk.download()) il Machado pacchetto è marcato come installato e ho una cartella nltk_data/corpus/machado.

Come posso vedere dall'interno dell'interprete python quali sono i corpora installati?

Inoltre, quale pacchetto dovrei installare per funzionare con questo how-to? http://nltk.googlecode.com/svn/trunk/doc/howto/portuguese_en.html

Non riesco a trovare il modulo nltk.examples cui si fa riferimento nella procedura.

+0

il mio era a/home/myUser/nltk_data –

risposta

9

provare

import nltk.corpus 
dir(nltk.corpus) 

a quel punto, probabilmente ti ha detto qualcosa a proposito __LazyModule__... in modo da fare dir(nltk.corpus) di nuovo.

Se ciò non funziona, prova il completamento della scheda in iPython.

3

NLTK include un pacchetto, nltk.corpus, che contiene le definizioni di lettori di corpus (ad esempio PlainTextCorpusReader). Questo pacchetto include anche un ampio elenco di punti di accesso predefiniti per corpora che possono essere scaricati con nltk.downloader(). Questi punti di accesso (ad esempio, nltk.corpus.brown) sono definiti indipendentemente dal fatto che il corpus corrispondente sia stato scaricato o meno.

  1. Per vedere che i punti di accesso sono definiti nel NLTK, utilizzare dir(nltk.corpus) (dopo import nltk).

  2. Per vedere che corpora avete nella vostra zona nltk_data, provate questo:

    import os 
    import nltk 
    print(os.listdir(nltk.data.find("corpora"))) 
    

    Questo discariche solo un elenco con il contenuto della cartella nltk_data/corpora. Puoi prenderlo da lì.

  3. Se è stato installato il proprio corpus nella zona nltk_data/corpora e il NLTK non sapere su di esso, è necessario accendere il lettore appropriata da soli. Ad esempio, se si tratta di un corpus di testo in chiaro in corpora/mycorpus e tutti i file finiscono in .txt, si farebbe in questo modo:

    import nltk 
    from nltk.corpus import PlaintextCorpusReader 
    
    mypath = nltk.data.find("corpora/mycorpus") 
    mycorpus = PlaintextCorpusReader(mypath, r".*\.txt$") 
    

    Ma in questo caso si potrebbe mettere il proprio corpus ovunque, e il punto mypath ad esso direttamente invece di chiedere al NLTK di trovarlo.

Problemi correlati