SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA...

69
Escuela Politécnica Superior de Jaé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

Transcript of SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA...

Page 1: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 2: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de
Page 3: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 4: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos

4

Escuela Politécnica Superior de Jaén

Page 5: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 6: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 7: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 8: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos

8

Escuela Politécnica Superior de Jaén

Page 9: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 10: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

Juan Carlos Gil Morales S.R.I. basado en la legibilidad de los textos

10

Escuela Politécnica Superior de Jaén

Page 11: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 12: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 13: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 14: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 15: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 16: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 17: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 18: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 19: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 20: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 21: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 22: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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(

𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠

𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑓𝑟𝑎𝑠𝑒𝑠)

Page 23: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 24: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 25: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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]

Page 26: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 27: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 28: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 29: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 30: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 31: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 32: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 33: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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]

Page 34: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 35: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 36: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 37: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 38: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 39: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 40: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 41: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 42: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 43: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 44: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 45: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 46: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 47: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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).

Page 48: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 49: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 50: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 51: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 52: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 53: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 54: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 55: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 56: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 57: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 58: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 59: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 60: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 61: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 62: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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/

Page 63: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 64: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 65: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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).

Page 66: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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.

Page 67: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 68: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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

Page 69: SISTEMA DE RECUPERACIÓN DE INFORMACIÓN BASADO EN LA ...tauja.ujaen.es/bitstream/10953.1/8452/1/TFG_jcgm0012.pdf · recuperado, como un factor a considerar en la recuperación de

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