Aprendiendo NLTK

Índice

1 Instalar NLTK

En la documentación de http://nltk.org/install.html no está muy bien documentado cómo instalar nltk en debian, pero es fácil:

$ sudo apt-get install python-pip
$ sudo pip install -U numpy
$ sudo pip install -U pyyaml nltk
$ python
>>> import nltk
>>> nltk.download()

2 Practicando con gutenberg

Lo primero es familiarizarse un poco con la clase FreqDist

>>> from nltk.tokenize import word_tokenize
>>> from nltk.probability import FreqDist
>>> sent = 'is This is an example sentence'
>>> fdist1 = FreqDist(word.lower() for word in word_tokenize(sent))
>>> fdist1.N
<bound method FreqDist.N of <FreqDist with 5 samples and 6 outcomes>>

Como se puede observar los samples son las palabras únicas del texto y los outcomes el total de palabras. De este modo, ahora tenemos en un vector el número de ocurrencias de cada palabra, veamos:

>>> from nltk.book import *
>>> fdist1 = FreqDist(text1) 
>>> fdist1 
<FreqDist with 260819 outcomes>
>>> fdist1['whale']
906
>>> fdist1['I']
2124

En el punto 2.1 Accessing Text Corpora de la documentación hay algunos errores en los ejemplos de código que he considerado interesante documentar:

>>> for file in gutenberg.fileids():
     num_chars = len(gutenberg.raw(file))
     num_words = len(gutenberg.words(file))
     num_sents = len(gutenberg.sents(file))
     num_vocab = len(set(w.lower() for w in gutenberg.words(file)))
     print num_chars/num_words, num_words/num_sents, num_words/num_vocab, file

También podemos encontrar palabras similares de un texto concreto de gutenberg de la siguiente manera:

>>> import nltk.corpus
>>> from nltk.text import Text
>>> moby = Text(nltk.corpus.gutenberg.words('melville-moby_dick.txt'))
>>> moby.similar('woman')
Building word-context index...
man king ahab as baby bildad bird boat bull calf camel captain
carpenter cobbler cod condor corpse craft darkey day
>>> moby.similar('bought')
figures floats held hunted luffs put sat stole stood threw

3 Clasificando de Manera Supervisada

Teniendo instalado nltk en debian/ubuntu la documentación se encuentra en /usr/local/lib/python2.7/dist-packages/nltk/test/classify.doctest.

4 Licencia

Este documento está bajo la GNU Free Documentation License

200px-GFDL_Logo.svg.png

Autor: David Arroyo Menéndez

Created: 2014-06-01 dom 16:37

Emacs 24.3.1 (Org mode 8.2.6)

Validate