Ampliación de la parametrización morfológica de textos
Abstract
La ampliación consiste en modificar partes del funcionamiento interno del programa original para añadir nuevos datos y herramientas que proporcionen una mayor funcionalidad. Los nuevos datos han sido extraídos del DRAE, se ha añadido una herramienta de comparación y se ha cambiado una sección del código para funciones mediante un servicio entre otras modificaciones.
Full text
Autor: Jorge Bueno Godoy Tutor: D. Francisco Javier Carreras Riudavets Cotutor: D. Zenón Hernández Figueroa Titulación: Ingeniería Informática Fecha: 25/06/2014
Proyecto fin de carrera de la Facultad de Informática de la Universidad de Las Palmas de Gran Canaria presentado por el alumno: Jorge Bueno Godoy Título del proyecto: Ampliación de la parametrización morfológica de textos Tutor: D. Francisco Javier Carreras Riudavets Cotutor: D. Zenón Hernández Figueroa
A mi madre, hermana y Jessica.
Agradecimientos En primer lugar quiero dar mi agradecimiento a las dos personas que me han acompañado a lo largo de este proyecto. A mi madre, por darme la oportunidad que no pudo tener y poner a mi alcance todos los medios necesario para convertirme en la persona que soy hoy. A Jessica, por ser fuente de cariño y comprensión, especialmente durante la realización de este proyecto. Del mismo modo quiero agradecer a Paco, mi tutor, su gran trabajo e implicación, por atender mis dudas y concederme más tiempo del estrictamente necesario para resolverlas. Para finalizar quiero dar las gracias a mi hermana, familia, amigos, colegas, profesores y a todos aquellos que me han apoyado tanto a mí como a este proyecto.
Í NDÍC E 1. Introducción………………………………………………………………………………………………………… 1 1.1 Parametrización morfológica de textos…………………………………………………………. 1 1.2 Estado actual del tema………………………………………………………………………………….. 2 1.3 Estructuración de la memoria……………………………………………………………………….. 2 2. Objetivos……………………………………………………………………………………………………………… 3 3. Metodología………………………………………………………………………………………………………… 4 3.1 Ciclo de vida en espiral………………………………………………………………………………….. 4 4. Recursos necesarios…………………………………………………………………………………………….. 5 4.1 Hardware………………………………………………………………………………………………………. 5 4.2 Hardware virtual……………………………………………………………………………………………. 6 4.3 Software………………………………………………………………………………………………………… 6 5. Plan de trabajo y presupuesto……………………………………………………………………………… 7 5.1 Fases del proyecto…………………………………………………………………………………………. 7 5.2 Temporización del proyecto………………………………………………………………………….. 8 5.3 Presupuesto del proyecto……………………………………………………………………………… 9 6. Estudio del dominio del problema……………………………………………………………………….. 11 6.1 La estructura de un texto mediante valores…………………………………………………… 11 6.2 La importancia de usar un vocabulario adecuado………………………………………….. 12 6.3 Información incluida en el vocabulario………………………………………………………….. 12 6.4 Adquirir la información………………………………………………………………………………….. 13 6.5 La función de los n-gramas……………………………………………………………………………. 14 7. Herramientas auxiliares……………………………………………………………………………………….. 15 7.1 Limpiador WebRae…………………………………………………………………………………………. 15 7.2 Extractor ArchivoLimpioRae…………………………………………………………………………… 17 8. Análisis………………………………………………………………………………………………………………… 20 8.1 Requisitos del software…………………………………………………………………………………. 20 8.2 Formato de las tablas y gráficas…………………………………………………………………….. 21 8.3 Requerimientos funcionales………………………………………………………………………….. 22 8.3.1 Casos de uso……………………………………………………………....................... 22 8.3.1.1 Lista de casos de uso…………………………………………………….... 23 8.3.1.2 Diagramas de casos de uso……………………………………………… 24 8.4 Requerimientos no funcionales……………………………………………………………………… 45
9. Diseño…………………………………………………………………………………………………………………. 46 9.1 Arquitectura cliente-servidor…………………........................................................ 46 9.2 Diseño del sistema………………………………………………………………………………………… 46 9.2.1 Modificaciones y ampliaciones al subsistema PMT………………………… 47 9.2.1.1 Silabeador………………………………………………………………………. 47 9.2.1.2 Nueva información léxica……………………………………………….. 48 9.2.1.3 Nueva información n-gramas………………………………………….. 48 9.2.2 Modificaciones y ampliaciones al subsistema ParamText………………. 49 9.2.2.1 Nueva información léxica……………………………………………….. 49 9.2.2.2 Nueva información n-gramas………………………………………….. 50 9.2.2.3 Modificación de la interfaz en el modo original………………. 52 9.2.2.4 ParamTextComp……………………………………………………………… 53 10. Implementación…………………………………………………………………………………………………… 63 10.1 Clase silabear………………………………………………………………………………………………. 63 10.2 Nueva información n-gramas………………………………………………………………………. 64 10.3 Herramienta de comparación……………………………………………………………………… 65 10.4 Formato de las tablas………………………………………………………………………………….. 67 10.5 Combinación de tablas………………………………………………………………………………… 67 10.6 Combinación de gráficas……………………………………………………………………………… 69 11. Pruebas……………………………………………………………………………………………………………….. 72 11.1 Pruebas de recuperación…………………………………………………………………………….. 72 11.2 Pruebas de seguridad………………………………………………………………………………….. 72 11.3 Pruebas de resistencia…………………………………………………………………………………. 72 11.4 Pruebas de rendimiento………………………………………………………………………………. 73 12. Resultados…………………………………………………………………………………………………………… 74 12.1 Vocabulario…………………………………………………………………………………………………. 74 12.2 Comparar…………………………………………………………………………………………………….. 75 12.3 ParamTextComp………………………………………………………………………………………….. 76 13. Conclusiones………………………………………………………………………………………………………… 79 14. Trabajo futuro……………………………………………………………………………………………………… 80 15. Conclusión personal…………………………………………………………………………………………….. 81 16. Bibliografía…………………………………………………………………………………………………………… 82 16.1 Libros…………………………………………………………………………………………………………… 82 16.2 Páginas web………………………………………………………………………………………………… 82 17. Anexo…………………………………………………………………………………………………………………… 83 17.1 Manual de usuario………………………………………………………………………………………. 83 17.1.1 ¿Qué es ParamText TIP?.............................................................................. 83
4 3 Me tod ologí a La metodología para el desarrollo de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información. No estipular la metodología adecuada puede generar problemas a lo largo de la vida del software, sobre todo cuanto más largos y complejos sean. 3.1 Ciclo de vida en espiral La metodología elegida para la realización de este proyecto ha sido la misma que para su antecesor, el ciclo de vida en espiral. Su facilidad para incluir nuevas funcionalidades a lo largo del tiempo lo hace un candidato excelente para proyectos tan grandes y ambiciosos como lo el Paramtext. De esta forma es fácil llevar un control por etapas sobre el proyecto, lo que evita que errores iniciales puedan ser arrastrados hasta las etapas finales. En cada iteración del ciclo se dan las siguientes fases del software: 1 Determinar los objetivos: Al hacerse en cada iteración permite definir los objetivos en función del software que ya se ha generado, con lo que no es necesario abordar aquellos que son independientes o que pudieran ser más fácilmente establecidos con posterioridad en base al estado del programa. 2 Análisis del riesgo: Se lleva a cabo un análisis para cada uno de los riesgos identificados del proyecto y se definen los pasos a seguir para reducirlos. Su mayor peligro es no ver más allá de la iteración actual cuando esta pueda estar relacionada con otras anteriores o posteriores. 3 Desarrollar y probar: Se desarrolla el software y se valida. 4 Planificación: Se revisa el estado actual del proyecto, permitiendo avanzar si se determina que funciona como debería o volver a una iteración anterior. Hacer esto en cada iteración es una gran ventaja que nos permite no continuar trabajando sobre algo que no es válido, y que de no haberse estudiado en este momento podría invalidar mucho trabajo posterior que se base en él. Figura 3.1 Metodología
5 4 Re cursos nece sarios En este capítulo se detallan los recursos hardware y software que han sido utilizados para llevar a cabo la realización del proyecto. 4.1 Hardware Puesto que para la realización de este tipo de proyecto no es necesario utilizar un hardware específico, el alumno ha hecho uso únicamente de los recursos propios con los que contaba. Cabe destacar la necesidad de conexión a internet para hacer uso de los servicios en línea necesarios para el correcto funcionamiento de Paramtext. Ordenador personal Intel i7 2600 8 GB RAM 1 TB de disco duro Conexión a internet 30 Mb Memoria USB 32 GB Recursos necesarios
6 4.2 Hardware Virtual Para compartir el proyecto se optó por usar un servicio de almacenamiento virtual, con lo que no era necesario el envío directo de información mediante correo electrónico ni Pendrivers. Dropbox +800 MB para las distintas versiones de Paramtext y aplicaciones auxiliares. ~300 MB para los archivos de la RAE 4.3 Software Dado que el proyecto de ampliación pretendía respetar el diseño y la tecnología usada en el proyecto original no se han utilizado herramientas ni tecnologías adicionales. RECURSO PRECIO XHTML Gratuito XML Gratuito CSS Gratuito Java Script Gratuito AJAX Gratuito UML Gratuito Microsoft.NET Gratuito C# Gratuito Microsoft Visual Studio 2010 Gratuito – Licencia MSDN AA ASP.NET AJAX Control Toolkit Gratuito Microsoft Chart Control Gratuito Bytescout Document SDK Gratuito PDFBox Gratuito Star UML Gratuito Puede encontrarse una descripción detallada de ellas en la memoria original de Paramtext (Pág. 8 de la memoria/Pág. 20 del documento PDF; Apartados 4 y 5) Tabla 4.1 Recursos necesarios
7 5 Plan de trabajo y presup uesto En este capítulo se detallan las distintas etapas en las que se dividió el proyecto y una estimación del tiempo necesario para llevarlo a cabo. 5.1 Fases del proyecto Se decidió organizar el proyecto en 5 fases. Hay que recordar que el ciclo de vida en espiral genera múltiples iteraciones, por lo que dichas fases se dieron lugar tantas veces como iteraciones fueron necesarias en la ejecución del proyecto: 1. Documentación: Estudio de la estructura y funcionamiento de Paramtext para poder realizar la ampliación respetando el estilo y código original en la medida de lo posible. Además se incluye el tiempo requerido para la elaboración del actual documento. 2. Análisis: Se estudiaron los requerimientos funcionales y no funcionales del sistema para entender con exactitud la naturaleza de los programas necesarios para realizar la ampliación mientras se tiene en cuenta la información obtenida en la fase de Documentación 3. Diseño: En esta fase se determinó la estructura que debían seguir las modificaciones para evitar entrar en conflicto con la versión original, respetando su código e integrándose de forma amigable. 4. Desarrollo: Implementación de las ampliaciones dentro del entorno Paramtext mediante la utilización de las mismas herramientas originales. 5. Pruebas: Selección y realización de pruebas para garantizar que la integración de las modificaciones y ampliaciones no dio lugar a conflictos. Plan de trabajo y presupuesto
8 5.2 Temporización del proyecto A continuación se muestra la estimación del tiempo necesario para realizar cada una de las fases. FASE HORAS Documentación 160 Análisis 225 Diseño 125 Desarrollo 550 Pruebas 125 Total 1185 Tabla 5.1: Temporización del proyecto Plan de trabajo y presupuesto
9 5.3 Presupuesto del proyecto En este apartado se elabora el presupuesto para la realización del proyecto: Costes laborales: Suponiendo que se trabaja para una empresa y que el alumno cobra 9€ la hora y el tutor (personal con más experiencia) 18€ la hora, los costes laborales son: Alumno: 9€/hora x 550 horas (implementación) = 4950€ Tutor: 18€hora x 50 horas = 900 horas Costes materiales: En cuanto a los costes materiales hay que considerar su vida útil y que no sólo se utilizan para realizar el proyecto. Considerando que el material será utilizado un 50% del tiempo en cuanto al hardware, un 10% de la capacidad de internet para el proyecto y el resto del tiempo y capacidad para otras actividades, y que la duración del proyecto se establece en 8 meses. El coste de los materiales necesario será: Coste del ordenador: (800€ x 0,5 uso x 8 meses) / 48 meses = 62,5€ Cable 30 MB: 45€ x 0,1 uso x 8 meses = 36€ Costes de material fungible: Son los gastos generados por el uso diario del material (papel, tinta, etc.): 60€ Coste de documentación: Son los gastos necesarios para la documentación: 50€ Costes indirectos: Son los costes de las cosas que no están vinculadas directamente al PFC, pero que son necesarias para que el PFC se desarrolle. Se considera que el 8% del resto de gastos corresponde a gastos indirectos. Plan de trabajo y presupuesto
10 CONCEPTO COSTE Coste laborales 5850 Costes materiales 98,5 Material fungible 60 Documentación 50 Subtotal 6058 Costes indirectos (7%) 424,1 Total 6482,1 Tabla 5.2: Presupuesto del proyecto. Plan de trabajo y presupuesto
11 6 Estudio del dominio del problema Este proyecto nace de la necesidad de mejorar la funcionalidad de Paramtext y de dar sentido a unos valores numéricos asociados a las obras de los usuarios que inicialmente pueden ser difíciles de interpretar. Para tal empresa se ha optado, por un lado, en ofrecer la capacidad de comparar los resultados obtenidos con aquellos que provienen de obras de renombre, de esta forma el usuario podrá saber en qué medida se acercan o alejan sus valores de aquellos que se obtienen en obras de calidad reconocida. Por otro lado se ha añadido información adicional acerca del vocabulario, lo que facilita el valorar la “calidad” de las palabras usadas en el texto y no sólo su estructura. 6.1 La estructura de un texto mediante valores ¿Qué representa un treinta en el número de párrafos en un texto de mil palabras más allá de que hay mil palabras distribuidas a lo largo de treinta párrafos? ¿Es mucho o poco? ¿Significa lo mismo en un texto de poesía que en otro escrito en prosa? ¿En una novela de acción que en una de romance? La interpretación de valores numéricos cuando se habla de textos no es sencilla y una buena forma de entenderlos es viendo cuales son los que obtiene otra obra en comparación. Por ejemplo, las novelas de acción suelen usar una gran cantidad de frases cortas y sencillas para transmitir al lector la sensación de dinamismo y estrés a la que están sometidos los personajes en las escenas críticas, pero el uso excesivo de dicha técnica es contraproducente pues las frases cortas y simples le quitan riqueza al lenguaje y a la estructura del texto, hasta hacerlo parecer el texto de un niño que no sabe elaborar frases más complejas. Si permitimos al usuario comparar su texto de acción con el de otro que haya sido un referente en el género estaremos ayudándole a decidir hasta qué punto quiere acercarse o no a ese estilo de escritura ¿Quiere estar dentro de la norma y usar un número similar de frases cortas y de longitud parecida o por el contrario prefiere innovar en el género y hacer todo lo contrario? No será Paramtext quien le diga lo que tiene que hacer sino quien le informe de lo que está haciendo, por si eso es lo que pretendía o no. Dicha comparación es en sí misma complicada, debido al gran número de variables que entran en juego, desde el tamaño de los párrafos y las frases hasta el número de las segundas dentro de los primeros y la cantidad de los primeros en el total de la obra, etcétera, o mejor dicho, un larguísimo etc. Para facilitarlo, Paramtext se reorganiza y muestra los valores de ambas obras en las mismas tablas y gráficas delimitándolas con claridad, de forma que sea mucho más sencillo entender los datos que nos ofrece. Estudio del dominio del problema
12 6.2 La importancia de usar un vocabulario adecuado Ya hemos hablado de la importancia de la estructura dentro de un texto, pero hay otros factores que pueden acabar con una buena obra antes de poder sumergirse en ella, el vocabulario. No hay que ser un genio para saber que un libro infantil debería usar palabras sencillas mientras que otro de intrigas políticas en la edad media podría hacer uso de palabras en desuso actualmente y una sintaxis más complicada. Paramtext ha incluido una gran cantidad de información adicional en lo que se refiere al vocabulario, entre las que se encuentran si una palabra aparece en la RAE, está en desuso actualmente o el número de significados distintos que tiene. De esta manera el escritor puede hacerse una idea del tipo de vocabulario que está usando y determinar si ese es el camino que quiere seguir. Para llevar a cabo esta tarea fue necesario extraer una gran cantidad de información del diccionario de la RAE, que contiene alrededor de cien mil palabras. No menos importante es tener conocimiento de la forma en la que construimos las frases y no sólo de las palabras individuales que usamos en ellas. Repetir constantemente cosas como “Por lo tanto” o el uso de “coletillas” es un problema común y para ayudar a solucionarlo se ha incluido una nueva tabla de n-gramas, en donde se pueden consultar todos los existentes con tamaños comprendidos entre dos y cinco, indica cuantas veces se ha repetido, donde pareció por primera vez y el centro de gravedad, que nos ayuda a determinar en qué zona ha sido más utilizada. Además de localizar aquellas “coletillas” propias, usado en el modo comparación podemos determinar en cuanto se parecen nuestras formas a las de otro autor. 6.3 Información incluida en el vocabulario Los datos seleccionados para ser añadidos fueron los siguientes: Categoría gramatical: Clasificación de las palabras según su naturaleza morfológica, por ejemplo, sustantivo, pronombre, verbo, etc. Etimologías: Determina el número de fuentes de las que proviene la palabra. Acepciones: Indica el número de significados distintos que tiene una misma palabra Estudio del dominio del problema
13 Posición de la acepción: Muestra la posición de la categoría gramatical de la palabra dentro del conjunto de significados distintos que se muestran en la RAE. Si una palabra tiene 5 significados distintos donde funciona como pronombre en los tres primeros (1, 2 y 3) y determinante en los dos últimos (4 y 5) se mostrará un uno si la palabra actúa como pronombre y un 4 si lo hace como determinante. Entradas de la acepción: Contabiliza el número de entradas distintas que tiene la categoría gramatical que ha sido asignada a esa palabra, de forma que en el ejemplo anterior, indicaría un tres si fuera un pronombre porque hay tres significados distintos en los que la palabra funciona como pronombre y un dos si fuera un determinante (porque nos encontramos con dos significados distintos cuando hace de determinante). Antigua: Muestra si la palabra está en desuso según la decimotercera edición de la RAE Aparece en la RAE: Como su propio nombre indica nos informa sobre si es una palabra reconocida por la RAE o si por el contrario no pertenece realmente al castellano. Dado que estas herramientas muestran factores tales como si se usan demasiadas palabras no reconocidas por la RAE, si están en desuso o si se usan los significados de las palabras menos utilizados en lugar de los que parecen en los primeros lugares del diccionario; en su conjunto pueden ayudar a determinar si el vocabulario utilizado era el que se pretendía o si está realmente orientado al público al que va dirigido el texto en cuestión. 6.4 Adquirir la información Para poder añadir la nueva información era necesario extraerla del lugar más fiable, por tanto se usó la página web oficial de la RAE y para hacerlo fueron necesarias tres herramientas independientes. La primera de ellas realizaba peticiones automatizadas de información y era externa a este proyecto mientras que las otras dos son explicadas en detalle en el siguiente capítulo de esta memoria. Estudio del dominio del problema
20 8 Ana lisis La primera fase de todo proyecto es la de su análisis, siendo la base sobre la que se sustentará el resto del mismo. De nada vale un perfecto diseño y una programación impecable si no se satisfacen las necesidades de los usuarios y es por eso que existen los requisitos del software, que son todos aquellos requerimientos que el usuario impone a un software para que se justifique su uso. Por supuesto no sólo habrá que tener en cuenta los requisitos funcionales (que el programa haga lo que se pide) sino también aquellos no funcionales (que el programa lo haga de la forma adecuada, en forma y seguridad por ejemplo). Ha sido parte importante a lo largo de todo el proyecto la idea de mantener un código homogéneo dentro de lo posible, evitando que posibles modificaciones posteriores necesitaran realizar ingeniería inversa sobre Paramtext y su ampliación por separado. Cabe destacar que el código original estaba muy bien comentado y su gran modularidad ha sido de ayuda a la hora de incluir nuevas funcionalidades. Aun y así es imposible adaptar la totalidad del proyecto a los patrones seguidos en su concepción inicial y algunas estructuras y módulos han necesitado ser ampliados, modificados o incluso eliminados y vueltos a hacer. 8.1 Requisitos del software A groso modo lo que se pretende ofrecer al cliente es la posibilidad de comparar su texto con otro que tenga una calidad reconocida, de forma que los valores que antes mostraba Paramtext cobren sentido más allá de un simple número. Dicha comparación debe ser fácil y rápida de realizar, o sería igual de productivo abrir el programa en dos navegadores distintos y poner uno al lado de otro, por tanto, este proyecto no consistía en hacer “copiar y pegar” al lado de la tabla o gráfica existente sino que proporciona una combinación y reestructuración de datos tanto a nivel externo como interno. Adicionalmente el cliente quiere incluir información adicional al vocabulario, una parte de ella proveniente de la RAE y otra, los n-gramas, extraídos del propio texto mediante un nuevo algoritmo. Además se pretende utilizar el servicio silabeador del grupo TIP 1 en lugar del código incrustado del que hacía uso, de este modo cualquier mejora en el servicio se reflejaría en el Paramtext sin necesidad de tener que modificar el programa. 1 Text & Information Processing (TIP), grupo formado por profesores del Departamento de Informática y Sistemas de la Universidad de Las Palmas de Gran Canaria dedicados a la investigación y desarrollo de herramientas y aplicaciones en áreas de la lingüística computacional, lexicografía, procesamiento del lenguaje natural, indización, almacenamiento de información y conocimiento y educación tecnológica. (http://tip.dis.ulpgc.es/) Análisis
21 Con vistas a posibles ampliaciones futuras, la información adicional proveniente de la RAE se estructurará de forma que pueda usarse para presentar información de carácter subjetivo basada en ella. Para realizar la tarea de extracción de información fue necesaria la utilización de tres herramientas adicionales, dos de ellas explicadas en el capítulo anterior y que fueron creadas también como parte del proyecto. Entrando en las funciones de comparación, se prestará especial interés en permitir que los administradores del programa sean capaces de ampliar el abanico de texto ofrecidos para comparar sin necesidad de tocar ni una sola línea de código. Mediante el uso de archivos XML y TXT externos al programa es posible añadir, modificar, eliminar obras, colecciones y la información que se muestra de las mismas. Esto permitirá además, que dichas modificaciones se den sin necesidad de detener el programa en ningún momento y se producirán en tiempo real, de esta forma no será necesario dejar de ofrecer el servicio ni tener que reiniciarlo para que los usuarios puedan ver los cambios. Así mismo se requiere que el programa permita hacer la comparación desde su propio apartado, pero también que exista la opción de deshacer y rehacer las comparaciones a voluntad y desde cualquier punto de su interfaz, de forma que pueda alternar de un modo a otro sin pérdida de tiempo y con total comodidad. Todas las tablas y gráficas de Paramtext deberán ser modificadas en mayor o menor medida, desde la inclusión de simples columnas de totales hasta la combinación de datos parciales. 8.2 Formato de las tablas y gráficas Será necesario crear varios tipos de tablas combinadas dado que no todas requieren ser cambiadas de la misma manera. Algunas necesitarán incluir nueva información sin alterar el número de entradas (filas) mientras que otras aumentarán el número de filas y/o columnas. Por un lado las gráficas deberán incluir la información de ambas obras pero por el otro deben seguir siendo fáciles de consultar por lo que no es una opción incluir gráficas con datos provenientes de demasiadas fuentes a la vez. Al existir ya gráficas con dos fuentes de datos (con palabras vacías y sin palabras vacías) deberían ampliarse hasta permitir cuatro pero eso la complicaría demasiado. Por eso se ha optado por incluir algún sistema que permita pasar de una gráfica (con palabras vacías) a otra (sin palabras vacías) donde en cada una de ellas se comparen ambas obras. El paso de una a otra deberá ser rápido y fluido. Análisis
22 8.3 Requerimientos funcionales – casos de uso 8.3.1 Casos de uso Un caso de uso es una secuencia de interacciones que se desarrollarán entre un sistema y sus actores en respuesta a un evento que inicia un actor principal sobre el propio sistema. Se describen así las formas en las que el sistema puede ser utilizado sin necesidad de diseño o implementación, permitiendo detectar requerimientos funcionales en etapas tempranas del desarrollo. Debe tenerse en cuenta que al ser una ampliación de un sistema ya definido y en funcionamiento tan sólo serán explicados aquellos que sean de nueva incorporación, los que hayan sido modificados o aquellos necesarios para el entendimiento de los anteriormente mencionados. Los distintos pasos a seguir han sido: Identificación de los actores: se determinan los actores del sistema, tanto los humanos como los que no, que interactúan con el sistema. Establecimiento de objetivos por actor: se indican los objetivos que cada actor espera del sistema Relación de casos de uso: listado general de los casos de uso para cada actor Representación de casos de uso: muestra los distintos diagramas de casos de uso Descripción de casos de uso: descripción individual de los casos de uso que se han identificado Actores Al igual que en el programa original, Paramtext sigue tratando de igual manera a todos los actores externos de la aplicación, por lo que seguirá habiendo sólo uno; usuario. Sin embargo presenta herramientas nuevas para los administradores de la misma con lo que surge un nuevo actor secundario: administrador. Objetivos de los actores El objetivo del actor usuario consistirá en obtener información adicional del vocabulario y poder realizar comparaciones entre su texto y otros almacenados en nuestro servidor de forma rápida y sencilla. Análisis
23 8.3.1.1 Lista de casos de uso Además de los casos de uso del programa original, que pueden consultarse en su memoria (página 66 del pdf; página 54 del documento) el listado es como sigue. Actor principal Caso de uso Nº CU Usuario Seleccionar colección CU 18 Seleccionar autor CU 19 Seleccionar obra CU 20 Iniciar comparación CU 21 Ver información de la obra CU22 Deshacer comparación CU 23 Rehacer comparación CU 24 Ver gráfica CU 10* Gráfica sin palabras vacías CU 25 Gráfica con palabras vacías CU 26 Administrador Añadir colección CU 27 Modificar colección CU 28 Eliminar colección CU 29 Añadir autor CU 30 Modificar autor CU 31 Eliminar autor CU 32 Añadir información de obra CU 33 Modificar información de obra CU 34 Eliminar información de obra CU 35 Tabla 8.5 Análisis
24 8.3.1.2 Diagramas de casos de uso: Los casos de uso “Paramtext 1.0” representan aquellos que ya existían con anterioridad, salvo “ver gráfica” que ha tenido que ser incluido para enlazar con un nuevo caso de uso. * No pertenecen a la ampliación de Paramtext. Figura 8.1 Análisis
25 Figura 8.2 Análisis
26 Seleccionar colección CU18 Permite al usuario elegir entre las distintas colecciones que haya disponible en el archivo enlazado Precondiciones Estado: Archivo parametrizado Estado: Situado en la página de comparación Parámetros Lista de colecciones Flujo de ejecución 1. Hacer clic en una de las colecciones que se muestran Excepciones Postcondiciones Estado: Se muestran los distintos autores disponibles para la colección que se haya seleccionado Estado: Se eliminan los anteriores autores del desplegable y se ocultan las obras e información de obra si se habían seleccionado con anterioridad Análisis
27 Seleccionar autor CU19 Permite al usuario elegir entre los distintos autores que tengan alguna de sus obras dentro de la colección seleccionada o mostrar todas las obras disponibles independientemente de los autores Precondiciones Estado: Archivo parametrizado Estado: Situado en la página de comparación Estado: Seleccionada una colección Parámetros La colección seleccionada Flujo de ejecución 1. Hacer clic en uno de los autores que se muestran o en la opción especial que los muestra todos Excepciones Postcondiciones Estado: Se muestran las distintas obras disponibles según el autor o todas si se ha seleccionado “todos” (si se ha seleccionado “todos” aparecerá el nombre del autor entre paréntesis junto al nombre de la obra). Estado: Se ocultan las anteriores obras e información de obra que se hubieran seleccionado con anterioridad Análisis
28 Seleccionar obra CU20 Permite al usuario elegir entre las distintas obras que cumplen los filtros de colecciones y autores disponibles Precondiciones Estado: Archivo parametrizado Estado: Situado en la página de comparación Estado: Seleccionada una colección Estado: Seleccionado un autor o “todos” Parámetros El autor seleccionado o la opción “todos” Flujo de ejecución 1. Hacer clic en una de las obras que se muestran Excepciones Postcondiciones Estado: Se muestra la información de la obra seleccionada y el botón “Comparar” que permite iniciar la comparación Estado: Se oculta la información de la obra que hubiera sido seleccionada con anterioridad Análisis
29 Iniciar comparación CU21 Permite al usuario realizar la comparación entre su texto y el texto que ha seleccionado de entre los que ofrece la herramienta Precondiciones Estado: Archivo parametrizado Estado: Situado en la página de comparación Estado: Seleccionada una colección Estado: Seleccionado un autor o “todos” Estado: Seleccionada una obra Parámetros La obra seleccionada Flujo de ejecución 1. Hacer clic en el botón “comparar” Excepciones Postcondiciones Estado: Entra en el modo comparación, se muestra la página “Métrica – Informe” del modo comparación. Análisis
36 Añadir colección CU27 Permite al administrador incluir una nueva colección entre las que el usuario pueda elegir en la página de iniciar comparación Precondiciones Parámetros Flujo de ejecución 1. Escribir la nueva colección y XML asociado en el archivo de texto lista_colecciones.txt Excepciones Postcondiciones Estado: Se muestra una nueva colección al usuario en la página de iniciar comparación que incluye sus propias obras Nota No es necesario detener el programa para que tenga efecto la actualización, basta con recargar la página. Análisis
37 Modificar colección CU28 Permite al administrador modificar el nombre o el archivo XML asociado a las colecciones que se muestran al usuario Precondiciones Colección creada Parámetros Flujo de ejecución 1. Escribir la nueva colección y XML asociado en el archivo de texto lista_colecciones.txt Excepciones Postcondiciones Estado: Se actualiza la información de la colección modificada Nota No es necesario detener el programa para que tenga efecto la actualización, basta con recargar la página. Análisis
38 Eliminar colección CU29 Permite al administrador eliminar una de las colecciones que se muestran al usuario en la página de iniciar comparación Precondiciones Colección creada Parámetros Flujo de ejecución 1. Borrar la colección y el XML asociado que se encuentra en el archivo de texto lista_colecciones.txt Excepciones Postcondiciones Estado: Deja de mostrarse al usuario la colección eliminada Nota No es necesario detener el programa para que tenga efecto la actualización, basta con recargar la página. Análisis
39 Añadir autor CU30 Permite al administrador añadir nuevos autores Precondiciones Parámetros Flujo de ejecución 1. Crear carpeta con el nombre del autor normalizado dentro de la carpeta de estadísticas 2. Incluir en el archivo XML de la colección alguna obra del autor Excepciones Postcondiciones Estado: Aparece un nuevo autor al seleccionar las colecciones que incluyan alguna de sus obras Nota No es necesario detener el programa para que tenga efecto la actualización, basta con volver a seleccionar la colección o recargar la página. Análisis
40 Modificar autor CU31 Permite al administrador modificar un autor existente Precondiciones Autor creado Parámetros Flujo de ejecución 1. Modificar el nombre de la carpeta 2. Modificar el nombre del autor en los archivos XML donde aparezca Excepciones Postcondiciones Estado: Modifica el autor Nota No es necesario detener el programa para que tenga efecto la actualización, basta con volver a seleccionar la colección o recargar la página. Análisis
41 Eliminar autor CU32 Permite al administrador eliminar un autor existente de una colección o eliminarlo por completo de la lista de autores Precondiciones Autor creado Parámetros Flujo de ejecución 1. Eliminar las obras del autor del XML asociado a una o varias colecciones 2. (Opcional: para su completa eliminación) Eliminar la carpeta del autor con las estadísticas de sus obras Excepciones Postcondiciones Estado: Elimina el autor de una colección o completamente Nota No es necesario detener el programa para que tenga efecto la actualización, basta con volver a seleccionar la colección o recargar la página. Análisis
42 Añadir obra CU33 Permite al administrador añadir nuevas obras Precondiciones Estado: Debe existir una carpeta de autor Parámetros Nombre de la carpeta de autor Flujo de ejecución 1. Crear archivo de estadísticas usando Paramtext 2. Copiar carpeta de estadísticas dentro de la carpeta del autor con el nombre de la obra normalizada 3. Incluir información de la obra en los archivos XML de las colecciones Excepciones Postcondiciones Estado: Aparece la obra indicada en la/s colecciones donde se haya incluido Nota No es necesario detener el programa para que tenga efecto la actualización, basta con volver a seleccionar el autor o recargar la página. Análisis
43 Modificar información de la obra CU34 Permite al administrador modificar la información de las obras existentes de forma independiente Precondiciones Obra creada Parámetros Flujo de ejecución 1. Modificar información de la obra en los archivos XML de las colecciones Excepciones Postcondiciones Estado: Cambia la información de la obra Nota No es necesario detener el programa para que tenga efecto la actualización, basta con volver a seleccionar la obra o recargar la página. Análisis
44 Eliminar obra CU35 Permite al administrador eliminar una obra existente de una colección o eliminarla completamente del sistema Precondiciones Obra creada Parámetros Flujo de ejecución 1. Elimina la información de la obra en el archivo XML de la colección 2. (Opcional: para su completa eliminación) Eliminar la carpeta de estadísticas de la obra Excepciones Postcondiciones Estado: Elimina la obra de una colección o completamente Nota No es necesario detener el programa para que tenga efecto la actualización, basta con volver a seleccionar la obra o recargar la página. Análisis
45 8.4 Requerimientos no funcionales A continuación se listan y detallan los requerimientos no funcionales que debe cumplir el sistema y que permiten comprender las propiedades del software a desarrollar. Además de los requerimientos no funcionales incluidos en el programa original que se pueden ver en su propia memoria (página 87 del PDF; página 75 del documento) se han incluido los siguientes: Facilidad de ampliación El nuevo software debe permitir que se incluyan, modifiquen y eliminen nuevas obras, colecciones y autores sin necesidad de entrar en el código del programa. Homogeneidad El programa debe ampliarse manteniendo en la medida de lo posible la estructura y el metodología utilizada para evitar generar un código totalmente independiente que no tenga nada que ver con las bases sentadas en el original Continuidad Deben poder realizarse las ampliaciones y modificaciones en las colecciones y las obras sin necesidad de detener la herramienta, de forma que los usuarios puedan seguir disfrutando de ella mientras se producen. Análisis
52 9.2.2.3 Modificación de la interfaz en el modo original (no el de comparación) Aunque la mayor parte de la interfaz quedará tal y como está se han realizado algunos cambios menores. 1. Se añadirán nuevos estilos en el formato de las tablas para mejorar la visualización de los mismo 2. Se incluirá una nueva línea de información tras retornar del modo comparación que permitirá volver a él con un simple clic 1) Algunas tablas muestran la información de las filas a dos niveles porque alguno de los campos es demasiado pequeño para la cantidad de información que sostienen mientras que otros tienen espacio de sobra. Otras tienen algunas columnas demasiado juntas entre ellas mientras que las demás están demasiado separadas. Se añadirán estilos para ajustar las tablas según sea necesario. 2) Para permitir un rápido traspaso del modo original al modo comparación en Paramtext se optará por incluir una línea de información nueva que incluya información sobre la última obra comparada y un icono sobre el que hacer clic que permitirá volver a la última comparación que se haya realizado. Figura 9.7: Tabla con filas a dos niveles Figura 9.8: Tabla con el nuevo estilo para evitar los dos niveles Figura 9.9: Nueva línea de información y enlace de retorno al modo de comparación Diseño
53 9.2.2.4 ParamTextComp Este nuevo modo de consulta requiere la modificación de todas las gráficas y tablas del sistema para que presente la información del usuario y de la obra seleccionada para comparar simultáneamente. Se necesita un nuevo apartado en donde el usuario pueda elegir entre las obras existentes, que estarán divididas en colecciones y estas a su vez por autores (aunque el usuario siempre podrá elegir ver todas las obras a la misma vez independientemente de los autores). Este sistema deberá permitir al administrador realizar modificaciones sin necesidad de entrar en el código del programa. Por último el usuario deberá poder consultar la información de la obra en todo momento sin necesidad de cambiar de apartado y por supuesto deshacer la comparación en cualquier instante con un simple clic. Formatos de las nuevas tablas y gráficas: La cantidad y variedad en los formatos y naturaleza tanto de las tablas como de las gráficas utilizadas por Paramtext ha dado lugar a varios acercamientos distintos a la hora de modificar las tablas para realizar las comparaciones. A continuación se muestran los distintos tipos de ampliaciones y combinaciones así como ejemplo simplificados de muestra. 1. Añadir columnas totales: este tipo de tabla será la más sencilla porque sólo habrá que añadir una nueva columna de totales y rellenarla con los datos de la obra que el usuario quiera comparar. 2. Añadir columnas intercaladas de datos y porcentajes: Al encontrarse intercaladas y no tener todas las tablas el mismo tamaño ni provenir los datos de un mismo origen no puede generarse un algoritmo genérico. Por tanto debe hacerse la inclusión de cada columna y fila una a una. 3. Combinar datos en base a uno de ellos: al ser distintas gráficas y parámetros los que se deben tener en cuenta para realizar la combinación y ser variable el tamaño de las tablas y por la alta variedad de casos y la posibilidad de encontrarnos valores en una obra que no están en la otra que deben combinarse, este será el formato más complicado. En el ejemplo se puede ver una tabla combinada según el número de caracteres de las palabras de las distintas obras, nótese que en una no hay palabras de nueve y trece caracteres mientras que en la otra no las hay de diez. Diseño
54 4. Combinación de datos y metadatos: El cuarto formato de tabla se utiliza para dar información acerca de los datos que se muestran y no para comparar los datos entre sí. En el ejemplo, las formas canónicas tienen los mismos valores tanto si pertenecen a una obra como a la otra, por lo que duplicar la información no tiene sentido, en su lugar se incluye una nueva columna que indica en qué obra se encuentra dicha forma o si está en ambas. Las gráficas son un elemento importante a la hora de interpretar datos si necesidad de saber los valores exactos, mediante un sistema de “tamaños” se determina fácil e intuitivamente aquello que sobresale o se queda corto. Sin embargo son un arma de doble filo pues en el momento en el que la cantidad datos procedentes de distintas fuentes va aumentado la facilidad para interpretar lo que se muestra disminuye radicalmente hasta el punto de no verse más que un conglomerado de barras y líneas que no dicen nada. Es por eso que las gráficas serán modificadas de una forma u otra dependiendo de la cantidad de fuentes distintas que originalmente le aportaban valores. Dos han sido los tipos de modificaciones que han sufrido dependiendo de si originalmente disponían de una entrada de datos o si procedían de dos fuentes distintas: 1. De una a dos: si la gráfica tenía un único tipo de valor, este se mostrará junto con el de la obra con el que se quiere comparar. Su visualización conjunta ayuda a establecer la diferencia cuantitativa de un simple vistazo sin que la consulta de la misma se complique. 2. De dos a cuatro: si la gráfica tenía ya una comparación anterior, como la que se produce al comparar los valores cuando se tienen en cuenta las palabras vacías y cuando no, entonces deberán generarse dos gráficas distintas que puedan intercambiarse al marcar la casilla correspondiente. Una de las gráficas mostraría la comparación entre ambas obras cuando se tienen en cuenta las palabras vacías y la otra cuando no. El listado detallado de cambios requeridos en tablas y gráficas es el siguiente: Métrica: informe Totales con palabras vacías: añadir columna de totales Totales sin palabras vacías: añadir columna de totales Promedios con palabras vacías: añadir columnas intercaladas de datos y porcentajes Promedios sin palabras vacías: añadir columnas intercaladas de datos y porcentajes Diseño
55 Métrica: gráficas Palabras de N caracteres: combinación de datos según el nº de caracteres y generación de nuevas tablas; modificación de las gráficas de dos a cuatro. Oraciones de N caracteres: combinación de datos según el nº de caracteres y generación de nuevas tablas; modificación de las gráficas de dos a cuatro. Párrafos de N caracteres: combinación de datos según el nº de caracteres y generación de nuevas tablas; modificación de las gráficas de dos a cuatro. Oraciones de N caracteres: combinación de datos según el nº de palabras y generación de nuevas tablas; modificación de las gráficas de dos a cuatro. Párrafos de N caracteres: combinación de datos según el nº de palabras y generación de nuevas tablas; modificación de las gráficas de dos a cuatro. Párrafos de N caracteres: combinación de datos según el nº de oraciones y generación de nuevas tablas; modificación de las gráficas de dos a cuatro. Distribución por frecuencia: combinación de datos según la frecuencia de las palabras y generación de nuevas tablas; modificación de las gráficas de una a dos. Distribución por centro de gravedad: combinación de datos según el centro de gravedad de las palabras y generación de nuevas tablas; modificación de las gráficas de una a dos. Distribución por primera aparición: combinación de datos según la primera aparición de las palabras y generación de nuevas tablas; modificación de las gráficas de una a dos. Distribución en el corpus: combinación de datos según la frecuencia en el corpus y generación de nuevas tablas; modificación de las gráficas de una a dos. Morfología: informe Totales por categoría gramatical: añadir columna de totales Promedios por categoría gramatical: añadir columnas intercaladas de datos y porcentajes Totales por flexión verbal: añadir columna de totales Totales por flexión no verbal: añadir columna de totales Morfología: gráficas Categorías gramaticales: combinación de datos según la categoría gramatical y generación de nuevas tablas; modificación de las gráficas de una a dos. Flexiones verbales: combinación de datos según las distintas flexiones verbales y generación de nuevas tablas; modificación de las gráficas de una a dos. Flexiones no verbales: combinación de datos según las distintas flexiones no verbales y generación de nuevas tablas; modificación de las gráficas de una a dos. Diseño
56 Categorías gramaticales - verbos: combinación de datos según el nº de verbos y generación de nuevas tablas; modificación de las gráficas de una a dos. Categorías gramaticales - sustantivos: combinación de datos según el nº de sustantivos y generación de nuevas tablas; modificación de las gráficas de una a dos. Categorías gramaticales - adjetivos: combinación de datos según el nº de adjetivos y generación de nuevas tablas; modificación de las gráficas de una a dos. Categorías gramaticales - adverbios: combinación de datos según el nº de adverbios y generación de nuevas tablas; modificación de las gráficas de una a dos. Categorías gramaticales - pronombres: combinación de datos según el nº de pronombres y generación de nuevas tablas; modificación de las gráficas de una a dos. Categorías gramaticales - preposiciones: combinación de datos según el nº de preposiciones y generación de nuevas tablas; modificación de las gráficas de una a dos. Categorías gramaticales - artículos: combinación de datos según el nº de artículos y generación de nuevas tablas; modificación de las gráficas de una a dos. Categorías gramaticales - conjunciones: combinación de datos según el nº de conjunciones y generación de nuevas tablas; modificación de las gráficas de una a dos. Morfología - Palabras no reconocidas: añadir columnas intercaladas de datos y porcentajes. Vocabulario: Estadísticas Con y sin palabras vacías: Combinación de datos según la palabra e intercalado de datos y porcentajes. Vocabulario Léxico Léxico: determinar en qué obras aparecen las formas canónicas de ambos textos. Vocabulario N-gramas Tamaño 2, 3, 4 y 5: Combinación de datos según los n-gramas de distintos tipos e intercalado de datos Diseño
57 Apartado de selección de obras: La selección de las obras deberá ser sencilla, rápida y versátil. El usuario debe encontrar lo que necesita con un par de clics y tener toda la información necesaria a la vista. Se creará una nueva página en la que mostrar la interfaz principal de la nueva herramienta y su distribución será la siguiente: Zona de descripción Debe explicar a groso modo la utilidad de la herramienta, para que los usuarios sepan lo que pueden esperar de ella. Deberá ocupar como mucho un párrafo y no pretende ser una descripción exhaustiva. Zona modo de empleo Será un resumen de la metodología que se debe seguir para realizar la comparación. Su uso en detalle estará incluido en la ayuda de la herramienta, donde se marcará con la etiqueta V.2014 lo que significa que pertenece a la versión de ese año. Figura 9.17: prototipo de la página de acceso al modo de comparación Diseño
58 Zona de selección En ella el usuario seleccionará la obra con la que quiere comparar su texto. Aunque inicialmente sólo será visible una de ellas, esta zona estará dividida en tres partes: Colecciones disponibles: Agrupará las obras según un elemento común, como puede ser que pertenezcan a la literatura clásica o que sean escritos periodísticos. Autores: Permitirá elegir entre los distintos autores que poseen obras en la colección seleccionada o seleccionar “todos” para que aparezca un listado completo de las obras de esa colección. Obras: Mostrará las obras que cumplen los filtros seleccionados. En caso de haber seleccionado la opción especial “todos” en la selección de autor el nombre de las obras irá seguido del nombre del autor entre paréntesis. Zona de información de la obra En esta zona es donde se mostrará la información de la obra seleccionada en la zona de selección. Podrá incluir tantos campos como sean necesarios y dependerá del archivo XML asociado a la colección a la que pertenece. En la parte inferior se situará el botón que da lugar a la comparación. Repositorio de obras El sistema de almacenamiento de las obras que pueden seleccionarse para comparar se basará en un sistema de carpetas en el interior del programa gestionado por archivos XML donde se almacenará la información que se mostrará al usuario cuando seleccione la obra así como otros datos relevantes para el buen funcionamiento de la herramienta de comparación como puede ser la abreviación del nombre del autor para mostrarse en las tablas de comparación. Se añadirá un archivo “Readme.txt” que mostrará su correcto funcionamiento e incluirá las instrucciones para añadir, borrar o modificar cualquiera de los parámetros de la herramienta de selección de obras y los datos de las obras. Diseño
59 Los pasos resumidos para incluir nuevos elementos serán los siguientes: 1. Agregar una nueva colección en "App_Data/libros/colecciones/lista_colecciones.txt" [Nombre archivo XML que contiene las obras de la colección]:[Nombre que se quiere mostrar al usuario] 2. Crear archivo XML que contenga las obras de la colección en la misma carpeta 3. Crear una carpeta con el NOMBRE NORMALIZADO de cada autor incluido en el archivo XML dentro de "App_Data/libros/estadisticas" 4. Crear una carpeta con el NOMBRE NORMALIZADO de cada obra incluida en el archivo XML dentro de la carpeta del autor correspondiente "App_Data/libros/estadisticas/[Autor de la obra]/[Nombre de la obra] 5. Situar las estadísticas de cada obra dentro de su carpeta correspondiente Incluir nuevas colecciones La herramienta generará las colecciones de forma dinámica y será un número ilimitado de ellas. Para incluir las nuevas colecciones bastará con añadir una nueva línea en el fichero "lista_colecciones.txt" situado en "App_Data/libros/colecciones" y su correspondiente fichero de colección. El formato del fichero TXT deberá ser exactamente el que se describe; nombre del fichero XML (con extensión incluida) seguida (sin espacios) de la descripción que se quiere mostrar al usuario (admite espacios y cualquier símbolo). Ejemplo de fichero lista_colecciones.txt: literatura_clásica.xml:Literatura Clásica literatura_moderna.xml:Literatura Moderna Ejemplo de modificación en dicho fichero: literatura_clásica.xml:Literatura Clásica literatura_moderna.xml:Literatura Moderna pergaminos_super_viejos.xml:Pergaminos Antiguos piedra_para_escribir.xml:Tablillas de Piedra de_la_A_a_la_Z.xml:Abecedario Extendido Diseño
60 Los nombres de los archivos XML NO necesitan coincidir en ningún caso con el alias que se le pretende dar a ver al usuario (aunque en recomendable cierto parecido para una fácil identificación por nuestra parte). La ordenación tampoco es necesaria pues se mostrará al usuario siempre en estricto orden alfabético. El algoritmo leerá aquellas líneas que incluyan la cadena "X.xml:" (sin comillas) donde "X" será una cadena de tamaño uno (1) o superior, e ignorará el resto del fichero. Nuevos campos en archivos XML: El archivo XML que lista las obras de una colección podrá ser editado para incluir nuevos atributos que se mostrarán al usuario cuando seleccione una obra. Para hacerlo bastará con incluir un nuevo campo dentro de la etiqueta <data...> teniendo en cuenta lo siguiente: - Titulo siempre tiene que ser el primer campo de la etiqueta - Los nombres que identifican los campos no admitirán espacios ni símbolos pero el que se muestra al usuario sí. De tal manera que, por ejemplo, se podrá añadir el nombre de campo "Palabra", pero no "Número de Palabras”, sin embargo si es posible que el campo que se muestre al usuario se llame “Número de Palabras”. Así mismo, no todos los libros (ni siquiera de la misma colección) necesitarán tener los mismos atributos dentro de la etiqueta <data...> (salvo Titulo y Autor que siempre debe estar). De esta manera se podrán personalizar los atributos que se quieren mostrar para cada libro o colección, pudiendo usar por ejemplo, unos para "Literatura Clásica" y otros totalmente distintos para "Artículos Periodísticos" o "Entradas de Blogs". Nuevos autores: Las carpetas para los autores se situarán en "App_Data/libros/estadisticas/" y siguen las mismas reglas de nomenclatura que las obras. Dichas reglas se detallan en el siguiente apartado. Diseño
61 Nuevas obras: La herramienta generará las obras disponibles de forma dinámica, tan sólo habrá que incluir la descripción de la misma en el fichero de colección correspondiente manteniendo su formato (se recomienda "copiar y pegar" para realizar los añadidos). Los datos de la obra deberán incluirse en su propia carpeta, situada dentro de la de su autor, que estará en "App_Data/libros/estadisticas/[Nombre del Autor]/". La carpeta de obra deberá tener el mismo nombre que el título de la obra salvo por aquellos caracteres que pueden generar conflicto a la hora de compilar el proyecto. A groso modo, las carpetas solo podrán usar los siguientes caracteres: A-Z a-z 0-9 punto (.) coma (,) De tal forma que el programa generará automáticamente la siguiente normalización en los títulos del archivo XML: Las letras con tilde serán cambiadas automáticamente por letras sin tilde La "ñ" será cambiada por la "n" Cualquier otro símbolo será eliminado Ejemplos de normalización: Campañas Nocturnas -> Campanas Nocturnas Tracción, Dos Piernas Mejor que Una -> Traccion, Dos Piernas Mejor que Una ¿Ser o No Ser? Esa es la Cuestión -> Ser o No Ser Esa es la Cuestion Modificación de la interfaz (modo comparación) La interfaz en el modo comparación mantendrá todos los elementos originales aunque como ya se ha mencionado se modificará el formato de las tablas y gráficas para albergar los datos de las obras que se comparan en lugar de sólo la del usuario. Diseño
68 Con palabras vacías Media Media Neruda Desviación típica Desviación típica Neruda Caracteres por palabra 4 4 2,53 3,03 Caracteres por oración 48 37 6,36 20,74 Caracteres por párrafo 48 56 6,36 0 Palabras por oración 11 8 1,41 3,51 Palabras por párrafo 11 12 1,41 0,71 Oraciones por párrafo 1 2 0 0,71 Nº Palabras Nº Palabras Neruda % Palabras % Palabras Neruda Nº Caracteres 1 1 4,55 4 1 7 8 31,82 32 2 2 3 9,09 12 3 3 4 13,64 16 4 2 2 9,09 8 5 3 2 13,64 8 6 3 1 13,64 4 8 0 3 0 12 9 1 0 4,55 0 10 0 1 0 4 13 Figura 10.3: tabla con columnas intercaladas añadidas Figura 10.4: tabla con datos combinados en base a una columna que también es un dato Implementación
69 Aunque la tónica general era remarcar dinámicamente todas las tablas hubo una en particular que fue necesario marcar de forma estática pues el encabezado de su columna no requería de la abreviación del nombre del autor y no existía ningún canon que pudiera garantizar que no se marcaran otras que no debían. Forma canónica Cat. gramatical Obra origen Etimologías Acepciones Antigua a prep. Ambas 2 23 No adelante adv. lug. Usuario 1 3 No armado v. pron. Usuario 1 27 No caso v. tran. Neruda 3 1 No como conj. sub. comp. Neruda 1 0 No correctamente adv. modo Neruda 1 1 No 10.6 Combinación de gráficas Algunas gráficas requerían que se modificara el origen de sus datos mientras que otras necesitaban datos adicionales. Uno de los mayores problemas fue el de los parámetros que el sistema original daba por sentado y que dejaban de cumplirse al realizarse la comparación. Por ejemplo, el rango de las gráficas era siempre determinado por el archivo que contenía las palabras vacías, dado que aquel que no las contenía no era más que un subconjunto del primero y nada de lo que se cumpliera para el segundo dejaba de ser cierto en el primero. Sin embargo al realizar las comparaciones lo que se cumple para la del usuario (como por ejemplo el tamaño de la palabra más larga) no se cumplía necesariamente para la segunda obra que podía o no tener una palabra de mayor longitud. Eso supuso un problema a la hora de determinar los valores mínimos y máximos que debían tener las gráficas, más aún, no fue hasta bien avanzado el proyecto que no se detectó el hecho de que algunos valores quedaban fuera del rango de las gráficas porque no se había estudiado en profundidad la forma en la que las gráficas definían sus tamaños. Finalmente mediante varias comparaciones las gráficas se establecen en base a los máximos y mínimos de ambas obras evitando que algunos valores quedaran ignorados. Figura 10.5: tabla con datos combinados y metadatos Implementación
70 Otro cambio a tener en cuenta era el valor de la leyenda que inicialmente eran valores fijos pero que ahora dependían tanto del nombre del archivo subido por el usuario como de la obra escogida para realizar la comparación. Esto produjo la necesidad de realizar de crear nuevas variables que hicieran las peticiones necesarias y almacenaran los valores para asignarlos cuando fuera preciso. Las gráficas que tuvieron que ampliarse de una entrada de datos a dos quedaron no necesitaron modificaciones adicionales a las mencionadas Sin embargo aquellas que ya presentaban dos entradas necesitaron código adicional para evitar que quedaran saturadas. Se incluyó una nueva opción para ver las comparaciones en grupos de dos, los que eran relevantes entre sí. Mediante activación de una casilla la gráfica modifica la entrada de datos alterando dinámicamente su forma y permitiendo que se puedan comparar por separados los casos en los que se muestran las palabras vacías y en los que no. Dado que presenta más información se optó por presentar inicialmente las gráficas que incluyen las palabras vacías. Figura 10.6: gráfica que alberga una nueva entrada de datos Implementación
71 Figura 10.7a: gráfica con palabras vacías Figura 10.7b: gráfica sin palabras vacías Implementación
72 1 1 Prue bas En esta fase del desarrollo se deben realizar multitud de pruebas para garantizar en la medida de lo posible el correcto funcionamiento del sistema. Aunque está situada al final, es una tarea que debe realizarse a lo largo de la fase de desarrollo pues detectar que se ha estado trabajando sobre clases, módulos o datos defectuosos podría tirar por la borda meses de trabajo. Es totalmente imposible garantizar que la aplicación está libre de errores en su totalidad pues hay tantas formas de usarla como textos existan. Sin embargo se ha realizado una amplia batería de pruebas para garantizar que los casos más comunes (y algunos de los que menos) no generar errores ni problemas de ejecución. 11.1 Pruebas de Recuperación Este tipo de pruebas intentan generar un error en el sistema y comprobar que es capaz de reponerse y continuar funcionando. En esta ampliación se detectaron numerosos errores de este tipo debido a un cambio en las listas usadas internamente por Paramtext que fue rápidamente subsanado por parte de los responsables de la herramienta. La ampliación del sistema no presentaba casos especiales que pudieran dar lugar a inestabilidad debido a la acción de los usuarios. Debido a que no depende de la interacción de terceros se han podido subsanar los errores de este tipo con un alto grado de fiabilidad 11.2 Pruebas de seguridad Este sector comprueba que los mecanismos de seguridad incorporados impiden que el sistema sea vulnerado mediante la acción de actores externos. Debido a que la ampliación del sistema no permitía el envío adicional de datos con respecto a su antecesor no fue necesario realizarlas. 11.3 Pruebas de resistencia La carga añadida al proceso PMT que es el que consume recursos del servidor ha sido bastante controlada. Por un lado se le ha rebajado al añadir el servicio silabeador que realizar parte del trabajo mientras que por el otro se han añadido los ngramas que sí consumen algo de tiempo adicional. En el cómputo global Paramtext mantiene un tiempo de ejecución equivalente, quizás ligeramente superior que mantiene los mismos resultados obtenidos en las pruebas de la versión original: cuando aumenta el número de usuarios aumenta sensiblemente el tiempo de ejecución pero se siguen obteniendo los resultados sin problema. Pruebas
73 11.4 Pruebas de rendimiento Este tipo de pruebas se basan en medir el rendimiento del software en tiempo de ejecución y requieren de instrumentación tanto software como hardware para los procesos de monitorización y medición. Al desarrollar este proyecto utilizando como entorno de desarrollo Microsoft Visual Studio, se ha decidido emplear la opción de generación de perfiles que ofrece la aplicación para este fin. Se trata de una herramienta de diagnóstico que recopila los datos de rendimiento de las aplicaciones, proporcionando información como el tiempo que se emplea en cada una de las funciones o la utilización de memoria por parte del sistema a lo largo del tiempo. A través de la utilización de estas herramientas ha sido posible determinar que mientras que para el subsistema Paramtext, con el que los usuarios interactúan, no existen problemas destacables, el subsistema PMT encargado de realizar la parametrización morfológica de los textos posee ciertos inconvenientes a tener en cuenta. Se obtuvo que del total del tiempo necesario por el subsistema para completar la parametrización morfológica de un texto, el 85% del tiempo es destinado a obtener la información morfológica de las palabras, mientras que el otro 15% se destina al resto de actividades como la validación del archivo, su procesado y cálculo de resultados. Si se establece que como término medio un fichero de texto de 100KB de tamaño es parametrizado en aproximadamente 42 segundos, significa que casi 36 de esos segundos son destinados únicamente a la obtención de la información morfológica de las palabras. Esto implica que el tiempo necesario por la aplicación para completar el proceso de parametrización y por tanto el tiempo que debe esperar el usuario para poder empezar a visualizar los resultados, está siempre determinado por el módulo de lematización, un hecho que es necesario asumir puesto que se utiliza un servicio web externo a este proyecto. Pruebas
74 1 2 Re sultados Tras llevar a cabo todas las fases de desarrollo del software se ha conseguido ampliar satisfactoriamente el sistema. Se ha conseguido añadir nuevas funciones y ampliar la información que mostraba anteriormente, se le ha dotado de funcionalidad y se ha mantenido el tiempo y modo de funcionamiento para evitar un posible impacto negativos en quienes ya fueran usuarios de la herramienta. Aunque no se pretende incluir una por una todas las mejoras se realizará un resumen de las más significativas. 12.1 vocabulario El apartado dedicado al vocabulario ha pasado de tener una sola sección con dos tablas a tener tres secciones con siete tablas, lo que ha aumentado significativamente el volumen de información mostrado. Además de las dos tablas pertenecientes a las estadísticas se pueden encontrar, por un lado una nueva tabla de Léxico donde aparece información extraída en su mayor parte de la RAE y por el otro cuatro nuevas tablas donde se presentan los distintos ngramas de tamaños comprendidos entre dos y cinco, ambos incluidos. Adicionalmente se ha incluido el uso del servicio Silabeador en lugar de realizarse completamente en el interior de la aplicación. Figura 12.1: Nueva tabla de Léxico en la sección de vocabulario Resultados
75 12.2 Comparar El nuevo apartado de comparación permite seleccionar mediante filtros (colecciones y autores) las obras con las que quiere realizarse una comparación. Incluye una descripción, instrucciones de uso, una sección de selección de obra y otra para mostrar su información. Figura 12.2: Nuevas tablas de Ngramas separadas por las pestañas superiores en la sección de vocabulario Figura 12.3: Nuevo apartado de la herramienta Comparar Resultados
76 12.3 ParamTextComp La nueva herramienta de comparación modifica completamente la interfaz de usuario para mostrar de forma clara y sencilla los datos combinados de las obras (una del usuario y otra de nuestro sistema). No se pretende incluir todas las tablas y gráficas afectadas cuyo número abarca treinta y siete (37) tablas y veintiuna (21) gráficas pero se pondrán algunos ejemplos de cada tipo. Figura 12.4: Tabla modo normal y modo comparación de totales perteneciente a Métrica - Informe Figura 12.5: Tabla modo normal y modo comparación de promedios perteneciente a Métrica - Informe Resultados
77 Figura 12.6: Tabla modo normal y modo comparación de metadatos perteneciente a Vocabulario - Léxico Figura 12.7: Gráficas modo normal y modo comparación de una entrada a dos entradas de datos Resultados
84 III. Iniciar la parametrización Por último, sólo tiene que hacer clic sobre el botón "Parametrizar" y el sistema comenzará a procesar su documento. Puesto que este proceso puede llegar a durar minutos en función de las características del fichero enviado y del estado en el que se encuentre la red, se le ruega que tenga paciencia. No obstante, puede ver el estado en el que se encuentra el proceso mediante la barra de progreso que se proporciona, pudiendo cancelarlo en cualquier momento mediante la utilización del botón "Cancelar". Para garantizar un flujo de ejecución correcto, evite utilizar la aplicación durante el tiempo en que se está realizando la parametrización de su archivo, en caso contrario, el sistema cancelará el proceso en curso. Una vez finalizada la parametrización del documento, no será mostrado ningún mensaje, sino que será automáticamente redirigido a una de las páginas de resultados. 17.1.3 ¿CÓMO COMPARAR DOCUMENTOS? (v.2014) La herramienta es muy sencilla de utilizar, sólo se necesita acceder a la zona de selección de obra mediante el enlace "Comparar" del menú superior de la página y seguir los siguientes pasos: I. Seleccionar colección De entre las distintas colecciones de obras ofertadas, seleccionar aquella que pueda contener el tipo de texto deseado. Se recomiendan aquellas que contengan un tipo de obra similar al que se ha enviado. Anexo
85 II. Seleccionar el autor El siguiente paso antes de comenzar el proceso de comparación es seleccionar el Autor. Las obras están divididas según este criterio aunque existe la posibilidad de seleccionar "Todos" para que aparezca un listado completo. III. Seleccionar la obra e iniciar la comparación Por último, sólo tiene que seleccionar una obra y podrá ver una descripción de la misma y el botón de inicio de comparación en la parte inferior derecha de la página, al hacer clic sobre dicho botón la herramienta se pondrá en marcha, este proceso no debería tardar más que unos segundos. Una vez finalizada la comparación del documento, no será mostrado ningún mensaje, sino que será automáticamente redirigido a una de las páginas de resultados. En ella podrá ver en todo momento el nombre de la obra con la que está realizando la comparación, y situados junto a ella, un icono (pergamino) que le permitirá ver los datos de la obra al colocar el cursor encima y otro icono (equis) que le permitirá deshacer la comparación haciendo clic sobre él. Si se cancela una comparación, aparecerá una nueva línea de información indicando la última obra comparada y junto a ella un icono en forma de flecha que le permitirá rehacer la comparación en cualquier momento. Anexo
86 Anexo
87 17.2.4 PARTES DE LA APLICACIÓN A continuación se detallan las principales partes del sistema: I. Menú Permite acceder a las opciones y resultados que proporciona la aplicación. II. Sección actual Muestra el nombre de la sección (resultado) que se está visualizando. III. Documentos actuales Indica el nombre del fichero y lista de palabras vacías actuales. Permite saber en todo momento a que documento se corresponden los resultados mostrados. IV. Bloque principal Es la sección más importante, ya que en ella se presentarán los resultados solicitados. Anexo
88 17.1.5 DISTRIBUCIÓN DEL MENÚ El menú ha sido dividido en varias secciones para clasificar los resultados por categorías y facilitar así su localización. A continuación, se comenta el tipo de resultados que podrá consultar en cada una de sus secciones: I. Inicio Permite acceder a la página de inicio de la aplicación. II. Métrica Ofrece los resultados relacionados con la métrica del documento analizado. Podrá consultar por ejemplo: el número de palabras, el número de palabras diferentes, el número de oraciones, el número de párrafos, la cantidad de oraciones por párrafo, o bien el promedio, moda y mediana de palabras por oración o párrafo entre otros muchos datos. III. Morfología Proporciona una amplia información sobre las características morfológicas del texto. Podrá consultar por ejemplo: el número de palabras que pertenecen a cada categoría gramatical (verbos, sustantivos, adjetivos,…), el número de palabras según su flexión, o el promedio, moda y mediana de palabras de una determinada categoría gramatical que hay por oración o párrafo. IV. Vocabulario (v. 2014) Permite consultar la lista de palabras que aparecen en el texto analizado. Además, para cada una de ellas podrá visualizar su frecuencia de aparición, la posición del texto en la que aparece por primera vez, su información morfológica, categoría gramatical, numero de acepciones en la RAE, etc. También se ha dedicado un apartado para los distintos Ngramas existentes (de entre 2 y 5 palabras). V. Palabras vacías Esta sección permite cambiar la lista de palabras vacías a utilizar. También proporciona la posibilidad de descargar la lista de palabras vacías por defecto o la utilizada por el usuario en la última parametrización realizada. VI. Comparar (v.2014) Permite realizar una comparación entre el texto enviado y uno de los que se mantienen almacenados en nuestra base de datos. Dicha herramienta reestructurará por completo el Parametrizador para mostrar en todo momento y de forma clara los datos de ambas obras, facilitando así cualquier tipo de comparación. VII. Ayuda Permite acceder al documento de ayuda online de nuestra aplicación. Anexo
89 17.1.6 PALABRAS VACÍAS Las palabras vacías (en inglés, stopwords) son aquellas que no tienen un significado propio y que por tanto no aportan ningún contenido semántico al texto. Es por ello que en muchas actividades relacionadas con el procesamiento de textos, este tipo de palabras tengan un tratamiento particular. Un ejemplo, son los motores de búsquedas, que descartan este tipo de palabras para ofrecer mejores resultados a los usuarios. En nuestro caso, hemos decidido ofrecer los resultados de la sección Métrica desde dos perspectivas diferentes: I. Con palabras vacías Los resultados se ofrecen teniendo en cuenta todas las palabras del texto, por tanto las palabras vacías son contabilizadas. II. Sin palabras vacías Los resultados se ofrecen sin tener en cuenta las palabras vacías, estas no serán consideradas y por tanto, tampoco contabilizadas. ParamText TIP utiliza una lista de palabras vacías por defecto. En ella se han incluido las palabras vacías más frecuentes del español. Sin embargo, puesto que no existe un estándar que defina con exactitud cuáles son las palabras vacías del español, se ofrece también la posibilidad de que sea el usuario quien establezca su propia lista de palabras vacías. Esta opción permitirá a los usuarios obtener resultados más precisos, ya que podrán descartar todas aquellas palabras que deseen. En la sección del menú "Palabras vacías", encontrará las pautas a seguir para poder confeccionar y utilizar su propio listado. Anexo
90 17.1.7 FORMATO DE LOS RESULTADOS Los resultados proporcionados por ParamText TIP, pueden ser visualizados en dos formatos diferentes. Uno de ellos es en forma de gráfica, que es el formato mostrado por defecto. La otra posibilidad, consiste en visualizar la información en modo tabular. Puede alternar entre ambas vistas mediante la utilización de las pestañas habilitadas para ello. Gráficas Permiten visualizar los datos que conforman el resultado seleccionado en formato de gráfica de barras. Para facilitar la interpretación de la información mostrada, cada gráfica va acompañada de una leyenda y los títulos de sus correspondientes ejes. En la parte inferior de la gráfica, encontrará un conjunto de opciones que permitirán cambiar ciertos parámetros de visualización. Las opciones disponibles son: I. Zoom Permite seleccionar un rango de valores específicos del eje X para visualizarlo con más detalle. II. Mostrar serie Por defecto, para facilitar la comparación de los resultados, las gráficas muestran simultáneamente los datos "Con palabras vacías" y "Sin palabras vacías". Esta opción permite restringir la visualización de la gráfica a una única serie. III. 3D Permite cambiar el modo de visualización de la gráfica a tres dimensiones. IV. Tooltip Permite conocer los valores de los ejes X e Y que conforman cada una de las barras de la gráfica. Para ello, sólo hay que pasar el cursor del ratón sobre alguna de las barras y se mostrará la información correspondiente. Anexo
91 Tablas Ofrecen la misma información que las gráficas pero en formato tabular. Puesto que la mayor parte de los resultados implican el manejo de un gran volumen de datos, se ha decidido habilitar la paginación y ordenación por columnas de las tablas, facilitando así, la búsqueda y legibilidad de los datos. Además, mediante la utilización del botón "Exportar" que encontrará bajo cada una de ellas, podrá exportar el contenido de la tabla a un archivo de Excel. Anexo
92 Otra de las opciones disponibles cuando se consulta un resultado, ya sea en formato gráfico o tabular, es la visualización de un pequeño informe, que se pliega y despliega al hacer clic con el ratón sobre los datos del documento actual. Este pequeño informe, contiene únicamente algunos de los resultados de los informes principales, que pueden ser útiles al usuario en función del resultado que está visualizando. Por ejemplo, en las imágenes inferiores, en las que el usuario está consultando como se distribuyen las palabras del texto según su tamaño en caracteres, el informe desplegable muestra como datos relevantes, el total de palabras y el total caracteres del texto. De esta manera, si el usuario deseara consultar esta información, no tendría que irla a buscar a la página del informe principal, sino que podría consultarla desde la misma página en la que se encuentra. Anexo
93 17.1.8 RESULTADOS PROPORCIONADOS En este apartado se explican las características y utilidad de los principales resultados proporcionados por ParamText TIP: Informe métrica En esta sección se proporcionan resultados como: Número total de: caracteres, palabras, palabras diferentes, oraciones o párrafos. Promedio, desviación típica, moda y mediana de: caracteres por palabra, caracteres por oración, caracteres por párrafo, palabras por oración, palabras por párrafo u oraciones por párrafo. Todos estos datos permiten hacerse una idea de cómo se estructura el texto en función de sus partes, como por ejemplo, si predominan palabras u oraciones cortas o largas. Estos resultados, al ser de carácter unitario, sólo se representan en formato tabular. Esta sección está disponible en: "Métrica → Informe". Distribución de las palabras según la cantidad de caracteres Muestra cómo se distribuyen las palabras del texto según la cantidad de caracteres. Es decir, indica el número de palabras cuya longitud en caracteres es N, donde N = {1, 2, 3,…}. Permite saber si las palabras del texto se caracterizan por ser pequeñas o grandes, e incluso detectar la cantidad de palabras que superan un determinado tamaño. Este resultado está disponible en: "Métrica → Gráficas → Palabras de N caracteres". Distribución de las oraciones según la cantidad de caracteres Muestra cómo se distribuyen las oraciones del texto según la cantidad de caracteres. Es decir, indica el número de oraciones cuya longitud en caracteres es N, donde N = {1, 2, 3,…}. Este resultado está disponible en: "Métrica → Gráficas → Oraciones de N caracteres". Distribución de los párrafos según la cantidad de caracteres Muestra cómo se distribuyen los párrafos del texto según la cantidad de caracteres. Es decir, indica el número de párrafos cuya longitud en caracteres es N, donde N = {1, 2, 3,…}. Este resultado está disponible en: "Métrica → Gráficas → Párrafos de N caracteres". Anexo
100 Comparativa (v.2014) Esta herramienta proporciona una gran funcionalidad adicional a Paramtext, permitiendo al usuario que compare sus obras con otras de renombre. Su objetivo es ayudar a comprender y valorar los resultados propios mediante la comparación con aquellos que aparecen cuando se parametrizan obras de gran importancia. Tras hacer uso de esta herramienta podrán verse en todo momento el nombre de la obra comparada y las mismas tablas y gráficas que en el programa original pero en ellas se mostrarán de forma clara tanto las estadísticas propias como las del texto elegido para realizar la comparación, así como opciones adicionales en caso de ser relevante, como la casilla que permite visualizar la gráfica con o sin palabras vacías en la sección de métrica. Anexo
101 17.1.9 POLÍTICA DE PRIVACIDAD ParamText TIP garantiza que los archivos recibidos: No serán examinados o modificados en ningún momento. No serán facilitados a terceras partes. Serán eliminados de nuestros servidores tras un período de inactividad del usuario. Anexo