Actualizado el 21 de Marzo del 2018 (Publicado el 16 de Febrero del 2018)
3.522 visualizaciones desde el 16 de Febrero del 2018
548,7 KB
47 paginas
Creado hace 7a (05/09/2016)
UNIVERSIDAD DE LA LAGUNA
An´alisis autom´atico de textos en espa˜nol
utilizando NLTK
por
Jos´e Manuel Hern´andez Hern´andez
Un trabajo presentado para el
Grado en Ingenier´ıa Inform´atica
en la
Escuela Superior de Ingenier´ıa y Tecnolog´ıa
5 de septiembre de 2016
Esta obra est´a bajo una licencia de Creative Commons Reconocimiento 4.0
Internacional.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
International License.
D˜na. Coromoto Le´on Hern´andez, con N.I.F 78.605.216-W, profesora Titular de Univer-
sidad adscrita al Departamento de Ingenier´ıa Inform´atica y de Sistemas, como tutora
C E R T I F I C A
Que la presente memoria titulada:
“An´alisis autom´atico de textos en espa˜nol utilizando NLTK ”
ha sido realizada bajo su direcci´on por D. Jos´e Manuel Hern´andez Hern´andez,
con N.I.F. 54.112.122-E.
Y para que as´ı conste, en cumplimiento de la legislaci´on vigente y a los efectos
oportunos firma la presente en La Laguna a 5 de septiembre de 2016.
“If you talk to a man in a language he understands, it will go to his head. If you talk to
him in his own language, it will go to his heart.”
Nelson Mandela
Abstract
The aim of this work is the development of a study case in Spanish in which Natural
Language Processing techniques are applied, to observe the effectiveness of the NLP
tools available for this language.
The study case chosen for this work is the classification of the Final Degree Projects
made avaliable to the public in the Institutional Repository of the University of La
Laguna.
Keywords: NLP, Natural Language Processing, NLTK, Natural Language Toolkit, Pyt-
hon, CasperJS, JavaScript
Resumen
La finalidad de este trabajo es el desarrollo de un caso de estudio en lenguaje espa˜nol
sobre el cual aplicar t´ecnicas de Procesamiento del Lenguaje Natural, para constatar la
eficacia de las herramientas PLN disponibles para este idioma.
El caso de estudio escogido para desarrollar en este trabajo fue la clasificaci´on de los
Trabajos de Fin de Grado puestos a disposici´on del p´ublico en el Repositorio Institucional
de la Universidad de La Laguna.
Palabras clave: PLN, Procesamiento del Lenguaje Natural, NLTK, Natural Language
Toolkit, Python, CasperJS, JavaScript
Agradecimientos
A mi tutora, Coromoto Le´on Hern´andez, por su direcci´on, optimismo y apoyo incondi-
cional a la hora de encaminar el proyecto.
Al personal docente de la Escuela Superior de Ingenier´ıa y Tecnolog´ıa, por su labor
educativa.
A mis amigos y compa˜neros de la facultad, por el apoyo recibido.
A mi familia, y mis padres, por su paciencia, cari˜no y por hacer posible mi educaci´on.
vi
´Indice
Abstract
Resumen
Agradecimientos
´Indice de figuras
Lista de listados
´Indice de cuadros
1. Introducci´on
1.1. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. ´Ambito del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Definici´on del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1. Obtenci´on del texto . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2. Procesamiento del texto . . . . . . . . . . . . . . . . . . . . . . . .
1.4. Herramientas de PLN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1. Stanford CoreNLP . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2. Apache Lucene y Solr
. . . . . . . . . . . . . . . . . . . . . . . . .
1.4.3. Apache OpenNLP . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.4. GATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.5. NLTK, Natural Language Toolkit . . . . . . . . . . . . . . . . . . .
1.5. Herramienta de PLN elegida . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6. Lenguaje de programaci´on escogido . . . . . . . . . . . . . . . . . . . . . .
IV
V
VI
IX
X
XI
1
2
4
4
4
5
5
6
6
6
6
7
7
7
2. Caso de estudio
2.1. Descripci´on del caso de estudio . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Opciones de clasificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
9
2.2.1. Enfoques estad´ısticos . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2. Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3. Enfoques anal´ıticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3. Trabajos de Fin de Grado en la ULL: ¿Qu´e revela el an´alisis autom´atico
de texto sobre los mismos? . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1. Obtenci´on de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
vii
Contents
viii
2.3.2. Obtenci´on de datos con CasperJS . . . . . . . . . . . . . . . . . . 12
2.3.3. Extracci´on de la informaci´on . . . . . . . . . . . . . . . . . . . . . 12
2.3.4. Almacenamiento de la informaci´on . . . . . . . . . . . . . . . . . . 17
2.3.5. Clasificaci´on del texto . . . . . . . . . . . . . . . . . . . . . . . . . 18
3. Resultados y discusi´on
24
3.1. Conclusiones sobre la extracci´on . . . . . . . . . . . . . . . . . . . . . . . 24
3.2. Conclusiones sobre la clasificai´on . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Problemas encontrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1. Obtenci´on del texto . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2. Clasificaci´on del texto . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.3. Realizaci´on de la memoria . . . . . . . . . . . . . . . . . . . . . . . 29
4. Conclusiones
30
4.1. Conclusiones y Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . 30
4.2. Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . 31
5. Presupuesto
A. Abreviaturas
B. Glosario
Bibliograf´ıa
32
33
34
35
´Indice de figuras
2.1. Vista en la que se muestran los metadatos de un TFG. . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . . . . . . 16
2.2. Modelo DOM subyacente a la vista.
3.1. Palabras de mayor frecuencia entre las instancias de la primera aproxi-
maci´on.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2. Precisi´on de la clasificaci´on Naive Bayes usando metadatos de los TFG
de Ing. Inform´atica.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3. Palabras de mayor frecuencia entre las instancias de la segunda aproxi-
maci´on.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Precisi´on de la clasificaci´on Naive Bayes usando metadatos de todos los
TFG del RIULL.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
ix
Lista de Listados
. . . . . . . . . . . . . . . . . . . . . . 13
2.1. Creaci´on del navegador CasperJS.
2.2. Estructuras de datos para la navegaci´on por la p´agina. . . . . . . . . . . . 13
2.3. Estructuras de datos para las caracter´ısticas de cada TFG.
. . . . . . . . 13
2.4. Funci´on de obtenci´on de enlaces individuales.
. . . . . . . . . . . . . . . . 14
2.5. Funci´on de paginado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6. Funci´on de obtenci´on de todos los enlaces de TFG. . . . . . . . . . . . . . 15
. . . . . . . . 16
2.7. Funci´on de obtenci´on de metadato por nombre de etiqueta.
2.8. Funci´on de obtenci´on de metadatos por nombre de etiqueta similar.
. . . 17
2.9. Concatenaci´on de la URL absoluta con el enlace relativo.
. . . . . . . . . 17
2.10. Funci´on para cargar instancias de un archivo CSV.
. . . . . . . . . . . . . 18
2.11. Funci´on que recopila un conjunto de palabras comunes . . . . . . . . . . . 18
2.12. Funci´on que retorna palabras alfanum´ericas . . . . . . . . . . . . . . . . . 19
2.13. Funci´on que separa las instancias con clasificaci´on inv´alida.
. . . . . . . . 19
. . . . . . . . . . . . . 20
2.14. Funci´on que extrae las caracter´ısticas de un texto.
2.15. Funci´on que retorna un listado de las palabras comunes.
. . . . . . . . . . 21
2.16. Funci´on que clasifica una instancia en base a las palabras comunes que
contiene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.17. Bater´ıa de pruebas de clasificaci´on . . . . . . . . . . . . . . . . . . . . . . 23
x
´Indice de cuadros
5.1. Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
xi
Cap´ıtulo 1
Introducci´on
El Procesamiento del Lenguaje Natural (PLN) es una disciplina de la Computaci´on que
concierne al tratamiento de informaci´on desestructurada, presentada en texto o audio
y expresada mediante Lenguaje Natural. Se entiende por lenguaje natural cualquier
lenguaje utilizado para la comunicaci´on humana en el d´ıa a d´ıa, en contraposici´on a un
lenguaje artificial establecido, como por ejemplo los lenguajes de programaci´on. Es un
´area de inter´es para el campo de la Interacci´on Persona-Computador (Human-Computer
Interaction), as´ı como los de Aprendizaje Autom´atico (Machine Learning) e Inteligencia
Artificial (Artificial Intelligence).
La necesidad del Procesamiento del Lenguaje Natural es aparente en los sistemas de In-
teracci´on Persona-Computador, dado que en este campo se busca el dise˜no de interfaces
c´omodas y funcionales para los usuarios humanos a la hora de utilizar ordenadores, ya
sean tradicionales, port´atiles, m´oviles, etc. El Procesamiento del Lenguaje Natural se po-
siciona como una capacidad deseable en los ordenadores, para permitir la comunicaci´on
natural entre el usuario y el ordenador, y aumentar tanto la comodidad y conveniencia
como las posibilidades de una interacci´on exitosa.
En cuanto al campo del Aprendizaje Autom´atico, no s´olo nos referimos al hecho de que
´este campo es necesario para el desarrollo de t´ecnicas PLN, sino que el campo del Proce-
samiento del Lenguaje Natural a su vez puede ser ´util para el Aprendizaje Autom´atico
en uno de sus mayores problemas. Uno de los principales cuellos de botella hoy en d´ıa
a la hora de la construcci´on de sistemas de Aprendizaje Au
Comentarios de: Análisis automático de textos en español utilizando NLTK (0)
No hay comentarios