Escue
la P
olit
écnic
a S
uperior
de J
aén
UNIVERSIDAD DE JAÉN Escuela Politécnica Superior (Jaén)
Trabajo Fin de Grado
SISTEMA DE RECUPERACIÓN
DE INFORMACIÓN BASADO EN
LA LEGIBILIDAD DE LOS
TEXTOS
Alumno: Juan Carlos Gil Morales Tutora: Prof. D.ª Salud María Jiménez Zafra Tutora: Prof. D.ª María Teresa Martín Valdivia Dpto: Informática Junio, 2018
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
3
Escuela Politécnica Superior de Jaén
Universidad de Jaén Escuela Politécnica Superior de Jaén
Departamento de Informática
Doña Salud Mª Jiménez Zafra y doña María Teresa Martín Valdivia, tutoras del Trabajo de Fin de Grado titulado: Sistema de recuperación de información basado en la legibilidad de los textos, que presenta Juan Carlos Gil Morales, autorizan su presentación para defensa y evaluación en la Escuela Politécnica Superior de Jaén.
Jaén, Junio de 2018
El alumno: Los tutores:
Juan Carlos Gil Morales Salud Mª Jiménez Zafra María Teresa Martín Valdivia
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
4
Escuela Politécnica Superior de Jaén
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
5
Escuela Politécnica Superior de Jaén
ÍNDICE 1. INTRODUCCIÓN ............................................................................................................ 11
1.1. Motivación ............................................................................................................... 11
1.2. Propósito................................................................................................................... 12
1.3. Objetivos .................................................................................................................. 13
1.4. Resultados esperados................................................................................................ 13
1.5. Planificación temporal.............................................................................................. 14
1.6. Estimación de costes ................................................................................................ 15
1.6.1. Hardware .......................................................................................................... 15
1.6.2. Software ........................................................................................................... 15
1.6.3. Personal ............................................................................................................ 16
1.6.4. Coste total ......................................................................................................... 16
1.7. Estructura del proyecto............................................................................................. 17
2. ÍNDICES Y MARCADORES DE LEGIBILIDAD ......................................................... 18
2.1. Marcadores de legibilidad en inglés ......................................................................... 18
2.1.1. Índice Gunning Fog .......................................................................................... 18
2.1.2. Test de legibilidad de Flesch-Kincaid .............................................................. 19
2.1.2.1. Prueba de facilidad de lectura de Flesch .................................................. 19
2.1.2.2. Prueba de nivel educativo de Flesch-Kincaid .......................................... 20
2.1.3. Índice A.R.I. (Automated Readability Index) .................................................. 20
2.2. Marcadores de legibilidad en español ...................................................................... 21
2.2.1. Test de legibilidad de Fernández Huerta .......................................................... 22
2.2.2. Test de legibilidad de Flesch-Szigriszt............................................................. 22
2.2.3. Grado en la escala INFLESZ y el programa INFLESZ ................................... 23
2.3. Conclusiones obtenidas ............................................................................................ 24
3. SISTEMAS DE RECUPERACIÓN DE INFORMACIÓN .............................................. 26
3.1. Funcionamiento de los S.R.I. ................................................................................... 27
3.2. Modelos de recuperación de información clásicos .................................................. 27
3.2.1 Modelo Booleano ................................................................................................. 28
3.2.2 Modelo Espacio Vectorial .................................................................................... 28
3.2.3 Modelo Probabilístico .......................................................................................... 29
3.3. Conclusiones obtenidas ............................................................................................ 30
4. DESARROLLO DEL PROYECTO ................................................................................. 32
4.1. Descripción del problema......................................................................................... 32
4.2. Objetivos del sistema ............................................................................................... 32
4.3. Especificación de requerimientos............................................................................. 32
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
6
Escuela Politécnica Superior de Jaén
4.3.1. Requisitos funcionales...................................................................................... 32
4.3.2 Requisitos no funcionales..................................................................................... 33
4.4. Metodología ............................................................................................................. 34
4.4.1 Metodología ágil empleada .................................................................................. 35
4.5. Historias de usuario .................................................................................................. 37
4.6. Propuesta de solución ............................................................................................... 38
4.7. Descripción de la solución ....................................................................................... 39
4.7.1 Primera iteración .................................................................................................. 39
4.7.2 Segunda iteración ................................................................................................. 45
4.7.2.1. Creación del índice ................................................................................... 45
4.7.2.2. Lanzamiento de consultas ........................................................................ 46
4.7.3. Tercera iteración ............................................................................................... 47
4.7.3.1. Construcción de la B.B.D.D. .................................................................... 47
4.7.3.4. Desarrollo de la aplicación Flask ............................................................. 48
4.7.4. Cuarta iteración ................................................................................................ 49
4.7.5. Quinta iteración ................................................................................................ 51
4.7.6. Sexta iteración .................................................................................................. 53
4.8. Tecnologías .............................................................................................................. 53
4.8.1. Python............................................................................................................... 53
4.8.2. Flask ................................................................................................................. 55
4.8.2.1. Flask-wtf................................................................................................... 56
4.8.2.2. SQLAlchemy ............................................................................................ 56
4.8.2.3. Flask-Migrate ........................................................................................... 56
4.8.2.4. Flask-Bootstrap ........................................................................................ 56
4.8.2.5. Flask-Babel............................................................................................... 57
5. CONCLUSIONES Y TRABAJOS FUTUROS ................................................................ 58
5.1. Conclusiones ............................................................................................................ 58
5.2. Trabajos futuros........................................................................................................ 59
Bibliografía............................................................................................................................... 60
ANEXO A: MANUAL DE INSTALACIÓN .......................................................................... 61
A.1. Instalación de Python ............................................................................................... 61
A.2. Instalación y ejecución de la aplicación ................................................................... 61
ANEXO B: MANUAL DE USUARIO ................................................................................... 63
B.1. Modificar la temática de un libro ............................................................................. 64
B.2. Añadir un libro a la colección .................................................................................. 64
B.3. Realización de consultas .......................................................................................... 65
B.4. Cambio de idioma en la aplicación .......................................................................... 66
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
7
Escuela Politécnica Superior de Jaén
ANEXO C: ÍNDICE DE IMÁGENES..................................................................................... 68
ANEXO D: ÍNDICE DE TABLAS ......................................................................................... 69
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
8
Escuela Politécnica Superior de Jaén
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
9
Escuela Politécnica Superior de Jaén
Resumen
En este trabajo se presenta un sistema de recuperación de información sobre
textos en inglés y en español, que ofrece la posibilidad de seleccionar los textos en
base a su dificultad lectora. Para ello, se han aplicado técnicas de procesamiento del
lenguaje natural y de recuperación de información para procesar los documentos y
para implementar el modelo de recuperación.
Además, se ha llevado a cabo un estudio de diferentes índices y marcadores de
legibilidad, tanto para inglés como para español, con el objetivo de ofrecer el índice
de dificultad lectora como una característica adicional para realizar el filtrado y
selección de los documentos.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
10
Escuela Politécnica Superior de Jaén
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
11
Escuela Politécnica Superior de Jaén
1. INTRODUCCIÓN
La recuperación de información (R.I.) consiste en encontrar los materiales
(normalmente documentos) de una naturaleza no estructurada (normalmente texto)
que satisfacen una necesidad de información de entre una gran colección de
materiales.
La legibilidad se refiere a todas las características de un documento que
intervienen en su facilidad de comprensión debido al estilo de escritura. La legibilidad
de un texto es dependiente de una serie de factores, entre ellos, dificultad sintáctica,
dificultad semántica y organización del texto.
Sin embargo, el concepto de legibilidad no se refiere simplemente a las
propiedades del texto, sino que incorpora el compromiso o la interacción de un lector
en particular con el texto. Una serie de características del lector afectan a la legibilidad,
como pueden ser la comprensión del idioma, su capacidad de atención, la capacidad
de desambiguar ciertas palabras o que él mismo experimente algún tipo de alteración
como la dislexia, junto con su nivel educativo. La motivación del lector afectará
directamente a la cantidad de esfuerzo que está dispuesto a gastar para entender un
texto difícil.
Dado que el lector puede tener determinadas características, como las
anteriormente mencionadas, que pueden provocar que un sistema de recuperación
de información (S.R.I.) convencional no le proporcione resultados satisfactorios para
él, en este proyecto se propone un S.R.I. que incorpore la legibilidad del documento
recuperado, como un factor a considerar en la recuperación de los documentos.
1.1. Motivación
Hoy en día, la sociedad está conectada a Internet las 24 horas del día a través
de diversos dispositivos. Esto provoca que el volumen de información que reside en
Internet, así como el número de usuarios, sea cada vez mayor. Es por este hecho que
es necesario que los sistemas de recuperación de información estén en constante
evolución e incluyan mecanismos que permitan obtener rankings más precisos para
el usuario.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
12
Escuela Politécnica Superior de Jaén
La legibilidad de un documento es una medida que nos indica la dificultad que
presenta un documento para el lector. Por lo tanto, es posible calcular un nivel de
dificultad para cada documento y añadir esta dificultad a la recuperación de los
documentos.
De esta forma conseguimos que el usuario tenga otro factor de decisión cuando
debe elegir entre dos documentos. Si dos documentos pueden tener contenido de
interés, el usuario podría intentar leer el primero y al darse cuenta de que presenta
demasiada dificultad, volver atrás para leer el segundo.
Incluyendo la legibilidad conseguimos que el usuario pueda tomar este tipo de
decisiones, además si tuviera algún tipo de alteración también se le podría dar la
opción de ordenar los documentos de acuerdo a su dificultad, probando que usuario
seleccione la información de interés de forma más rápida.
En este proyecto, se va a estudiar y analizar el funcionamiento de los sistemas
de recuperación de información actuales así cómo las diferentes medidas para
determinar la legibilidad de un documento.
1.2. Propósito
En este proyecto se pretende crear un sistema de recuperación de información,
sobre textos en inglés y en español, que ofrezca la posibilidad de seleccionar los textos
en base a su dificultad lectora. Para ello, en primer lugar, se realizará un estudio de
las diferentes medidas que permiten determinar la legibilidad de un documento.
Posteriormente, se desarrollará un sistema de recuperación de información con un
modelo adecuado al problema, que incluya esta medida como información adicional
en los documentos que se han recuperado.
Para que estos resultados se puedan ver de una forma más visual, se
desarrollará una aplicación web con la que el usuario pueda interactuar, de manera
que desde la misma se puedan realizar consultas y se obtengan de forma clara los
documentos recuperados, junto con su índice de legibilidad asociado.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
13
Escuela Politécnica Superior de Jaén
1.3. Objetivos
Los objetivos que se pretenden conseguir con el desarrollo de este proyecto son:
1. Realizar un estudio de los distintos índices y marcadores de legibilidad
existentes para textos en inglés y en español.
2. Seleccionar una colección de documentos.
3. Calcular la legibilidad de dichos documentos.
4. Estudiar las distintas aproximaciones que hay actualmente para los
sistemas de recuperación de información.
5. Desarrollar una aplicación web que implemente un sistema de
recuperación de información basándose en los índices de legibilidad
seleccionados.
6. Redactar una memoria que recoja todo el trabajo desarrollado, así como
los manuales de instalación y de usuario.
1.4. Resultados esperados
Los resultados que se pretenden obtener tras finalizar este proyecto son:
• Investigación de los sistemas de recuperación de información y de la
influencia de características como la legibilidad de los textos.
• Generación de una colección de documentos en inglés y en español
con sus respectivos marcadores de legibilidad.
• Sistema de recuperación de información sobre textos en inglés y en
español basado en la legibilidad de los textos.
• Memoria final del proyecto en la que se redacte todo el proceso llevado
a cabo.
• Manual de usuario en el que se explique cómo usar el sistema.
• Manual de instalación que recoja los pasos a seguir para poder
ejecutar el sistema.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
14
Escuela Politécnica Superior de Jaén
1.5. Planificación temporal
Para el desarrollo del proyecto, se han ajustado las diferentes tareas a realizar
con un tiempo y coste razonables. En la siguiente tabla se pueden ver las distintas
tareas que se van a realizar, así como el intervalo de tiempo en el que se van a
desarrollar y su duración en días.
Tarea Duración Fecha inicio Fecha fin
Inicio del proyecto 1 día 11/02/2018 12/02/2018
Estudio de diferentes medidas para determinar la legibilidad de un documento
14 días 12/02/2018 26/02/2018
Estudio del funcionamiento de los S.R.I. y selección del modelo a implementar
14 días 26/02/2018 12/03/2018
Construcción del corpus 7 días 12/03/2018 19/03/2018
Estudio de las estructuras y arquitecturas para almacenar y gestionar la información
7 días 19/03/2018 26/03/2018
Estudio de las tecnologías existentes para la implementación del sistema
7 días 26/03/2018 02/04/2018
Diseño e implementación del sistema 42 días 02/04/2018 14/05/2018
Realización de pruebas para la experiencia de usuario, estabilidad y
seguridad 7 días 14/05/2018 21/05/2018
Desarrollo de los manuales de usuario y de instalación
10 días 21/05/2018 31/05/2018
Generación de la memoria 109 días 11/02/2018 31/05/2018 Tabla 1.1. Planificación del proyecto
El proceso de elaboración del proyecto tendrá como fecha de inicio el 11 de
febrero de 2018 y como fecha de fin el 31 de mayo de 2018 con una duración estimada
de 109 días. A continuación, se muestra la estimación temporal a través de un
diagrama de Gantt.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
15
Escuela Politécnica Superior de Jaén
Imagen 1.2. Diagrama de Gantt
1.6. Estimación de costes
Para hacer una estimación de los costes de este proyecto debemos hacer una
distinción entre los costes asociados al hardware y software, así como los costes del
personal.
1.6.1. Hardware
1. Ordenador portátil MacBook Pro: 1355 euros.
Se estima que el ordenador portatil tendrá una vida útil de cinco años,
suponiendo que tras este periodo su valor será de 0€. Esto nos supone un valor de
271€ al año o 22,59€ al mes. Puesto que este proyecto tiene una duración aproximada
de cuatro meses, su coste total sería 90,36€.
1.6.2. Software
1. MacOs High Sierra: 0 euros.
2. Google Drive: 0 euros.
3. GitHub: 0 euros.
4. PyCharm Community: 0 euros.
5. WebStorm (Licencia de estudiante): 0 euros.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
16
Escuela Politécnica Superior de Jaén
6. Visual Paradigm: 0 euros.
Dado que el sistema operativo venía incluido con el ordenador portátil y que las
licencias del software utilizado son gratuitas, el coste total relativo al software ha sido
de 0 euros.
1.6.3. Personal
Para calcular el coste del personal, dado que en este proyecto solo va a trabajar
una persona, se considera que es un analista programador.
Analista programador es la persona que realiza las funciones de un analista
técnico y de un programador, se parte de la información previa recibida del analista
funcional, y en función a esta, desarrolla las aplicaciones y organiza los datos.
Para calcular el salio correspondiente, se ha consultado la resolución del
convenio colectivo de ámbito estatal, del año 2017 [2]. Si nos fijamos en el grupo
número cinco, podemos ver que en este grupo se incluyen las tareas de programación
en el ámbito informático. Se estipula que el salario medio es de 1822,33€ al mes. Dado
que el proyecto tiene una duración aproximada de 4 meses, el coste total ascendería
a 7.290,21€.
1.6.4. Coste total
El coste total del proyecto lo calcularemos como la suma de los costes de
hardware, software y de personal, además, se incluirá un pequeño porcentaje de
beneficio. En la tabla 1.2 se puede ver el desglose de cada categoría, así como el
coste total.
Costes hardware 90,36€
Costes software 0€
Costes de personal 7.290,21€
Costes totales 7.380,57€
Beneficio obtenido (15%) 1.107,09€
Coste total del proyecto 8.487,66€ Tabla 1.2. Costes del proyecto
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
17
Escuela Politécnica Superior de Jaén
1.7. Estructura del proyecto
La memoria asociada a este proyecto seguirá la siguiente estructura, organizada
en capítulos:
• Capítulo 1: es el capítulo actual, correspondiente con la introducción. En
este capítulo se ha explicado la motivación, propósitos y planificación del
proyecto, así como los costes que va a tener asociados.
• Capítulo 2: este capítulo está dedicado a realizar un estudio sobre los
índices y marcadores de legibilidad existentes. Además, se hará un
estudio sobre cuál de ellos es el más adecuado para el desarrollo del
proyecto.
• Capítulo 3: en este capítulo se hablará sobre los sistemas de
recuperación de información y de su funcionamiento, así como de los
modelos existentes y cuál de ellos es el seleccionado para implementarlo.
• Capítulo 4: este es el capítulo que está dedicado a la explicación del
desarrollo del proyecto. Por un lado, tendremos una descripción y
objetivos del proyecto. Por otro lado, podemos encontrar todos los
elementos relativos a la ingeniería del software, que se desarrollarán
utilizando una metodología ágil.
• Capítulo 5: en este apartado se recogerán las conclusiones que se han
obtenido tras la realización del trabajo de fin de grado y los posibles
trabajos futuros y mejoras que se pueden aplicar al mismo.
• Bibliografía: apartado donde se recogerán las referencias de los
materiales consultados para la realización de este proyecto.
• Anexos: finalmente, podremos encontrar cuatro anexos:
o El primer anexo hace referencia al manual de instalación del
sistema base, así como de todos sus componentes.
o El segundo anexo es un manual de usuario, donde se explica
como el usuario debe de interactuar con el sitio web y todos los
aspectos que debe tener en cuenta.
o El tercer y cuarto anexo son índices de ilustraciones y tablas
respectivamente.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
18
Escuela Politécnica Superior de Jaén
2. ÍNDICES Y MARCADORES DE LEGIBILIDAD
En los siguientes apartados se explicará el funcionamiento y las variables que
tienen en cuenta diferentes marcadores de legibilidad, con el objetivo de hacer un
análisis sobre los mismos y tomar una decisión sobre cuál se va a implementar en
este proyecto. Dicho análisis se hará sobre los marcadores de legibilidad existentes
para español e inglés, ya que el sistema se va a desarrollar para ambos idiomas.
2.1. Marcadores de legibilidad en inglés
Dado que la mayoría de los documentos que podemos encontrar en la web están
en inglés, el análisis de estos marcadores comenzará por los ya existentes para este
idioma.
2.1.1. Índice Gunning Fog
Este índice es un test de legibilidad para la escritura en inglés. El índice nos da
una estimación del nivel educativo que una persona necesita para entender un texto
la primera vez que lo lee. [3]
El uso más común para este índice es la comprobación de que la lectura de un
texto es adecuada para una determinada audiencia. En este algoritmo se utiliza como
factor de peso el número de palabras complejas, que son todas las palabras que
tienen más de tres sílabas (no se incluyen nombres propios, jerga popular o palabras
compuestas), además los sufijos y prefijos más comunes (-ed, as, -ing) tampoco
cuentan para contabilizar una sílaba.
0,4 [(𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑓𝑟𝑎𝑠𝑒𝑠) + 100 (
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠 𝑐𝑜𝑚𝑝𝑙𝑒𝑗𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠)]
Fórmula 2.1. Puntuación del índice Gunning Fog
En la Tabla 2.1 se muestra el desglose de las puntuaciones del índice, junto con
el nivel educativo asociado.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
19
Escuela Politécnica Superior de Jaén
Puntuación Nivel de estudios
6 Sexto grado
7 Séptimo grado
8 Octavo grado
9 Primer año de instituto
10 Segundo año de instituto
11 Tercer año de instituto
12 Cuarto año de instituto
13 Universitario de primer año
14 Universitario de segundo año
15 Universitario de tercer año
16 Universitario de cuarto año
17 Graduado universitario Tabla 2.1. Desglose de puntuaciones del índice Gunning Fog
Sin embargo, este índice presenta limitaciones. Por ejemplo, no todas las
palabras complejas tienen que ser difíciles de entender, de igual manera palabras de
menos sílabas que tienen un uso muy poco frecuente pueden suponer un problema.
Por lo que la frecuencia con la que se usan ciertas palabras comunes afectan a la
legibilidad del texto.
2.1.2. Test de legibilidad de Flesch-Kincaid
Los test de legibilidad de Flesch-Kincaid están diseñados para indicar la dificultad
de un pasaje en inglés. Los dos test analizados son la prueba de facilidad de lectura
de Flesch y la prueba de nivel educativo de Flesch-Kincaid. Ambos test utilizan los
mismos factores de peso, pero con diferentes ponderaciones. Además, el resultado
del primer test es aproximadamente inverso al segundo. [4]
2.1.2.1. Prueba de facilidad de lectura de Flesch
En este test mientras más alto sea el valor obtenido, más fácil de leer será el
texto.
206,835 − 1,015 (𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑓𝑟𝑎𝑠𝑒𝑠) − 11,8 (
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑠í𝑙𝑎𝑏𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠)
Fórmula 2.2. Puntuación de la prueba de facilidad de lectura de Flesch
Los resultados obtenidos por este test, así como el nivel de estudios
recomendado para el texto, se pueden ver en la Tabla 2.2.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
20
Escuela Politécnica Superior de Jaén
Puntuación Nivel de estudios Explicación
100,0 – 90,0 5º grado Muy fácil de leer, recomendado para estudiantes de 11 años de media
90,0 – 80,0 6ºgrado Bastante fácil de leer, inglés conversacional
80,0 – 70,0 7º grado Fácil de leer
70,0 – 60,0 8º y 9º grado Inglés sencillo, fácil de entender para estudiantes de entre 13 y 15 años
60,0 – 50,0 10º-12º grado Difícil de leer
50,0 – 30,0 Universitario Bastante difícil de leer
30,0 – 0,0 Graduado universitario
Muy difícil de leer. Los que mejor lo entienden son los graduados universitarios
Tabla 2.2. Desglose de puntuaciones de la prueba de facilidad de lectura de Flesch
2.1.2.2. Prueba de nivel educativo de Flesch-Kincaid
Este test de legibilidad se utiliza sobre todo en el campo educativo. El resultado
que produce se corresponde con el nivel educativo de E.E.U.U., pero también se
puede interpretar como el número de años de educación que normalmente se
necesitan para entender el texto. Esta interpretación se suele utilizar cuando el
resultado es superior a 10.
0,39 (𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑓𝑟𝑎𝑠𝑒𝑠) + 11,8 (
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑠í𝑙𝑎𝑏𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠) − 15,59
Fórmula 2.3. Puntuación de la prueba de nivel educativo de Flesch-Kincaid.
Hay que tener en cuenta que la fórmula no está delimitaday, que puede producir
valores negativos con frases compuestas mayormente por monosílabos como por
ejemplo el libro “Green Eggs and Ham” del Dr. Seuss. Por otro lado, también debemos
tener en cuenta que este test no está limitado superiormente, por lo que puede generar
resultados que no son realistas.
2.1.3. Índice A.R.I. (Automated Readability Index)
El índice ARI es una prueba de legibilidad para textos en inglés, está diseñada
para medir la comprensión de un texto. Como resultado, produce una representación
aproximada del nivel de estudios de un estadounidense que es necesario para
comprender el texto. [5]
Para hacer el cálculo se tienen como factores el número de caracteres,
palabras y frases presentes en el texto. Además, la puntuación obtenida siempre se
redondea al entero más cercano.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
21
Escuela Politécnica Superior de Jaén
4,71 (𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟𝑒𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠) + 0,5 (
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑓𝑟𝑎𝑠𝑒𝑠) − 21,43
Fórmula 2.4. Puntuación del índice ARI
A diferencia de otros índices, este se basa en el factor de caracteres por palabra,
en lugar de lo habitual, que es contabilizar las sílabas por palabra. Como se puede ver
en la Tabla 2.3, según el valor obtenido, el índice nos propone los siguientes niveles
de dificultad:
Puntuación Rango de edad Nivel de estudios
1 5-6 Jardín de infancia
2 6-7 Primer grado
3 7-8 Segundo grado
4 8-9 Tercer grado
5 9-10 Cuarto grado
6 10-11 Quinto grado
7 11-12 Sexto grado
8 12-13 Séptimo grado
9 13-14 Octavo grado
10 14-15 Noveno grado
11 15-16 Décimo grado
12 16-17 Undécimo grado
13 17-18 Duodécimo grado
14 18-22 Universidad Tabla 2.3. Desglose de puntuaciones del índice ARI
Por lo tanto, gracias a este índice podríamos clasificar de manera sencilla un
conjunto de textos de acuerdo a su legibilidad, indicando además el nivel de estudios
y edad para su correcta comprensión.
2.2. Marcadores de legibilidad en español
Aunque la mayoría de marcadores e índices de legibilidad existentes están
diseñados para el inglés, existen algunas adaptaciones de los mismos para el español.
A continuación se presentan adaptaciones del test de legibilidad de Flesch-Kincaid.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
22
Escuela Politécnica Superior de Jaén
2.2.1. Test de legibilidad de Fernández Huerta
Es una adaptación de la prueba de facilidad de lectura de Flesch para el español,
diseñada en 1956. Fue diseñada por el español José Fernández Huerta y, en ella,
reutiliza la fórmula de la prueba de facilidad de Flesch utilizando los mismos factores,
pero alterando las ponderaciones. [6]
𝐿𝐸𝐶𝑇 = 206,84 − 0,60𝑃 − 1.02𝐹
Fórmula 2.5. Fórmula de la prueba de facilidad de Fernández Huerta
Donde P es el número de sílabas cada 100 palabras y F el número de frases por
cada 100 palabras. El procedimiento del autor consistía en calcular estos dos
parámetros con una muestra de 30 páginas para los libros y 5 para los artículos.
La tabla resultante a este test es similar a la Tabla 2.2 pero con los niveles
educativos españoles del momento.
El principal problema que presenta la propuesta de Fernández Huerta es que su
fórmula no es escalable, además de que no explicó su procedimiento de validación ni
validó realmente la escala de las puntuaciones.
2.2.2. Test de legibilidad de Flesch-Szigriszt
Su aportación ha sido una de las más importantes para la legibilidad lingüística
española. Su trabajo consistió en validar la fórmula de la prueba de facilidad de lectura
de Flesch (Fórmula 2.2), encargándose de ajustar esta fórmula para su aplicación en
el español y el francés. [7]
Para empezar, valida el primer parámetro K = 206,835 y declara que es una
variable independiente y, por lo tanto, válida para los tres idiomas ya que su función
es lograr puntuaciones entre 0 y 100.
Posteriormente, se encargó de realizar ajustes en los otros dos parámetros para
conseguir que la fórmula propuesta por Flesch se adaptase al español.
206,835 − 62,3(𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑠í𝑙𝑎𝑏𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠) − 1(
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑓𝑟𝑎𝑠𝑒𝑠)
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
23
Escuela Politécnica Superior de Jaén
Fórmula 2.6. Test de legibilidad de Flesch-Szigriszt
Una vez ajustada y validada la fórmula, lo que hace este autor es adaptar la tabla
de niveles de Flesch para nuestro idioma, obteniendo lo siguiente.
Puntuación Nivel de estudios Tipo de publicación
100,0 – 85,0 6-10 años Muy fácil. Cómics o tebeos
85,0 – 75,0 11 años Fácil. Para kioscos
75,0 – 65,0 12 años Bastante fácil. Novela y revista femenina
65,0 – 50,0 Popular Normal. Los media
50,0 – 35,0 Cursos secundarios Bastante difícil. Literatura y divulgación
35,0 – 15,0 Selectividad y estudios universitarios
Difícil. Pedagogía y técnica
15,0 – 0,0 Titulados universitarios Muy difícil. Científica y filosófica Tabla 2.4. Desglose de puntuaciones del estudio de legibilidad de Flesch-Szigriszt
Este estudio es mucho más completo que el anterior y soluciona los problemas
que presentaba el test de Fernández Huerta. Sin embargo, este estudio también
presenta un problema y es que la validación de la escala de puntuaciones fue
realizada con una muestra insuficiente, de conveniencia y no sistemática.
2.2.3. Grado en la escala INFLESZ y el programa INFLESZ
Esta nueva escala surge tras revisar el trabajo realizado por Flesch-Szigriszt [7],
pero esta vez tomando una muestra de tamaño suficiente y aleatoria. Después de
realizar este estudio, se consiguió una escala válida que, a diferencia de los otros dos
métodos, utiliza 5 niveles por simplicidad, en lugar de 7. [9]
Puntuación Grado Tipo de publicación
100,0 – 80,0 Muy fácil Educación primaria, tebeos y cómics
80,0 – 65,0 Bastante fácil Educación primaria, prensa del corazón y novelas de éxito
65,0 – 55,0 Normal E.S.O., prensa general y deportiva
55,0 – 40,0 Algo difícil Bachillerato, divulgación científica y prensa especializada
40,0 – 0,0 Muy difícil Universitario y científico Tabla 2.5. Escala INFLESZ
A continuación podemos ver una tabla comparativa entre la escala original
propuesta por Flesch, la propuesta por Szigriszt y la de INFLESZ.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
24
Escuela Politécnica Superior de Jaén
Puntuación INFLESZ Szigriszt Flesch
0
Muy difícil
Muy difícil Muy difícil 15
30 Difícil
35
Difícil 40
Bastante difícil 45
Algo difícil 50
55
Normal Bastante difícil
60 Normal
65 Normal
70
Bastante fácil Bastante fácil
75 Bastante fácil
80 Fácil
85
Muy fácil
Fácil 90
Muy fácil 95 Muy fácil
100 Tabla 2.6. Comparación entre las escalas INFLESZ, Szigriszt y Flesch
Como resultado de esta escala, se desarrolló el programa INFLESZ, que permite
analizar tanto archivos completos, como fragmentos de texto.
Su algoritmo calcula 9 parámetros útiles para evaluar la legibilidad de un texto
en español: palabras, sílabas, frases, promedio de sílabas por palabra, promedio
de palabras por frase, índice Flesch-Szigriszt, grado en la escala INFLESZ,
correlación Word y fórmula de Flesch-Fernández Huerta.
2.3. Conclusiones obtenidas
Después de hacer un estudio de los diferentes marcadores de legibilidad para el
inglés y el español, no hay una gran cantidad de alternativas, ya que no están todas
al mismo nivel, sino que se parte de una idea y se va puliendo y mejorando.
El índice A.R.I. es el que nos ofrece un mayor abanico a la hora de clasificar un
texto en base a su dificultad lectora, ya que su escala está basada en una
aproximación según los niveles educativos de los E.E.U.U. Además, este índice es el
resultado de combinar otros índices de los que también se ha hablado en los
apartados 2.1.1 y 2.2.2, por lo que es el marcador de legibilidad que se ha optado
utilizar para inglés.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
25
Escuela Politécnica Superior de Jaén
Como hemos podido ver en los apartado anteriores la legibilidad en los textos en
español hasta hace poco era algo que no estaba bien conseguido, fue gracias a mucho
esfuerzo que se consiguió ir depurando dicho trabajo hasta conseguir un índice que
realmente estuviese adaptado a nuestro idioma. Es por este hecho que se ha elegido
la escala INFLESZ como marcador de legibilidad para el español, ya que es
actualmente el marcador de legibilidad español más conseguido, fruto del trabajo de
Inés Mª Barrio Cantalejo. [8]
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
26
Escuela Politécnica Superior de Jaén
3. SISTEMAS DE RECUPERACIÓN DE INFORMACIÓN
Hoy en día, cuando nos disponemos a realizar una simple consulta en Internet
podemos ver que nos enfrentamos a una cantidad ingente de información junto con
un gran número de usuarios que no deja de crecer día tras día.
Como podemos ver en la Imagen 3.1, cada vez tenemos más usuarios con
acceso a Internet. Este hecho provoca que sean necesarios sistemas de recuperación
de información cada vez más eficientes y precisos para satisfacer las necesidades de
los usuarios.
Imagen 3.1. Crecimiento mundial de los usuarios con acceso a internet
Es por este motivo que a continuación se realizará un estudio de los sistemas de
recuperación de información actuales, con el objetivo de comprender su
funcionamiento y ver cuál es el modelo más adecuado para el desarrollo de este
proyecto.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
27
Escuela Politécnica Superior de Jaén
3.1. Funcionamiento de los S.R.I.
La función de un sistema de recuperación de información es: dado un conjunto
de documentos textuales en lenguaje natural y una consulta del usuario en forma de
cadena textual, encontrar un conjunto ordenado de documentos del corpus que sean
relevantes para la consulta dada.
Imagen 3.2. Funcionamiento de los S.R.I.
Para el correcto funcionamiento de un S.R.I. es necesario definir un modelo, que
es lo que establece el mecanismo que se utilizará para obtener los documentos
ordenados para una consulta dada.
3.2. Modelos de recuperación de información clásicos
Los modelos clásicos de recuperación de información son el modelo Booleano,
Vectorial y Probabilístico. Estos tres modelos establecen unas bases muy claras para
la recuperación de los documentos relevantes del corpus y se pueden extender de
diversas formas.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
28
Escuela Politécnica Superior de Jaén
3.2.1 Modelo Booleano
En el modelo Booleano las consultas son expresiones de palabras índice
conectadas con operadores lógicos (AND, OR y NOT). Es necesario que las consultas
se expresen usando la forma normal disyuntiva (FND).
Para que un documento sea considerado relevante, se deben cumplir todas las
conjunciones que forman la consulta. Esto significa que todos los elementos de la
consulta aportan el mismo peso a la misma.
Por lo tanto, los documentos que se recuperan, son todos los que son relevantes
para la consulta dada pero no tenemos manera de ordenar dichos documentos, ya
que al usar este modelo, sabemos si el documento es relevante o no, pero no su grado
de relevancia.
3.2.2 Modelo Espacio Vectorial
El modelo de espacio vectorial (M.E.V.) se basa en álgebra vectorial. Para
realizar la recuperación de documentos se construye un vocabulario con todos los
términos t distintos después de preprocesar la colección de documentos. A cada
término, i, en un documento o consulta, j, se le asigna un valor real como peso, wij.
Tanto los documentos como las consultas se expresan como vectores t-
dimensionales. El peso de los términos se calcula teniendo en cuenta la frecuencia
normal e inversa del término. Normalmente se suele normalizar el valor de la
frecuencia de los términos, dividiendo la frecuencia del término por la frecuencia
máxima en ese documento.
𝑡𝑓𝑖𝑗
max {𝑡𝑓𝑖𝑗}
Fórmula 3.1. Normalización de frecuencias
Para calcular los pesos de los términos, deberemos usar la siguiente fórmula
para construir el índice de los términos presentes en los documentos de nuestro
corpus.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
29
Escuela Politécnica Superior de Jaén
𝑤𝑖𝑗 = 𝑡𝑓𝑖𝑗
∗ log (𝑁
𝑑𝑓𝑖
)
Fórmula 3.2. Peso del término i en el documento j
Donde:
Tfij es la frecuencia del término i en el documento j (local)
N es el total de documentos de la colección
Dfi es el total de documentos donde aparece el término i
La consulta normalmente se trata como si fuera un documento más y por tanto
también se calcula para cada uno de sus términos el peso correspondiente. Por último,
se utiliza una medida de similitud que calcula el grado de similitud entre dos vectores
(los documentos y la consulta). De esta forma, es posible ordenar el corpus en base
a esta medida, o incluso establecer un umbral para desechar los documentos que
queden por debajo del mismo.
𝑠𝑖𝑚(�� , 𝑣 ) =∑ 𝑢𝑖 ∗ 𝑣𝑖𝑖
√∑ 𝑢𝑖2
𝑖 ∗ √∑ 𝑣𝑖2
𝑖
Fórmula 3.3. Cálculo de la similitud en el M.E.V.
3.2.3 Modelo Probabilístico
Este modelo se basa en la teoría de probabilidades. Su objetivo es determinar la
probabilidad de que un documento sea relevante para una consulta dada. Esta
probabilidad depende únicamente de la caracterización del documento y de la
consulta. Para ello, se trata de determinar aquellas propiedades que definen el
conjunto de documentos relevantes.
El modelo probabilístico actúa sobre los términos que configuran la consulta del
usuario, ponderándolos imponiéndoles un peso o un número a cada uno de ellos. Este
valor será mayor mientras mejor permita el término discernir los documentos
relevantes de los no relevantes.
De esta manera, se persigue que el sistema realice la recuperación de
información incidiendo sobre todo en los mejores descriptores de entre los que ha
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
30
Escuela Politécnica Superior de Jaén
empleado el usuario en la consulta. Como no se puede saber a priori cuáles, de entre
los términos que configuran la consulta, son buenos descriptores y cuáles no, este
modelo considera para cada uno de los términos empleados en la consulta (de forma
simultánea) la probabilidad de ser un buen y mal descriptor,por lo que el modelo se ve
en la necesidad de realizar una hipótesis inicial sobre sus valores.
El modelo calcula la similitud de los documentos con la consulta de la siguiente
manera.
𝑠𝑖𝑚(𝑑, 𝑐) =𝑃(𝑅|𝑑)
𝑃(𝑅′|𝑑)
Fórmula 3.4. Cálculo de la similitud en el M.P.
Donde:
P(R|d) es la probabilidad de que el documento d sea relevante
P(R’|d) es la probabilidad de que el documento d no sea relevante
El proceso consiste en evaluar la probabilidad de relevancia basándose en las
ocurrencias de los términos de la búsqueda en los documentos. Normalmente se
empieza con una estimación que se va refinando a través del feedback de los
usuarios.
Dado que no se puede computar la probabilidad exacta, por ser un proceso
demasiado complejo, el modelo se basa en simplificaciones y aproximaciones.
3.3. Conclusiones obtenidas
Tras revisar los distintos modelos disponibles a implementar y de ver las
necesidades que tiene el sistema que se quiere implementar, se va a optar por
implementar el modelo de espacio vectorial (M.E.V.), por las siguientes razones:
• El modelo Booleano quedaría totalmente descartado, ya que es necesario
poder ordenar los documentos de alguna forma, cosa que con este modelo no
es posible.
• De igual forma, también se descarta el modelo Probabilístico, ya que su
implementación sería demasiado costosa, además de que para que funcione
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
31
Escuela Politécnica Superior de Jaén
de manera correcta sería necesario entrenar el sistema utilizando el feedback
de los usuarios.
• Dado que en el sistema los documentos que se van a incorporar son libros, que
tienen una cierta temática, nos viene muy bien este sistema,ya que contendrán
muchos valores en común, dando como resultado un mayor producto escalar.
• Adicionalmente, los términos relativos a ciertas temáticas nos servirán para que
documentos con temáticas alejadas a los términos de la consulta obtengan una
similitud menor,resultando en un raking de mayor calidad.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
32
Escuela Politécnica Superior de Jaén
4. DESARROLLO DEL PROYECTO
4.1. Descripción del problema
La información que podemos encontrar en Internet crece de manera exponencial
día a día. Cualquier tipo de persona puede subir información a la red y esto produce
que se puedan encontrar multitud de textos en la red que, a pesar de tratar de un
mismo tema, presentan una dificultad lectora distinta.
Por este hecho, surge la necesidad de desarrollar herramientas que, además de
recuperar los documentos relevantes para una consulta dada, analicen los
documentos y muestren un índice de legibilidad asociado a los mismos que indique
su dificultad lectora, facilitando al usuario la toma de decisiones sobre el documento
que debe leer.
4.2. Objetivos del sistema
La función principal del sistema consiste en recuperar los documentos relevantes
para una consulta dada por el usuario para una temática concreta, junto con su índice
de legibilidad. Esta información deberá aparecer, en forma de etiqueta, junto con el
título del documento recuperado. Para que esta información le sea realmente útil al
usuario, vendrá presentada junto con un color que represente la dificultad que
presenta dicho documento. Adicionalmente, el sistema deberá de ser capaz de
ordenar los documentos recuperados según la dificultad que presentan.
4.3. Especificación de requerimientos
Los requerimientos describen el comportamiento del sistema que se va a
desarrollar. A continuación, se describirán los requisitos funcionales y no funcionales
que tiene nuestro sistema.
4.3.1. Requisitos funcionales
Los requisitos funcionales definen una función del sistema de software o de
sus componentes.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
33
Escuela Politécnica Superior de Jaén
• El sistema deberá de notificar al usuario cuando no ha sido posible
establecer conexión con el servidor, dándole la posibilidad de volver a
intentar establecer la conexión. [R.F.1]
• El sistema debe ser capaz de recoger una colección de documentos
enviados desde el cliente y analizarlos, construyendo un índice a partir de
ellos para, posteriormente, poder realizar consultas. [R.F.2]
• El sistema debe de ser capaz de analizar los documentos de una
colección, asignándole a cada uno de ellos una puntuación en base a un
marcador de legibilidad y una dificultad lectora asociada. [R.F.3]
• El sistema debe de ser capaz de almacenar dicha información en una
base de datos, dándole la opción al usuario de añadir nuevos documentos
para que sean indexados. [R.F.4]
• El sistema permitirá al usuario la elección del idioma que desee, dentro
de los posibles, realizando el procesamiento de las consultas y del corpus
en dicho idioma. [R.F.5]
• El usuario podrá lanzar consultas sobre una colección de documentos ya
procesados sobre una temática concreta o sobre todo el corpus,
obteniendo como respuesta un conjunto de los documentos ordenados
según su relevancia de acuerdo a su consulta. [R.F.6]
• El usuario podrá ordenar los documentos recuperados según su
legibilidad. [R.F.7]
• El usuario podrá descargar cualquier documento recuperado. [R.F.8]
4.3.2 Requisitos no funcionales
Los requisitos no funcionales son requisitos que imponen restricciones en el
diseño o la implementación como restricciones en el diseño. Son propiedades que el
producto final debe tener.
• La aplicación deberá procesar las colecciones de documentos de forma
ágil, reduciendo al mínimo posible el tiempo de espera del usuario.
[R.N.F.1]
• La aplicación deberá de ser extensible, permitiendo añadir nuevos
idiomas e índices de legibilidad de manera cómoda. [R.N.F.2]
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
34
Escuela Politécnica Superior de Jaén
• La aplicación será robusta, permitiendo tomar las medidas necesarias, en
caso de perder la conexión en cualquier punto del procesamiento de
datos, o en caso de tomar una colección de documentos no válida.
[R.N.F.3]
• La aplicación será fácil de usar para cualquier grupo de usuarios y deberá
funcionar en cualquiera de los navegadores más populares. [R.N.F.4]
4.4. Metodología
Para el desarrollo de este proyecto se va a optar por seguir una metodología ágil,
basada en un desarrollo iterativo e incremental. Por lo tanto, el desarrollo del proyecto
de dividirá en pequeñas “entregas”, que se desarrollarán en periodos llamados
iteraciones (entre una y dos semanas).
Ya que cada iteración consiste en un mini-proyecto, conseguimos que el cliente
pueda ver los avances del proyecto y empezar a utilizarlo en las versiones previas, sin
tener que esperar a que se lance la versión final. Por lo tanto conseguimos que el
proyecto vaya evolucionando, ya que en cada iteración se amplían los resultados
obtenidos en las iteraciones anteriores, añadiendo nuevos requisitos o mejorando los
ya existentes [14].
Imagen 4.1. Ciclos iterativos de la metodología ágil
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
35
Escuela Politécnica Superior de Jaén
4.4.1 Metodología ágil empleada
Como se ha explicado en al apartado anterior, se va a seguir una metodología
ágil para el desarrollo del proyecto. No obstante existen varias metodologías que se
pueden desarrollar cuando se habla de desarrollo ágil.
Imagen 4.2. Metodologías ágiles
Dentro de las opciones posibles se ha optado por utilizar KanBan para el
desarrollo del proyecto. Las principales reglas de KanBan son las siguientes:
• Visualizar el trabajo y las fases del ciclo de producción o flujo de
trabajo.
• Determinar el límite de “trabajo en curso”.
• Medir el tiempo en completar una tarea (lead time).
KanBan se basa en el desarrollo incremental, dividiendo el trabajo en partes.
Normalmente, cada una de esas partes se escribe en un post-it y se pega en una
pizarra. La pizarra tendrá tantas columnas como estados por los que puede pasar la
tarea, como se puede ver en la siguiente imagen.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
36
Escuela Politécnica Superior de Jaén
Imagen 4.3. Tablero KanBan
Al organizar las tareas de esta forma, conseguimos que el trabajo que se va a
realizar quede claro y se pueda ver toda la información necesaria de cada tarea de un
vistazo, también se debe de tener claro la prioridad de cada tarea.
Por otra parte, uno de los principales principios de Kanban es que el trabajo en
curso debe estar limitado. Por tanto, se debe definir cuántas tareas como máximo
pueden realizarse en cada fase del ciclo de trabajo. Otra idea que se suele utilizar es
que para empezar con una nueva tarea, se debe haber finalizado otra previa.
En este metodo es muy importante medir el tiempo que se tarda en terminar cada
tarea o “lead time”. El “lead time” cuenta desde que se hace una petición hasta que se
hace la entrega. Con esta medida se mide lo que ven los clientes, lo que esperan. Sin
embargo, es más comun utilizar otra metrica llamada “cycle time” que mide el tiempo
desde que se empieza a desarrollar la tarea hasta que se acaba. Se pueden utilizar
más méticas, pero estas son las realmente importantes.
Finalmente, se ha optado por utilizar la metodología KanBan por los siguientes
motivos:
• Es una metodología muy flexible, que nos permite ver el flujo de trabajo
de un vistazo.
• No requiere de reuniones diarias con el cliente.
• Las iteraciones son cortas y la duración no es fija, lo que agiliza el flujo
de trabajo.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
37
Escuela Politécnica Superior de Jaén
• Se adapta bien a los cambios, ya que los requisitos funcionales
pueden cambiar.
4.5. Historias de usuario
Las historias de usuario definen lo que se debe construir en un proyecto software.
Tienen una prioridad asociada, se dividen en tareas y tienen un tiempo estimado
determinado por los desarrolladores (una semana en este caso).
Las historias de usuario se definen con una breve descripción, como en la
metodología ágil los cambios son bienvenidos, no vale la pena profundizar en la
misma, ya que en el momento de la implementación esta puede haber cambiado. En
la siguiente tabla se muestran las historias de usuario relativas al proyecto, entre
paréntesis se indican las dependencias entre las mismas.
ID Nombre Prioridad Descripción
1 Creación del corpus Alta
Como usuario quiero disponer de un corpus lo suficientemente extenso como para realizar pruebas en el sistema para
cada idioma
2 (1)
Construcción del índice
Alta
Como usuario quiero que el sistema disponga de un índice dónde estén incluidos todos los documentos del corpus, junto con su marcador de
legibilidad correspondiente
3 Construcción de la
aplicación Alta
Como usuario quiero disponer de interfaz web sobre la que realizar las distintas
operaciones de la aplicación
4 (3)
Gestión y ampliación del corpus
Alta
Como usuario quiero poder ampliar el corpus existente, subiendo cualquier cantidad de documentos, así como visualizar el corpus y poder realizar
modificaciones sobre las temáticas de los documentos
5 (3)
Búsqueda de consultas
Alta
Como usuario quiero poder realizar consultas sobre el corpus de la aplicación
y poder ordenar los documentos obtenidos según su legibilidad o
relevancia
6 (3)
Internacionalización de la aplicación
Media
Como usuario quiero poder cambiar el idioma de la aplicación en cualquier
momento, cambiando tantos los textos como el corpus a dicho idioma
Tabla 4.1. Historias de usuario
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
38
Escuela Politécnica Superior de Jaén
4.6. Propuesta de solución
Para la implementación del sistema, se va optar por el desarollo de una interfaz
web que realice todas las operaciones necesarias. Como se explicará más adelante,
en la sección 4.8.2, se va utilizar flask, que es un microframework de Python que nos
permitirá construir la parte del servidor, así como la del cliente. La interfaz tendrá el
siguiente funcionamiento:
1. En primer lugar el usuario tendrá disponible en todo momento, localizado en la
esquina superior derecha, un menú desplegable que le permita seleccionar los
idiomas que hay disponibles. Esta opción determinará el idioma en el que se
mostrarán las distintas opciones y mensajes de la interfaz, así como el que se
utilizará a la hora de procesar los documentos y lanzar las consultas.
2. Por otra parte, el usuario podrá visualizar las temáticas disponibles sobre las
que se pueden realizar consultas. Se podrá seleccionar la opción de realizar la
consulta sobre todo el corpus o sobre un conjunto de temáticas.
3. De igual forma, el usuario podrá optar por subir sus propios documentos a la
aplicación, con el objetivo de poder ampliar el corpus y hacer pruebas sobre el
mismo. Cabe destacar que los documentos que se deseen subir deben cumplir
con ciertos requisitos (tamaño máximo de archivo, extensión adecuada). No
obstante, el sistema informará de los errores que se encuentren, si los hubiese,
al usuario.
4. El sistema mostrará al usuario los mensajes que sean necesarios en el
procesamiento de los documentos y las indicaciones que sean necesarias.
5. El usuario podrá lanzar cualquier consulta en el buscador correspondiente. Una
vez procesada la consulta, el usuario obtendrá una lista de documentos
relevantes para su consulta, junto con un enlace a cada documento, un
fragmento del documento relacionado con la consulta y la dificultad lectora a
modo de etiqueta.
6. El usuario tendrá una opción a modo de botón, que le permitirá ordenar los
documentos recuperados por relevancia o por dificultad lectora.
7. Por último, el usuario podrá hacer click en el enlace de los documentos
recuperado para así visualizar el texto completo.
8. El usuario podrá acceder a la lista de documentos existentes en la aplicación,
puediendo visualizarlos junto con las temáticas que tengan asociadas. El
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
39
Escuela Politécnica Superior de Jaén
usuario deberá ser capaz de modificar las temáticas que un documento tenga
asociadas.
4.7. Descripción de la solución
En este apartado se incluirá la información relativa a cada una de las iteraciones
correspondientes al desarrollo del proyecto.
4.7.1 Primera iteración
Iteración 1: “Como usuario quiero disponer de un corpus lo suficientemente
extenso como para realizar pruebas en el sistema para cada idioma”.
Una parte fundamental de los sistemas de recuperación de información es la
colección de documentos sobre la que se van a realizar las consultas. Es por ello que
aunque el usuario pueda subir sus propios documentos al sistema, se requiere de una
colección base sobre la que ir trabajando.
Se ha optado por elaborar dicha colección con libros en formato EPUB por su
comodidad a la hora de extraer su contenido (ignorando toda la información
innecesaria que añade el proyecto Gutemberg), además de que hoy en día es un
formato que goza cada vez de mayor popularidad y podemos encontrar casi cualquier
libro en dicho formato.
Para el desarrollo del proyecto se utilizarán dos corpus, uno en español y otro en
inglés. Se usará un total de 80 libros que han sido obtenidos del proyecto Gutemberg,
donde se pueden encontrar numerosos libros de forma totalmente gratuita ya que, por
el paso de los años, dichos libros ya no tienen derechos de autor [13].
Dichos libros se pueden descargar en varios formatos por norma general, como
.txt, .pdf o .epub. No obstante se va a optar por utilizar libros en formato .epub, ya que
por la estructura que tienen los libros en este formato, nos permite leer su contenido
de forma sencilla, sin leer la información extra que nos añade el proyecto Gutemberg.
Se ha optado por utilizar los libros de esta plataforma ya que no hay ninguna
licencia que pese sobre ellos, aunque en el sistema desarrollado se puede incluir
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
40
Escuela Politécnica Superior de Jaén
cualquier colección que se considere de libros en formato EPUB (sin imágenes), así
como en texto plano.
Como se explicará más adelante, el sistema necesita procesar el corpus antes
de que se puedan lanzar consultas. Por este motivo se ha elegido una cantidad lo
suficientemente grande como para que el sistema responda de forma correcta, pero
sin perder demasiado tiempo en el preprocesamiento del texto.
En las siguientes tablas se muestran los documentos pertenecientes a los dos
corpus anteriormente mencionados (español e inglés), donde se puede ver el título de
los diferentes documentos pertenecientes a él, así como las temáticas que llevan
asociadas. Hay que tener en cuenta que no hay una distribución uniforme de las
temáticas y los libros escogidos, por lo que puede haber temáticas con muchos libros
asociados o con ninguno.
Nombre Temáticas
Memorias de un vigilante Biografías, diarios y hechos reales, Ficción, Policíaca, negra y suspense
La Veleta de Gastizar Historia y filosofía, Ficción, Política
Los Caudillos de 1830 Historia y filosofía, Ficción, Política
Filosofía Fundamental Tomo I-IV Historia y filosofía, Libros de texto
Cocina moderna Libros de texto, Libros de consulta
La transformación de las razas en América
Historia y filosofía, Libros de texto
Crónicas de Marianela Historia y filosofía, Biografías, diarios y hechos reales
La Biblia en España Tomo I-3 Religión
El Criterio Historia y filosofía, Libros de texto, Biografías, diarios y hechos reales, Religión
La Regenta Política, Religión, Salud, familia y desarrollo personal, Otros
El libro de las mil noches y una noche t 1-3
Infantil, Juvenil, Fantasía y ciencia ficción
Historia de la celebre Reina de España Doña Juana llamada vulgarmente La
Loca
Historia y filosofía, Libros de texto
Historia de Venezuela Tomo I y II Historia y filosofía, Libros de texto
Historia natural y moral de las Indias Historia y filosofía, Libros de texto
Actas capitulares desde el 21 hasta el 25 de mayo de 1810 en Buenos Aires
Historia y filosofía, Libros de texto
Almacén de recetas escogidas y probadas
Libros de texto, Libros de consulta
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
41
Escuela Politécnica Superior de Jaén
Colección de viages y expediciones a los campos de Buenos Aires y a las
costas
Guías de viaje, Libros de consulta
Con la Pluma y con el Sable Crónica de 1820 a 1823
Historia y filosofía, Lengua, lingüística y redacción
De Las Islas Filipinas Historia y filosofía, Libros de texto
Diario de la expedición reduccional del año 1780 mandada practicar por orden
Libros de texto, Biografías, diarios y hechos reales
Diario de un reconocimiento de la guardia y fortines
Libros de texto, Biografías, diarios y hechos reales
Un paseo por Paris retratos al natural Guías de viaje, Libros de consulta
Viajes por España Guías de viaje, Libros de consulta
Viajes por Filipinas De Manila Albay Guías de viaje, Libros de consulta
Viajes por Filipinas De Manila Marianas Guías de viaje, Libros de consulta
Viajes por Filipinas De Manila Tayabas Guías de viaje, Libros de consulta
Novelas Cortas Lengua, lingüística y redacción, Otros
Orlando Furioso Tomo I y II Lengua, lingüística y redacción, Otros
La voz de España contra todos sus enemigos
Historia y filosofía, Libros de texto, Otros
La voz de la conseja t 1 y 2 Historia y filosofía, Libros de texto, Otros
La Isabelina Lengua, lingüística y redacción, Otros, Fantasía y ciencia ficción
La lucha por la vida Aurora roja Lengua, lingüística y redacción, Otros, Fantasía y ciencia ficción
La lucha por la vida La busca Lengua, lingüística y redacción, Otros, Fantasía y ciencia ficción
La lucha por la vida Mala hierba Lengua, lingüística y redacción, Otros, Fantasía y ciencia ficción
Florante Lengua, lingüística y redacción, Otros
Derroteros y viages a la Ciudad Encantada o de los Cesares
Historia y filosofía, Libros de texto
Dona Clarines y Mañana de Sol Humor, Ficción, Otros
El aprendiz de conspirador Lengua, lingüística y redacción, Otros
El Capitán Veneno Lengua, lingüística y redacción, Otros, Fantasía y ciencia ficción
El Escuadrón del Brigante Historia y filosofía, Lengua, lingüística y redacción, Otros, Fantasía y ciencia ficción
El Sabor de la Venganza Historia y filosofía, Lengua, lingüística y redacción, Otros, Fantasía y ciencia ficción
El sombrero de tres picos Lengua, lingüística y redacción, Romántica, Fantasía y ciencia ficción
Extracto de la gramática mutsun Lengua, lingüística y redacción, Libros de texto
Fundación de la ciudad de Buenos-Aires Historia y filosofía, Libros de texto
Germana Juvenil, Otros, Fantasía y ciencia ficción
Granos de oro Pensamientos Seleccionados en las Obras de José
Martí
Lengua, lingüística y redacción, Otros
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
42
Escuela Politécnica Superior de Jaén
La Argentina Historia y filosofía, Lengua, lingüística y redacción, Otros
La Igualdad Social y Política y sus Relaciones con la Libertad
Historia y filosofía, Lengua, lingüística y redacción, Libros de texto, Biografías, diarios y
hechos reales, Otros La nariz de un notario Humor, Lengua, lingüística y redacción, Otros
La Navidad en las Montanas Infantil, Juvenil, Otros, Fantasía y ciencia ficción
La Ruta del Aventurero Historia y filosofía, Ficción, Política
Las Furias Historia y filosofía, Ficción, Política
La señorita de Trevelez Juvenil, Ficción, Romántica, Otros
La situación de Puerto-Rico Historia y filosofía, Libros de texto
Las inquietudes de Shanti Andia Ficción, Otros
Las noches mejicanas Ficción, Otros
Los Caminos del Mundo Lengua, lingüística y redacción, Ficción
Los Contrastes de la Vida Lengua, lingüística y redacción, Ficción
Mala Hierba Lengua, lingüística y redacción, Ficción
Los espectros Novelas breves Juvenil, Lengua, lingüística y redacción, Ficción
Los Merodeadores de Fronteras Juvenil, Lengua, lingüística y redacción, Ficción
Los Recursos de la Astucia Lengua, lingüística y redacción, Ficción, Otros
Máximas Morales en Ilocano y Castellano
Historia y filosofía, Biografías, diarios y hechos reales, Religión, Sociedad y ciencias sociales,
Otros Quince minutos en globo Humor, Juvenil, Lengua, lingüística y redacción,
Ficción, Otros Relación histórica de los sucesos de la rebelión de José Gabriel Tupac-Amaru
Historia y filosofía, Biografías, diarios y hechos reales, Sociedad y ciencias sociales, Otros
Reseña Verídica de la Revolución Filipina
Historia y filosofía, Biografías, diarios y hechos reales, Sociedad y ciencias sociales, Otros
Tratado de Paz Amistad Comercio y navegación entre la Confederación
Argentina
Historia y filosofía, Biografías, diarios y hechos reales, Sociedad y ciencias sociales, Otros
Su único hijo Juvenil, Ficción, Romántica
Vida De Lazarillo De Tormes Historia y filosofía, Biografías, diarios y hechos reales, Sociedad y ciencias sociales, Otros
Zalacaín El Aventurero Juvenil, Ficción, Romántica, Otros
Tabla 4.2. Corpus (español)
Nombre Temáticas
Dracula Fantasy and sci-fi, Fiction, Detectives, crime and suspense
Frankenstein Fantasy and sci-fi, Fiction
Moby Dick History and philosophy, Fiction, Society and social sciences, Others
Peter Pan Fantasy and sci-fi, Childhood, Juvenile, Fiction
The Iliad Fantasy and sci-fi, History and philosophy, Language, literature and composition, Others
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
43
Escuela Politécnica Superior de Jaén
Ulysses Fantasy and sci-fi, History and philosophy, Language, literature and composition, Others
Treasure Island Fantasy and sci-fi, Childhood, Juvenile, Fiction, Others
Oliver Twist Childhood, Juvenile, Fiction, Society and social sciences, Others
Metamorphosis Language, literature and composition, Fiction, Others
Forbidden Fruit Fiction, Romantic, Others
Alices Adventures in Wonderland
Fantasy and sci-fi, Childhood, Juvenile, Fiction
Adventures of Huckleberry Finn Childhood, Juvenile, Fiction
The Adventures of Tom Sawyer Childhood, Juvenile, Fiction
The Adventures of Sherlock Holmes
Fiction, Detectives, crime and suspense
1917 Military Equipment History and philosophy, Text books, Others
Autobiography of Benjamin Franklin
Biographies, diaries and real stories, History and philosophy, Others
China Revolutionized Biographies, diaries and real stories, History and philosophy, Others
War and Peace Biographies, diaries and real stories, History and philosophy, Others
The Picture of Dorian Gray Juvenile, Detectives, crime and suspense, Romantic, Others
The King James Religion, Others
Narrative of the Captivity and Restoration of Mrs
Biographies, diaries and real stories, History and philosophy, Text books
Narrative of the Life of Frederick Douglass
Biographies, diaries and real stories, History and philosophy, Text books
Les Miserables Fiction, Politics, Religion, Romantic
A Christmas Carol in Prose Juvenile, Language, literature and composition
Memoirs Of Fanny Hill Biographies, diaries and real stories
The Complete Works of William Shakespeare
Language, literature and composition, Others
The Romance of Lust Fiction, Romantic, Others
The Count of Monte Cristo Fiction, Detectives, crime and suspense, Romantic, Society and social sciences, Others
The Atomic Bombings of Hiroshima and Nagasaki
History and philosophy, Text books
A Study in Scarlet Fiction, Detectives, crime and suspense
A Colored Mans Reminiscences of James Madison
History and philosophy, Text books
A Dolls House Fiction, Detectives, crime and suspense, Romantic
A Modest Proposal History and philosophy, Humor, Society and social sciences
A Tale of Two Cities Juvenile, Society and social sciences, Others
Anne of Green Gables Childhood, Society and social sciences
Beowulf Language, literature and composition
Beyond Good and Evil History and philosophy
Crime and Punishment Juvenile, Detectives, crime and suspense
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
44
Escuela Politécnica Superior de Jaén
Dubliners Humor, Society and social sciences
Emma Humor, Language, literature and composition
Essays of Michel de Montaigne Humor, Language, literature and composition
Good-Morning Rosamond Juvenile, Language, literature and composition, Others
Great Expectations Juvenile, Health, family and personal development, Society and social sciences
Grimms Fairy Tales Juvenile, Language, literature and composition, Others
Hawaii National Park A Guide for the Haleakala Section
Travel guides, Others
Heart of Darkness Juvenile, Language, literature and composition, Others
Jane Eyre Fiction, Romantic
Leaves of Grass Language, literature and composition
Leviathan History and philosophy, Religion, Others
Little Women Juvenile, Health, family and personal development, Society and social sciences
Meditations History and philosophy
My Queen History and philosophy, Others
My Secret Life History and philosophy, Others
Persuasion Fiction, Romantic, Others
Pride and Prejudice Fiction, Romantic
Rifles and Riflemen at the Battle of Kings Mountain
History and philosophy, Others
Sense and Sensibility Romantic, Health, family and personal development, Others
Siam Others
Siddhartha History and philosophy, Language, literature and composition
Te Tohunga Fiction, Others
The Anatomy of Melancholy Science, technology and medicine, History and philosophy, Others
The Book of the Native History and philosophy
The Book of Town Window Gardening
History and philosophy, Others
The Brothers Karamazov History and philosophy, Fiction
The Divine Comedy Language, literature and composition, Fiction, Others
The Hound of the Baskervilles Fiction, Detectives, crime and suspense
The Importance of Being Earnest
Society and social sciences, Others
The Indians of the Pikes Peak Region
Religion, Others
The Kama Sutra of Vatsyayana Others
The Mysterious Affair at Styles Detectives, crime and suspense, Others
The Prince History and philosophy, Politics
The Republic Fiction, Others
The Strange Case of Dr Fiction, Others
The Time Machine Fantasy and sci-fi, Fiction
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
45
Escuela Politécnica Superior de Jaén
The Treasure of the San Philipo Others
The Wonderful Wizard of Oz Fantasy and sci-fi, Juvenile, Others
The Yellow Wallpaper Childhood, Juvenile, Health, family and personal development
Thinking as a Science Science, technology and medicine, Others
Thus Spake Zarathustra History and philosophy
Wuthering Heights Language, literature and composition, Fiction, Others
Tabla 4.3. Corpus (inglés)
4.7.2 Segunda iteración
Iteración 2: “Como usuario quiero que el sistema disponga de un índice dónde
estén incluidos todos los documentos del corpus, junto con su marcador de legibilidad
correspondiente”.
Como se explicó en el capítulo 3, se va a implementar un M.E.V. como sistema
de recuperación de información. Para la implementación se han utilizado varios
ficheros .py para gestionar las diferentes clases.
Por comodidad se han agrupado las utilizades de estas clases en dos ficheros
(IndexFileCreator.py y QuerySearch.py), que serán los que la aplicación utilizará para
indexar los documentos y realizar la búsqueda de consultas respectivamente.
4.7.2.1. Creación del índice
Como se ha comentado anteriormente, la creación o actualización del índice se
realizará mediante la clase “IndexFileCreator”. Dado que tenemos dos idiomas, se
generará un índice para cada uno, que contendrá los documentos que se suban a la
aplicación en dicho idioma.
Lo único que debemos de hacer es crear un objeto de la clase IndexFileCreator
y pasarle el idioma y una lista con el nombre de los libros que se quieren indexar.
Luego, llamando al método save_index(), la clase hará las comprobaciones
necesarias sobre los ficheros que se van a procesar, de tal forma que almacenará los
nombres de los ficheros que generen algún tipo de error en su procesamiento, para
poder notificárselo al usuario.
Dado que generar el índice es una tarea costosa que crece a medida que
aumenta la cantidad de libros que tenemos indexados, debemos de tener una buena
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
46
Escuela Politécnica Superior de Jaén
gestión de los libros que teníamos indexados previamente y los nuevos que se suben
para indexar. Por lo tanto, se debe incluir este mecanismo para ahorrarnos este tiempo
de procesamiento.
Una vez el índice está construido se almacenará con el formato “index-idioma.p”.
Para ello se utilizará la clase pickle de Python, que nos permitirá almacenar el objeto
generado en disco para poder cargarlo posteriormente.
4.7.2.2. Lanzamiento de consultas
Una vez el usuario se decida a lanzar una consulta, utilizaremos la clase
“QuerySearch” para obtener el conjunto de documentos relevantes para la misma.
Para ello crearemos un objeto de esta clase y le pasaremos el idioma en el que se ha
realizado la consulta junto con la misma.
La clase se encarga de hacer el procesamiento de la consulta y de hacer los
cálculos necesarios para la obtención de un conjunto de documentos ordenados
(según la similitud con la consulta). Posteriormente mediante la llamada del método
get_ranks() obtendremos toda la información necesaria sobre los documentos
obtenidos para poder tratarla de forma correcta en la aplicación y mostrarla en el
cliente.
Este método devolverá un diccionario con dos listas, una con los documentos
ordenados de acuerdo a su similitud y otra de acuerdo a su legibilidad. El índice de
legibilidad se calculará según el idioma en el que se lance la consulta (que debe de
coincidir con el del corpus). Los elementos de dicha lista contendrán la siguiente
información:
• Título del documento.
• Valor del marcador de legibilidad: para poder ordenarlos en base a este
criterio.
• Marcador de legibilidad: que será lo que nos indicará la dificultad del
documento según las escalas ARI o INFLESZ, según corresponda.
• Extracto: fragmento del documento dónde se ha encontrado la
coincidencia con la consulta. Con las palabras coincidentes marcadas en
negrita.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
47
Escuela Politécnica Superior de Jaén
• Palabras ausentes: palabras de la consulta que no están presentes en
el fragmento de texto que se ha obtenido.
4.7.3. Tercera iteración
Iteración 3: “Como usuario quiero disponer de interfaz web sobre la que realizar
las distintas operaciones de la aplicación”.
Para realizar este trabajo vamos a necesitar construir la aplicación Flask que
tendrá una barra de navegación donde el usuario podrá acceder a las diferentes
secciones de la aplicación, así como el menú desplegable correspondiente para
cambiar de idioma.
Una vez la base esté construida se podrán ir desarrollando las diferentes vistas
encargadas de realizar las diferentes funciones del sistema. De forma adicional,
necesitaremos una base de datos (B.B.D.D.) para almacenar la información referente
a los documentos que tenemos registrados en la aplicación, así como las temáticas.
4.7.3.1. Construcción de la B.B.D.D.
El modelo que se va a seguir para construir la base de datos va a ser muy
sencillo, ya que sólo necesitamos almacenar la lista de temáticas disponibles, los
libros que tenemos registrados en la aplicación y cómo se relacionan con las distintas
temáticas.
Además del diseño conceptual de la base de datos, es necesario decidir el motor
de base de datos que se va a utilizar. Dado que necesitamos una base de datos
relacional, para la complejidad del modelo que vamos a utilizar sería una buena idea
usar MySQL, PostgreSQL o SQLite.
Como para los dos primeros necesitaríamos un servidor donde almacenar la
base de datos y no nos compensaría por el volumen y complejidad de los datos que
se van a manejar, se ha optado por utilizar una base de datos SQLite, que nos permite
tener una base de datos sin necesidad de un servidor y además mediante la extensión
de Flask SQLAlchemy podremos gestionarla de una forma muy cómoda (apartado
4.8.2.2).
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
48
Escuela Politécnica Superior de Jaén
Imagen 4.4. Diseño conceptual de la BBDD
Como se puede ver en el diagrama, nuestro modelo tendría únicamente estas
tres tablas, que serán las encargadas de gestionar los libros que se han subido a la
aplicación (indicando si un determinado libro ha sido indexado o no), así como el
idioma que tienen asociado los diferentes libros y temáticas.
4.7.3.4. Desarrollo de la aplicación Flask
Hoy en día tenemos una variedad de dispositivos (ordenadores, tablets, móviles)
y de navegadores (Chrome, Firefox, Safari) cada vez mayor. Por ello es necesario que
se desarrollen sitios webs responsives, capaces de adaptarse según el tamaño de
pantalla, y que funcionen de forma correcta en cualquier navegador.
Por este fin se va a diseñar toda la aplicación utilizando Bootstrap, que es un
framework de código abierto que pone a nuestra disposición un conjunto de elementos
y técnicas para el diseño responsive de nuestro sitio web (sección 4.8.2.4).
Dicho esto, el siguiente paso es crear la aplicación Flask, que nos permitirá
utilizar de una forma sencilla nuestra base de datos y nuestro código fuente Python,
permitiéndonos crear nuestra aplicación web.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
49
Escuela Politécnica Superior de Jaén
Una vez tenemos la aplicación base finalizada, con la integración de la B.B.D.D.
y el codigo fuente correspondiente al S.R.I. integrados, obtenemos lo siguiente, donde
se irán añadiendo las vistas necesarias.
Imagen 4.5. Diseño de la aplicación Flask
4.7.4. Cuarta iteración
Iteración 4: “Como usuario quiero poder ampliar el corpus existente, subiendo
cualquier cantidad de documentos, así como visualizar el corpus y poder realizar
modificaciones sobre las temáticas de los documentos”.
La idea principal de esta vista es dar al usuario la capacidad de subir cualquier
cantidad de documentos a la aplicación. Por lo tanto, nuestra vista deberá contener
un formulario con un botón que nos abra el explorador de archivos correspondiente
con la selección múltiple habilitada, además de un desplegable para poder seleccionar
las temáticas asociadas a dichos documentos. El sistema deberá realizar todas las
validaciones necesarias para comprobar que la extensión de los archivos es correcta
y mostrar los mensajes de error correspondientes si los hubiera. Por último, deberán
aparecer todos los archivos que se van a subir, para que el usuario pueda visualizarlos
y realizar modificaciones.
Una vez el usuario haga click en el botón “Enviar archivos”, la aplicación deberá
almacenar dichos documentos y además generar las entradas correspondientes en la
base de datos, en la que se almacenará la información de los libros y las temáticas
que tienen asociadas.
Los libros que se acaban de subir, como se vio en el modelo conceptual, estarán
con el campo de indexación a 0. Si el proceso ha finalizado de forma correcta, deberá
aparecer un botón que permita al usuario añadir los libros que acaba de subir al índice,
permitiendo que dichos libros estén disponibles en futuras búsquedas.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
50
Escuela Politécnica Superior de Jaén
Imagen 4.6. Subida de documentos a la aplicación
Lo siguiente que necesitamos es otra vista en la que podamos visualizar todos
los documentos que hay actualmente en la aplicación y que podamos consultar su
información, como por ejemplo si están o no indexados y las temáticas de cada uno
de ellos, así como la posibilidad de editar dichas temáticas.
Para que la visualización sea clara se ha optado por mostrar los documentos en
un formato de tabla, donde el el título del libro aparecerá en verde si está indexado o
rojo si no lo está. Si hay algún documento que aún no está indexado aparecerá un
botón al pie de la tabla que permitirá hacerlo.
Dado que hay una gran cantidad de libros, se ha implementado la tabla con
paginación, la cantidad de libros que aparecerán por página viene determinada por el
parámetro “BOOKS_PER_PAGE”, dentro del fichero config.py, se explicará con más
detalle en la sección correspondiente al manual de usuario.
Imagen 4.7 Subida de documentos a la aplicación
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
51
Escuela Politécnica Superior de Jaén
Como se puede ver en la imagen, de esta forma conseguimos ver toda la
información referente a los libros que tenemos registrados de una forma muy clara, si
quisiesemos modificar las temáticas asociadas a algún libro solo deberemos hacer
click en el título del libro y veremos una pantalla como la de la siguiente imagen.
Imagen 4.8 Modificación de temáticas
4.7.5. Quinta iteración
Iteración 5: “Como usuario quiero poder realizar consultas sobre el corpus de la
aplicación y poder ordenar los documentos obtenidos según su legibilidad o
relevancia”.
Para lograr este objetivo se va a diseñar una vista con un cuadro de búsqueda,
un desplegable para seleccionar la temática y un botón de búsqueda.
Se podrá elegir cualquier cantidad de temáticas. Por defecto, si no se selecciona
ninguna, se buscará ignorando la temática. Como se dejó todo preparado en la
segunda iteración, solo deberemos recoger la consulta y las temáticas seleccionadas,
si las hay y hacer la llamada a la clase correspondiente.
Ya que tenemos la información de los documentos recuperados, el siguiente
paso es diseñar una vista para poder mostrarla. Dado que Google es actualmente el
buscador más utilizado, se va a optar por un diseño muy similar, añadiendo la etiqueta
de legibilidad correspondiente a cada documento y un botón que permita ordenar en
base a este criterio. En esta vista la paginación se gestionará de igual forma, pero esta
vez se utilizará el parámetro “BOOKS_PER_PAGE_IN_SEARCH”.
Al hacer click sobre el título de cualquier documento, podremos descargarlo. Si
el documento tiene la extensión .epub, nos saldrá el dialogo de descarga
correspondiente. Sin embargo, si es un .txt se abrirá una nueva pestaña con el
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
52
Escuela Politécnica Superior de Jaén
contenido del documento. De esta forma, podremos visualizarlo en el propio
navegador o descargarlo.
Imagen 4.9 Resultado al lanzar una consulta
Como se puede ver en la imagen anterior, se ha asociado un color según la
dificultad para darle al usuario una pista visual sobre la dificultad de cada documento.
Este proceso es muy sencillo para la escala INFLESZ, ya que contempla sólo cinco
dificultades. Sin embargo para el índice ARI, que contempla catorce dificultades, es
algo más complejo, por lo que se utilizarán distintas tonalidades de los colores
mencionados.
En la siguiente imagen se pueden ver todas las etiquetas utilizadas para
representar la dificultad lectora de los documentos, para la escala INFLESZ como se
ha dicho anteriormente se han utilizado cinco colores diferentes, mientras que para el
índice ARI, se han utilizado estos colores junto con tonalidades de los mismos.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
53
Escuela Politécnica Superior de Jaén
Imagen 4.10 Marcadores de legibilidad utilizados
4.7.6. Sexta iteración
Iteración 6: “Como usuario quiero poder cambiar el idioma de la aplicación en
cualquier momento, cambiando tanto los textos como el corpus a dicho idioma”.
Para lograr esta tarea se va a utilizar la extensión Flask-Babel que nos permitirá
internacionalizar la aplicación de una forma muy sencilla. Este proceso se explicará
en detalle en la sección 4.8.2.5.
El idioma por defecto de la aplicación será el español, pudiendo cambiarse al
inglés en cualquier momento. Esto se gestionara mediante una variable de entorno,
que será la que marque el idioma de toda la aplicación.
Para poder cambiar el idioma de la aplicación solo será necesario hacer click en
el idioma deseado en el selector de idioma ubicado en la parte derecha de la barra de
navegación.
4.8. Tecnologías
En este apartado se describirán todas las tecnologías que se han utilizado para
el desarrollo del proyecto.
4.8.1. Python
Python ha sido el lenguaje de programación que sea ha utilizado para
prácticamente todo el proyecto, utilizando la versión 3. Python es un lenguaje de
programación interpretativo cuya filosofía hace hincapié en una sintaxis que favorezca
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
54
Escuela Politécnica Superior de Jaén
la legibilidad del código. Este lenguaje soporta orientación a objetos y programación
imperativa, por lo que la dinámica que se ha seguido es crear un fichero .py por cada
clase, dejando así el código bien organizado para cuando se vayan a realizar
modificaciones.
Después de valorar varias opciones, se seleccionó este lenguaje por las
siguientes razones:
• La sintaxis del lenguaje, ya que los bloques de código se organizán según
la indentación del mismo. Esto hace que el código se quede mucho más
ordenado y se consigue un código mucho más legible.
• Es un lenguaje interpretado, por lo que no es necesario compilar el código
antes de ejecutarlo.
• Es un lenguaje que se ha vuelto muy popular estos últimos años y dispone
de una gran cantidad de librerías que nos permiten realizar muchas tareas
sin tener que implementarlas nosotros.
• Es un lenguaje interactivo, lo que nos permite realizar operaciones
mediante la línea de comandos, como instalar o eliminar las librerías que
deseemos o ejecutar sentencias de código, produciendo un resultado
visible.
• Python nos permite la creación de entornos virtuales, que es un ámbito de
trabajo aislado del sistema. Esto nos permite tener un entorno de trabajo
personalizado en nuestro proyecto, lo que nos permite instalar las librerías
o versiones de las mismas sin que afecte al entorno del sistema.
Por lo tanto, como se ha visto en el último punto, se ha creado un entorno virtual
para el proyecto, dónde se ha instalado Flask y todas las librerías necesarias para el
correcto funcionamiento del sistema. De esta manera al instalar el servidor
instalaríamos también este entorno virtual, favoreciendo la portabilidad de la
aplicación.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
55
Escuela Politécnica Superior de Jaén
Imagen 4.11. Lenguaje de programación Python
4.8.2. Flask
Flask es un microframework de Python, que nos permite crear aplicaciones web
de forma sencilla y muy rápida. Está basado en la especificación WSGI de Werkzeug
y el motor de templates Jinja2. Esto nos permite lanzar el servidor web de forma
sencilla, sin tener que instalar otras utilidades y tiene integradas opciones de
seguridad para cokies y prevención de ataques CSRF, mediante una clave
criptográfica que podemos definir para firmar los tokens.
Dado que no tenemos que realizar configuraciones complejas, y que se basa en
Python, que es el lenguaje que vamos a utilizar, es el candidato ideal para realizar una
aplicación ágil como esta.
Al igual que Python, Flask dispone de muchas extensiones que nos facilitan
muchas tareas. A continuación se listarán las extensiones utilizadas y su utilidad
dentro del sistema.
Imagen 4.12 Framework Flask
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
56
Escuela Politécnica Superior de Jaén
4.8.2.1. Flask-wtf
Esta extensión nos permite la creación de formularios de forma sencilla y segura
en Flask, como se explicó anteriormente. La clave para cifrar los tokens se toma del
parámetro de configuración “SECRET_KEY”.
Utilizando este módulo conseguimos encapsular cualquier módulo en clases. De
esta forma, cuando queramos crear un elemento para dicho formulario, sólo se debe
crear un objeto del tipo adecuado. La plantilla correspondiente utilizará este objeto
parar crear los formularios, así nos ahorramos escribir mucho código HTML y dejamos
el código mucho más legible.
4.8.2.2. SQLAlchemy
Dado que Flask no soporta el uso de bases de datos de forma nativa, es
necesario utilizar una extensión para poder integrar nuestra base de datos en la
aplicación.
SQLAlchemy es una extensión que nos permite integrar varios motores de bases
de datos de una forma muy sencilla como por ejemplo MySQL, PostgreeSQL o SQLite.
Esto para el desarrollo de nuestra aplicación, o de cualquiera de características
similares, es muy útil ya que podemos comenzar con una base de datos SQLite, que
no requiere de servidor, y cuando nos sea necesario migrarla a una MySQL.
4.8.2.3. Flask-Migrate
La función de esta extensión es mantener el modelo de base de datos robusto,
lo que nos permite realizar cambios sobre él a medida que la aplicación crezca. Esta
extensión es un wrapper para Alembic, que es un framework de migración de base
de datos para SQLAlchemy.
4.8.2.4. Flask-Bootstrap
Esta extensión nos permite integrar de forma muy sencilla Boostrap en nuestra
aplicación. De esta forma, lo único que debemos hacer es construir una plantilla base,
que herede de Bootstrap, sobre la que construiremos todos los elementos necesarios
utilizando este framework.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
57
Escuela Politécnica Superior de Jaén
Esta extensión también nos permite utilizar los elementos propios de formularios
provistos por Bootstrap y además, sin necesidad de hacer ningún cambio, se encarga
de que los formularios que creemos utilizando la extensión Flask-wtf tengan dichos
elementos incorporados.
4.8.2.5. Flask-Babel
Esta extensión es la que se ha utilizado para realizar la internacionalización de
la aplicación de forma sencilla. Su uso es muy sencillo, lo único que debemos hacer
es marcar de una forma determinada los textos que queremos traducir. Una vez
tenemos esto hecho, mediante un par de comandos se nos genera una carpeta con
los idiomas que le indiquemos.
En esta carpeta tendremos tantas subcarpetas como idiomas queramos que
soporte la aplicación, teniendo en su interior un fichero “messages.po”, donde
podremos encontrar el texto original sin traducir. Lo que tenemos que hacer es incluir
debajo de este texto su traducción en el idioma deseado.
Una vez tengamos todos los textos traducidos, compilaremos los textos
utilizando el comando correspondiente para que estén disponibles para usarlos en la
aplicación. De esta forma, cuando utilicemos el selector de idioma, todos los textos se
traducirán al idioma correspondiente.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
58
Escuela Politécnica Superior de Jaén
5. CONCLUSIONES Y TRABAJOS FUTUROS
A continuación se describirán las conclusiones que se han obtenido gracias al
desarrollo del proyecto, así como las posibles mejoras que se pueden plantear en el
futuro.
5.1. Conclusiones
La realización de este proyecto surge tras haber cursado la asignatura sistemas
de recuperación de información, en la que se estudia sus bases y funcionamientos y
en las prácticas se implementa un sistema básico.
Conforme avanzaba la asignatura me di cuenta de que este campo era algo que
me gustaba mucho, así que decidí orientar el TFG sobre este campo. Con la ayuda
de mis tutoras, poco a poco se fue perfilando la idea sobre la temática del proyecto,
hasta que terminó siendo lo que es hoy.
Una vez empecé a trabajar en el proyecto y a investigar un poco, me di cuenta
de que este campo era mucho más extenso de lo que yo me esperaba y de que aún
quedan muchas cosas por hacer y muchas más por refinar. Es por este motivo que es
relativamente fácil encontrar en el área del procesamiento del lenguaje natural que
muchas cosas están muy desarrolladas para el inglés, pero no tanto para otros
idiomas, como ha sido este caso con el español.
Después de terminar el desarrollo del proyecto, te das cuenta de que incluso le
podrías dar otra vuelta de tuerca, ya que por ejemplo este sistema con ciertas
adaptaciones se podría orientar para facilitar búsquedas para personas que sufran de
dislexia, o que tengan algún tipo de problema.
Además he aprendido mucho haciendo el proyecto. Cuando empecé no sabía
nada de Python ni Flask y he ido aprendiendo poco a poco, junto con el desarrollo del
propio proyecto.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
59
Escuela Politécnica Superior de Jaén
5.2. Trabajos futuros
Hasta hace relativamente muy poco, el tema de la legibilidad en español era algo
que no estaba demasiado pulido, ya que se tenían técnicas para calcular esta medida
heredadas del inglés que no estaban adaptadas a nuestro idioma. La herramienta
INFLESZ consiguió solventar esto y es gracias a ella que tenemos actualmente una
buena medida para nuestro idioma, aunque es posible que se pueda incluso mejorar
más.
La aplicación desarrollada se puede mejorar o ampliar de diversas formas, por
ello se proponen los siguientes trabajos futuros:
• La aplicación está pensada para trabajar con un sólo corpus y por lo tanto
no hay gestión de usuarios, ya que no es necesario. Se podría cambiar
este concepto e incluir gestión de usuarios, haciendo que cada usuario
pueda tener su propio corpus sobre el que hacer sus consultas. Esto a
nivel académico puede ser muy buena idea.
• Ampliar la función de legibilidad, pudiendo ser adaptada para personas
que sufran dislexia o niños que tengan determinadas necesidades
especiales.
• Añadir compatibilidad con más extensiones de documentos, permitiendo
al usuario subir un documento en practicamente cualquier extensión
conocida en la que pueda estar un libro o documento de texto.
• Permitir descargar cualquier documento del sistema en cualquiera de las
extensiones disponibles, haciendo la conversión pertinente.
• Añadir más etiquetas a los documentos. Además de su dificultad lectora,
se podrían añadir otra serie de etiquetas como por ejemplo vocabulario
técnico o etiquetas similares, para ayudar al usuario a visualizar qué se
puede encontrar, en cuanto a dificultad lectora se refiere, al leer dicho
libro.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
60
Escuela Politécnica Superior de Jaén
Bibliografía [1] Kane, Lorna & Carthy, Joe & Dunnion, John. (2006). Readability Applied to Information Retrieval. 523-526. 10.1007/11735106_56.
[2] Resolución de 6 de noviembre de 2017, de la Dirección General de Empleo, por la que se registra y publica el Convenio colectivo estatal de perfumería y afines. https://www.boe.es/boe/dias/2017/11/24/pdfs/BOE-A-2017-13632.pdf [3] "The Gunning's Fog Index (or FOG) Readability Formula". Readabilty Formulas. Retrieved 10 January 2014. [4] McClure G (1987). "Readability formulas: Useful or useless. (an interview with J. Peter Kincaid.)". IEEE Transactions on Professional Communications. 30: 12–15. [5] Senter, R. J., & Smith, E. A. (1967). Automated readability index. AMRL-TR-66-22. Wright Patterson AFB, Ohio: Aerospace Medical Division. [6] Fernández Huerta, José. Medidas sencillas de lecturabilidad. Consigna 1959; (214): 29-32. [7] Szigriszt Pazos F. Sistemas predictivos de legilibilidad del mensaje escrito: fórmula de perspicuidad [Tesis Doctoral] Madrid: Universidad Complutense de Madrid, 1993. [8] Barrio Cantalejo, Inés Mª (2007) Legibilidad y salud: los métodos de medición de la legibilidad y su aplicación al diseño de folletos educativos sobre salud [Tesis Doctoral] Universidad Autónoma de Madrid. 150-157. [9] Herramienta INFLESZ: https://legibilidad.blogspot.com.es/2015/01/el-programa-inflesz.html [10] G. Salton, A. Wong, and C. S. Yang (1975), "A Vector Space Model for Automatic Indexing," Communications of the ACM, vol. 18, nr. 11, pages 613–620. [11] Robertson, S. E. The probability ranking principle in IR. Journal of Documentation, 33(4):294-304, 1977. [12] Sparck Jones, K. Search term relevance weighting given little relevante information. Journal of Documentation, 35(1): 30-48, 1979. [13] Proyecto Gutemberg: http://www.gutenberg.org/ [14] Metodología ágil: https://www.recursosenprojectmanagement.com/metodologia-agil/ [15] Metodología ágil: http://www.scrummanager.net [16] Metodología KanBan: http://www.javiergarzas.com/2011/11/kanban.html
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
61
Escuela Politécnica Superior de Jaén
ANEXO A: MANUAL DE INSTALACIÓN
La aplicación está pensada para ser alojada en un servidor con un sistema
operativo tipo Unix. Por lo tanto, la aplicación y este manual de instalación están
pensados para trabajar en un entorno de estas características.
A.1. Instalación de Python
Lo primero que deberemos hacer es acceder a la página web de Python
(https://www.python.org/downloads/) y descargar la versión necesaria. Podremos
instalar cualquier versión de Python 3, pero se recomienda instalar la versión 3.6.4, ya
que es la que se ha utilizado en el proyecto y además, viene ya preparada con
utilidades como pip 3 o virtualenv ya instaladas.
A.2. Instalación y ejecución de la aplicación
Como se explicó el apartado 4.8.1, dado que se ha utilizado un entorno virtual
Python para la aplicación, no nos tendremos que preocupar de instalar Flask, sus
extensiones o alguna librería específica de Python.
De igual forma, como se explicó en el apartado 4.7.3.1, la B.B.D.D. está en forma
de un fichero local, por lo que tampoco necesitaremos hacer ninguna instalación
particular para su funcionamiento.
Por lo tanto, la aplicación que se ha entregado incorpora, además del código
para su funcionamiento, un entorno virtual Python, un fichero con la B.B.D.D. de la
aplicación y el corpus inicial.
En primer lugar, deberemos descomprimir el archivo de la aplicación
“Information-retrieval-based-on-readability” e incluir su contenido en una carpeta
llamada “my_project”. Por ultimo con la terminal de comandos ejecutaremos lo
siguiente:
$ cd directorioActual/my_project
$ source venv/bin/activate
$ export FLASK_APP=app/__init__.py
$ flask run
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
62
Escuela Politécnica Superior de Jaén
Una vez ejecutemos estos comandos, la aplicación estará disponible en la
dirección http://127.0.0.1:5000/
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
63
Escuela Politécnica Superior de Jaén
ANEXO B: MANUAL DE USUARIO
El objetivo de este anexo es la realización de un manual de uso de la aplicación
web que se ha diseñado, para que así el usuario no tenga ninguna duda con el
funcionamiento de la aplicación.
Si nos dirigimos a la dirección http://127.0.0.1:5000/ accederemos a la página
inicial de la aplicación.
Imagen B.1. Página principal de la aplicación
Como podemos ver en la imagen, nos encontramos con una lista de todos los
libros que hay registrados en la aplicación junto con las temáticas que tiene asociadas
cada libro. Si hacemos click en las columnas “#” o “Nombre”, la tabla se ordenará
según el orden de subida de los libros o su nombre respectivamente.
El título de los libros podrá aparecer en dos colores diferentes: verde si el libro
está indexado o rojo si no lo está. Si hay algún libro que no está añadido al índice,
aparecerá un botón al pie de la tabla que nos permitirá actualizar el índice, añadiendo
todos los libros que no están indexados al mismo.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
64
Escuela Politécnica Superior de Jaén
B.1. Modificar la temática de un libro
Si hacemos click en el título de algún libro, nos llevará a otra página en la que
podremos modificar las temáticas del libro. Aparecerá el título del libro igual que en la
pantalla anterior, junto con un desplegable en el que podremos seleccionar las
temáticas que queramos (al menos se debe seleccionar una). Al hacer click en el botón
“Actualizar”, se guardarán los cambios.
Imagen B.2. Modificación de temáticas
B.2. Añadir un libro a la colección
El usuario además puede ampliar el corpus existente, añadiendo nuevos libros
a la colección desde la pestaña “Subir archivos”.
Imagen B.3. Subida de libros a la aplicación
Como se puede ver en la imagen, el usuario podrá subir tantos libros como quiera
y verá los archivos que está subiendo en el cuadro correspondiente. Además, deberá
seleccionar las temáticas que llevan asociados los libros (al menos una temática). Una
vez que se envían los archivos, si no ha habido ningún error, el usuario verá una
pantalla como esta, donde podrá actualizar el índice con los libros que acaba de subir.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
65
Escuela Politécnica Superior de Jaén
Imagen B.4. Subida exitosa de libros a la aplicación
B.3. Realización de consultas
El usuario también podrá realizar consultas sobre los documentos que la
aplicación tiene indexados, para ello se dirigirá a la pestaña “Buscar”. Una vez este
en esta pantalla, se encontraá con un cuadro de búsqueda y un desplegable en el que
podrá seleccionar las temáticas que desee, si no selecciona ninguna, los libros
resultantes serán de cualquier temática.
Imagen B.5. Realización de consultas
Una vez el usuario lance la consulta, se mostrará una lista de los documentos
recuperados, junto con su marcador de legibilidad indicando su dificultad lectora.
Haciendo click en el botón “Ordenar por legibilidad”, el usuario podrá ordenar los
documentos recuperados según su legibilidad (de más fácil a más difícil).
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
66
Escuela Politécnica Superior de Jaén
Imagen B.6. Resultados de la consulta
B.4. Cambio de idioma en la aplicación
Por último, el usuario puede en cualquier momento cambiar el idioma de la
aplicación, haciendo uso del desplegable situado en la parte derecha de la barra de
navegación. Una vez se ha cambiado el idioma, la aplicación quedará totalmente
traducida a dicho idioma. A partir de ese momento, el corpus que se visualice en la
página principal será el correspondiente a dicho idioma y los documentos que se
suban se añadirán a dicho corpus.
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
67
Escuela Politécnica Superior de Jaén
Imagen B.7. Cambio de idioma en la aplicación
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
68
Escuela Politécnica Superior de Jaén
ANEXO C: ÍNDICE DE IMÁGENES
Imagen 1.1. Diagrama de Gantt ............................................................................................... 15
Imagen 3.1. Crecimiento mundial de los usuarios con acceso a internet ................................. 26
Imagen 3.2. Funcionamiento de los S.R.I. ............................................................................... 27
Imagen 4.1. Ciclos iterativos de la metodología ágil ............................................................... 34
Imagen 4.2. Metodologías ágiles.............................................................................................. 35
Imagen 4.3. Tablero KanBan ................................................................................................... 36
Imagen 4.4. Diseño conceptual de la BBDD ........................................................................... 48
Imagen 4.5. Diseño de la aplicación Flask ............................................................................... 49
Imagen 4.6. Subida de documentos a la aplicación.................................................................. 50
Imagen 4.7 Subida de documentos a la aplicación................................................................... 50
Imagen 4.8 Modificación de temáticas .................................................................................... 51
Imagen 4.9 Resultado al lanzar una consulta ........................................................................... 52
Imagen 4.10 Marcadores de legibilidad utilizados................................................................... 53
Imagen 4.11. Lenguaje de programación Python ..................................................................... 55
Imagen 4.12 Framework Flask ................................................................................................. 55
Imagen B.1. Página principal de la aplicación ......................................................................... 63
Imagen B.2. Modificación de temáticas ................................................................................... 64
Imagen B.3. Subida de libros a la aplicación ........................................................................... 64
Imagen B.4. Subida exitosa de libros a la aplicación ............................................................... 65
Imagen B.5. Realización de consultas ...................................................................................... 65
Imagen B.6. Resultados de la consulta ..................................................................................... 66
Imagen B.7. Cambio de idioma en la aplicación...................................................................... 67
Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos
69
Escuela Politécnica Superior de Jaén
ANEXO D: ÍNDICE DE TABLAS
Tabla 1.1. Planificación del proyecto ....................................................................................... 14
Tabla 1.2. Costes del proyecto ................................................................................................. 16
Tabla 2.1. Desglose de puntuaciones del índice Gunning Fog ................................................ 19
Tabla 2.2. Desglose de puntuaciones de la prueba de facilidad de lectura de Flesch .............. 20
Tabla 2.3. Desglose de puntuaciones del índice ARI ............................................................... 21
Tabla 2.4. Desglose de puntuaciones del estudio de legibilidad de Flesch-Szigriszt .............. 23
Tabla 2.5. Escala INFLESZ ..................................................................................................... 23
Tabla 2.6. Comparación entre las escalas INFLESZ, Szigriszt y Flesch ................................. 24
Tabla 4.1. Historias de usuario ................................................................................................. 37
Tabla 4.2. Corpus (español) ..................................................................................................... 42
Tabla 4.3. Corpus (inglés) ........................................................................................................ 45