Proyecto: Programacin en
Python y uso de libreras para
el procesamiento de lenguaje
natural
Autor:
Felipe Flores
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 1 /
20
Contenidos
1. Descripcin del problema..........................................................Pgina 3
2. Alternativas
de
solucin...
Pgina 4
3. Solucin
Pgina 5
4. Implementacin.
...Pgina 6 - 18
5. Conclusiones.
Pgina 19
6. Bibliografa....Pg
ina 20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 2 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 3 /
20
2- Alternativas de solucin
A continuacin, se presentan 2 alternativas de solucin para abordar la
problemtica:
1- Crear e implementar algoritmos para trabajar con cadena de
caracteres. Se necesita implementar mtodos que trabajen con las
cadenas de caracteres, que cuenten la cantidad de palabras, que
sea capaz de distinguir maysculas y minsculas, que sea capaz
de contar la cantidad de letras de cada palabra, entre otros
mtodos. Para graficar, se puede hacer uso de Matlab o Octave.
2- La segunda alternativa que se propone es de hacer uso de las
libreras nltk de Python que hace uso del procesamiento de
lenguaje natural, el cual permite trabajar con cadena de
caracteres. Para graficar, Python cuenta con otras libreras que
permiten hacer grficos en base a los datos que se dispongan.
.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 4 /
20
3- Solucin
Para la solucin de este problema se har uso de las diferentes libreras
que ofrece Python, ya que hacer los algoritmos tomara mucho tiempo.
Se utilizara las libreras de procesamiento de lenguaje natural y libreras
para graficar.
Por qu utilizar nltk? nltk es una librera que permite realizar un
sinnmero de funciones relacionadas con el manejo del lenguaje, como
por ejemplo: analizar expresiones regulares, funciona como clasificador
de palabras, hace uso de modelos estadsticos, entre otras cosas.
Para graficar la frecuencia de palabras que se obtenga no es necesario
un programa externo como matlab u octave, ya que Python cuenta con
libreras como la matplotlib que permite generar grficos a partir de
datos contenidos en listas o arrays.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 5 /
20
4- Implementacin
Como primer paso, se descarga Python desde la pgina oficial:
Web: https://www.python.org/getit/
Una vez descargado, se procede a instalar el software, para ello se debe
hacer doble clic en el paquete de instalacin lo que abrir la siguiente
ventana.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 6 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 7 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 8 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 9 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 10 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 11 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 12 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 13 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 14 /
20
Una vez creado el archivo, este ser guardado bajo el nombre de Asuntos.txt,
en la siguiente ruta del computador:
C:\Users\Felipe\AppData\Roaming\nltk_data\corpora\gutenberg
En la carpeta Gutenberg, se encuentran la mayora de los libros con los que
viene Python para hacer pruebas con la librera nltk.
Una vez guardado el archivo en la ruta descrita, se debe importar la librera
nltk para su posterior uso. La siguiente lnea de cdigo hace lo descrito.
Import nltk: Importa la librera de procesamiento de lenguaje natural.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 15 /
20
Lo siguiente que se debe hacer es almacenar las palabras del archivo de texto
en una variable, para ello se utilizara la siguiente lnea de cdigo:
texto = nltk.corpus.gutenberg.words ('Asuntos.txt'): En la variable texto
se almacenan todas las palabras que contiene el archivo Asuntos.txt, mediante
la palabra words.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 16 /
20
Para contar las diferentes palabras de un texto, se puede hacer uso de una
distribucin de frecuencias e ir tomando nota las veces que cada palabra
aparece en el texto. NLTK ofrece soporte integrado para esta tarea. La
siguiente lnea de cdigo permite crear una variable de frecuencia de
distribucin utilizando la extensin de FreqDist.
fd = nltk.FreqDist (texto) : La frecuencia de distribucin se guardara en la
variable fd, la cual es tomada de la variable que se cre anteriormente,
llamada texto.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 17 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 18 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 19 /
20
Para graficar esto, se utiliza el mtodo plot, junto con la variable fd que
contiene la frecuencia de las palabras a graficar. La siguiente lnea de cdigo
hace lo descrito:
fd.plot(): Permite hacer grficos de frecuencia segn la cantidad de palabras
que se tengan en un texto. En el eje y se encuentran la cantidad de veces que
se repiti una palabra y en el eje x la cantidad de palabras que hay.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 20 /
20
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 21 /
20
5- Conclusiones
Los objetivos planteados al principio fueron logrados satisfactoriamente, ya que
se pudo obtener la frecuencia de cada palabra y el grafico representativo de
ello.
A diferencia de los proyectos anteriores, el programa solicitado no necesit de
ms funciones y acciones especficas, solo implementar los nuevos mtodos,
mdulos, instrucciones y maneras de realizar una accin, que para este caso
fueron mtodos de la librera nltk para analizar textos.
Nltk es una herramienta muy poderosa para el procesamiento de lenguaje
natural. En esta librera existen muchos mtodos para trabajar con textos y
libros los cuales pueden ser analizados en cosa de minutos.
Para la personalizacin de los programas creados con Python, es altamente
recomendable leer la documentacin contenida en los software, puesto que
esta permite conocer todas las funcionalidades, libreras, clases, mtodos, etc,
as como todas las capacidades de personalizacin contenidas en los lenguajes
de programacin incrustados en estos.
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 22 /
20
6- Bibliografa
Web: https://www.python.org/
Web: http://www.nltk.org/
Libro: Python para todos de Ral Gonzlez Duque
Libro: El tutorial de Python de Guido van Rossum
Libro: Natural language processing with Python de Steven Bird, Ewan Klein y
Edward Loper
Autor: Felipe
Flores
Valdebenito
Revisor : Eugenio
Bravo
Versin: 1
Fecha:
21/04/2015
Pgina 23 /
20