asistente virtual para la producción textual (avpt) - RIBIE-Col
Transcripción
asistente virtual para la producción textual (avpt) - RIBIE-Col
ASISTENTE VIRTUAL PARA LA PRODUCCIÓN TEXTUAL (AVPT) TESIS DE MAESTRIA INGENIERIA DE SISTEMAS Y COMPUTACIÓN DIANA CAROLINA RIVERA VELASCO COD. 0608073 [email protected] UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERIA Escuela de Ingeniería de Sistemas y Computación Cali, 29 de Enero de 2011. ______________________________________________________________________ Asistente Virtual para la producción textual 1 ASISTENTE VIRTUAL PARA LA PRODUCCIÓN TEXTUAL (AVPT) TESIS DE MAESTRIA INGENIERIA DE SISTEMAS Y COMPUTACIÓN DIANA CAROLINA RIVERA VELASCO COD. 0608073 [email protected] DIRECTORA MsC. LILIANA ESTHER MACHUCA VILLEGAS UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERIA Escuela de Ingeniería de Sistemas y Computación Cali, 29 de Enero de 2011. ______________________________________________________________________ Asistente Virtual para la producción textual 2 CONTENIDO RESUMEN ___________________________________________________________ 7 2. PLANTEAMIENTO Y FORMULACIÓN DEL PROBLEMA _________________________ 8 3. JUSTIFICACIÓN ______________________________________________________ 9 4. OBJETIVOS _________________________________________________________ 10 4.1 OBJETIVO GENERAL ___________________________________________________________ 10 4.2 OBJETIVOS ESPECÍFICOS ________________________________________________________ 10 5. ALCANCES DEL PROYECTO ____________________________________________ 11 6. MARCO DE REFERENCIA ______________________________________________ 13 6.1 MARCO TEÓRICO _______________________________________________________ 13 6.1.1 Lingüística Computacional: _____________________________________________ 13 6.1.2. Lenguaje Natural _____________________________________________________ 13 6.13 Procesamiento del Lenguaje natural: ______________________________________ 14 6.1.4 Distancia de edición ___________________________________________________ 15 6.1.4.1 ALGORITMO DE LEVENSHTEIN _________________________________________ 16 6.1.5 Sistemas Multiagentes (SMA)____________________________________________ 16 6.1.5.1 Agentes De Interfaz __________________________________________________ 18 6.1.6 ESTRATEGIAS DE APRENDIZAJE __________________________________________ 22 6.1.6.1. LA ESCRITURA Y EL PROCESO DE COMPOSICIÓN ESCRITA ____________________ 22 6.1.6.1.1 ENFOQUE TEXTUAL Y DISCURSIVO ___________________________________________ 22 6.1.6.1.2 LA ENSEÑANZA DE LA COMPOSICIÓN ESCRITA: LA ESCRITURA POR PROCESOS _______ 22 6.1.6.1.3 LA ESCRITURA COLABORATIVA ______________________________________________ 23 6.2 ANTECEDENTES ________________________________________________________ 24 6.3 MARCO CONCEPTUAL ___________________________________________________ 31 7. ESPECIFICACIÓN ASISTENTE VIRTUAL PARA LA PRODUCCIÓN TEXTUAL (AVPT) ___ 33 7.1 DESCRIPCIÓN Y SELECCIÓN DEL LEXICÓN, ANALIZADOR LÉXICO Y ANALIZADOR SINTÁCTICO ______________________________________________________________ 33 7.1.1 DEFINICIÓN DEL LEXICÓN, ANALIZADOR ORTOGRÁFICO Y ANALIZADOR SINTÁCTICO 44 7.1.2. DESCRIPCIÓN DE LOS ALGORITMOS GRAMATICALES DESARROLLADOS __________ 47 7.1.2.1 ALGORITMO DE CORRECCIÓN ORTOGRÁFICA ___________________________________ 47 7.1.2.2 ALGORITMO DE CORRECCIÓN SINTÁCTICA ______________________________________ 50 7.1.3 INTERFAZ DE COMUNICACIÓN ENTRE EL LEXICÓN Y EL ANALIZADOR SINTÁCTICO __ 51 7.2 REPRESENTACION COMPUTACIONAL DE LAS ESTRUCTURAS MACRO TEXTUALES Y EL PROCESO DE RECOMENDACIÓN QUE EL AGENTE REALIZA EN DICHA REPRESENTACION __ 52 7.3 ARQUITECTURA ASISTENTE VIRTUAL PARA LA PRODUCCION TEXTUAL (AVPT) _______ 55 7.3.1 VISTAS DE LA ARQUITECTURA AVPT _______________________________________ 55 7.3.1.1 VISTA CONCEPTUAL ________________________________________________________ 55 ______________________________________________________________________ Asistente Virtual para la producción textual 3 7.3.1.2 VISTA LÓGICA _____________________________________________________________ 57 7.3.1.2.1 MODELO DE AGENTES_____________________________________________________ 65 7.3.1.2.2 MODELO DE ORGANIZACIÓN _______________________________________________ 67 7.3.1.2.3 MODELO DE ENTORNO ____________________________________________________ 67 7.3.1.2.4 MODELO DE SERVICIOS, DE SECUENCIA Y DE ACTIVIDAD ________________________ 68 7.3.1.2.5 DIAGRAMA DE CLASES ____________________________________________________ 76 7.3.1.2.6 MODELO DE PERSISTENCIA _________________________________________________ 77 8. PROTOTIPO ASISTENTE VIRTUAL PARA LA PRODUCCION TEXTUAL (AVPT) _______ 79 8.2 INTERFAZ GRÁFICA DE USUARIO ___________________________________________ 81 8.3 SERVICIOS ____________________________________________________________ 86 8.5 PRUEBAS _____________________________________________________________ 91 8.6 RESULTADOS __________________________________________________________ 92 9. CONCLUSIONES _____________________________________________________ 93 10. TRABAJO FUTURO __________________________________________________ 95 11. BIBLIOGRAFÍA _____________________________________________________ 96 ANEXOS EN FORMATO DIGITAL ANEXO 1. ESPECIFICACIÓN DE REQUERIMIENTOS (ERS- AVPT) ANEXO 2. PRUEBAS AVPT ANEXO 3. INSTRUCCIONES PARA USAR EL PROTOTIPO ______________________________________________________________________ Asistente Virtual para la producción textual 4 LISTA DE TABLAS Tabla 1. Resultados esperados _______________________________________________________ 12 Tabla 2: Metodologías para el diseño de Sistemas Multi-agente. __________________________ 21 Tabla 3. Características Analizadores Léxico - Sintáctico _________________________________ 40 Tabla 4. Resultados de la evaluación de los criterios de selección de los analizadores léxico y sintáctico ___________________________________________________________________________ 43 Tabla 5. Descripción de los agentes de acuerdo a sus objetivos. __________________________ 66 Tabla 6. Tabla de Interacción _________________________________________________________ 66 ______________________________________________________________________ Asistente Virtual para la producción textual 5 LISTA DE FIGURAS Figura 1. Esquema ejemplo análisis sintáctico __________________________________________ 46 Figura 2. Arquitectura LingWeb (Machuca 2009) vs. Arquitectura AVPT____________________ 49 Figura 3. Esquema funcionamiento interfaz de comunicación analizador sintáctico y el lexicón 52 Figura 4.Plantilla tipo párrafo rol administrador __________________________________________ 52 Figura 5. Proceso de recomendación Macrotextual. _____________________________________ 53 Figura 6.Plantilla tipo párrafo rol estudiante _____________________________________________ 54 Figura 7. Editor LingWeb y Asistente de escritura. _______________________________________ 54 Figura 8.Estructura conceptual de la plataforma LingWeb incluyendo el asistente Virtual _____ 56 Figura 9. Elementos del Editor LingWeb________________________________________________ 56 Figura 10. Vista conceptual de la arquitectura ___________________________________________ 57 Figura 11. Estructura de la arquitectura por capas _______________________________________ 58 Figura 12. Estructura general de la arquitectura del asistente de escritura __________________ 59 Figura 13. Estructura general de la arquitectura del asistente gramatical ___________________ 60 Figura 14. Composición del Asistente Textual ___________________________________________ 62 Figura 15. Vista general por compontes del Asistente textual parte I _______________________ 62 Figura 16. Vista por componentes asistente textual parte II ______________________________ 63 Figura 17. Vista por componentes del asistente gramatical _______________________________ 63 Figura 18. Vista por componentes del asistente de escritura ______________________________ 64 Figura 19. Vista de interacción de los Agentes con la plataforma Jade _____________________ 64 Figura 20. Modelo de Agentes. Agente Asistente Gramatical _____________________________ 65 Figura 21. Modelo de Agentes. Agente Asistente de Escritura ____________________________ 65 Figura 22. Modelo de Organización ____________________________________________________ 67 Figura 23. Modelo de Entorno _________________________________________________________ 67 Figura 24. Modelo de Servicios Corregir Ortografía ______________________________________ 68 Figura 25. Modelo de Servicios Corregir Sintaxis ________________________________________ 68 Figura 26.Modelo de Servicios Identificar tipo de párrafo _________________________________ 68 Figura 27. Modelo de Servicios Generar recomendaciones Macrotextuales ________________ 68 Figura 28. Modelo de Servicios Solicitar Zona de Mensajes ______________________________ 68 Figura 29. Modelo de Servicios Registrar Agentes _______________________________________ 69 Figura 30. Modelo de Servicios De-Registrar Agentes ___________________________________ 69 Figura 31. Servicio corregir ortografía. Diagrama de Secuencia y de actividades ____________ 70 Figura 32. Servicio corregir sintaxis. Diagrama de secuencia y Diagrama de actividades _____ 71 Figura 33. Servicio Identificar modelo de párrafo. Diagrama de secuencia y de actividad _____ 72 Figura 34. Servicio Generar Recomendaciones Macrotextuales. Diagrama de secuencia y de actividad ___________________________________________________________________________ 73 Figura 35. Servicio Solicitar zona de mensajes. Diagrama de secuencia y de actividad ______ 74 Figura 36. Servicio Registrar Agentes. Diagrama de secuencia ___________________________ 75 Figura 37. Servicio De- registrar Agentes. Diagrama de secuencia ________________________ 75 Figura 38. Servicio Registrar y De- registrar Agentes. Diagrama de Actividad _______________ 76 Figura 39. Diagrama de clases corrección ortográfica ____________________________________ 76 Figura 40. Diagrama de clases corrección sintáctica _____________________________________ 77 Figura 41. Modelo de persistencia corrector ortográfico __________________________________ 78 Figura 42. Modelo de persistencia corrector sintáctico ___________________________________ 78 Figura 43. Interfaz administrador del lexicón ____________________________________________ 81 Figura 44. Interfaz administración de POS tags _________________________________________ 82 Figura 45. Interfaz administración de unidades sintácticas ________________________________ 82 Figura 46. Interfaz estadísticas ortográficas y sintácticas. ________________________________ 83 Figura 47. Interfaz plantilla tipo párrafo rol docente. _____________________________________ 83 ______________________________________________________________________ Asistente Virtual para la producción textual 6 RESUMEN El propósito del presente proyecto es desarrollar un agente de interfaz del tipo semi-autónomo que realice funciones de asistencia al usuario en el proceso de producción de textos, generando recomendación automática a nivel léxico, sintáctico y macro textual1. El prototipo se caracteriza por la revisión de oraciones escritas en el idioma inglés, aplicado a un corpus de 10 textos. El Agente conocido como asistente virtual provee a los usuarios una tutoría inteligente e interactiva proporcionando mayor apoyo al aprendizaje representado en la anotación y marcado de errores, estimulando así las habilidades cognitivas del usuario. Abstract The purpose of this project is to develop an Interface Agent for assistance functions at the user in text production process, generating automatic recommendations at vocabulary, syntax and macro textual level1. The prototype is characterized on English language write sentence review. That is applied on a 10 texts corpus. The Agent, known as a virtual assistant, implements an intelligent and interactive aid to the users, giving a major support at the learning presented on annotation and error marking, to stimulate the users cognitive abilities. 1 Se entiende como recomendación macro textual, la sugerencia que se emite para lograr la producción guiada de textos. Ver detalles en sección 7.2 ______________________________________________________________________ Asistente Virtual para la producción textual 7 2. PLANTEAMIENTO Y FORMULACIÓN DEL PROBLEMA Actualmente, las plataformas de e-learning se han convertido en herramientas de uso significativo para lograr la ampliación de cobertura educativa, gracias a que su naturaleza distribuida y asíncrona favorece la atenuación de los problemas generados por las barreras geográficas, temporales y socialeconómicas. Frecuentemente, estos sistemas proveen experiencias de enseñanza-aprendizaje incipientes que se limitan a la simple navegación y gestión de los recursos digitales asociados a un curso e implícitamente, asumen que los procesos de enseñanza aprendizaje para distintas áreas del saber, se pueden soportar con la navegación de contenidos o el uso de herramientas comunes como foros, chats, y tableros electrónicos. Específicamente, en el área de idiomas, una plataforma como la antes mencionada no permitiría soportar a cabalidad los procesos de enseñanzaaprendizaje, ya que se adolecería de recursos que permitan el correcto desarrollo de las competencias relacionadas con la lectura, escritura, escucha y conversación básicas en el aprendizaje de cualquier lengua. Particularmente, para el desarrollo de las destrezas escritoras es indispensable que el aprendiz vivencie experiencias de producción textual, en las cuales cuente con cierta asistencia en el proceso de elaboración y redacción, de tal modo que se provea un acompañamiento constante y evaluación inmediata del desempeño lingüístico. Es así, como esta propuesta de investigación se centra en la definición de un asistente virtual para la producción textual que sea fácilmente integrado a una plataforma de e-learning basada en agentes de software. Para ello, esta herramienta debe ser modelada bajo las características de un agente software, utilizando aquellos elementos de la lingüística computacional que permitan realizar el procesamiento del lenguaje, como lo son los lexicones y analizadores sintácticos. Del mismo modo, se proporcionaría al estudiante una tutoría con cierto grado de inteligencia en el dominio de la producción textual. La asistencia inteligente proporcionara al usuario mayor facilidad en el aprendizaje de otro idioma, utilizando como medio de interacción una plataforma virtual. De acuerdo a esto surgen las siguientes preguntas: • ¿Qué características se deben considerar en un Lexicón y un analizador sintáctico para su aplicación en una plataforma centrada en el aprendizaje de idiomas? • ¿Cuál será el mecanismo de representación idóneo para las estructuras macro textuales y el proceso de recomendación que se debe llevar a cabo empleando dicha representación? ¿Cuál debe ser la arquitectura del agente software que realice la asistencia virtual requerida en la producción textual? ______________________________________________________________________ • Asistente Virtual para la producción textual 8 3. JUSTIFICACIÓN La realización de este proyecto contribuirá a la profundización e integración de dos grandes áreas del conocimiento como lo son agentes software y lingüística computacional, en donde como resultado se obtendrá una aplicación con cierto grado de inteligencia, que proporcionará un acompañamiento constante y evaluación inmediata del desempeño lingüístico de los aprendices. La implementación de este conocimiento se hará en un agente de interfaz proporcionando asistencia al usuario en el proceso de producción de textos, y la generación automática de recomendaciones a nivel léxico, sintáctico y macro textual. El agente software a definir, permitirá establecer un modelo genérico para la asistencia virtual en producción textual, puesto que se tendrán en cuenta todos los elementos principales que lo componen, como: léxicos, reglas ortográficas, reglas gramaticales, etc. Las cuales se incluirán dependiendo del idioma al cual se esté haciendo referencia. Además se podrá extender el modelo según las necesidades de cada lengua. La implementación de este recurso permite facilitar la tarea del docente en la evaluación y calificación de producciones textuales, además de brindar al estudiante asistencia en el proceso de elaboración de textos expositivos. ______________________________________________________________________ Asistente Virtual para la producción textual 9 4. OBJETIVOS 4.1 OBJETIVO GENERAL Definir un asistente virtual para la producción de textos, aplicando conceptos de agentes software y procesamiento de lenguaje natural, para un sistema de e-learning centrado en la enseñanza de idiomas. 4.2 OBJETIVOS ESPECÍFICOS • Especificar la arquitectura base del asistente virtual en términos de agentes software. • Analizar y seleccionar el lexicón y el analizador sintáctico a utilizar. • Definir la interfaz de comunicación entre el Lexicón y el analizador sintáctico. • Definir la representación computacional de las estructuras macro textuales y el proceso de recomendación que el asistente virtual realizará con base en dicha representación. • Desarrollar un prototipo del asistente virtual propuesto. ______________________________________________________________________ Asistente Virtual para la producción textual 10 5. ALCANCES DEL PROYECTO El presente trabajo de investigación depende de los siguientes aspectos: • El prototipo a construir estará basado en los lineamientos proporcionados por la Escuela de Idiomas de la Universidad del Valle y su implementación será parte de los módulos desarrollados para los procesos de aprendizaje fundamentados en la producción textual, estos módulos hacen parte del proyecto de investigación financiado por Colciencias y la Universidad del Valle: Ambiente virtual basado en agentes software para la enseñanza y el aprendizaje de idiomas. • Se parte de los requerimientos definidos en La plataforma Web para la Enseñanza y el Aprendizaje de Idiomas Extranjeros (Cruz 2006). • Se excluyen algunas pruebas como aceptación, piloto o de campo sobre el prototipo a desarrollar, debido a que sólo constituye una parte del sistema. • El prototipo a desarrollar se enfocará a la escritura en idioma inglés. • Este proyecto no incluirá análisis semántico de textos. • Este proyecto no pretende desarrollar un lexicón y/o un analizador gramatical, se seleccionarán aquellos que cumplan con las características necesarias para el proyecto. Resultados Esperados La relación de los resultados esperados se presenta a continuación a través de una tabla que describe el objetivo específico, el producto y la sección del documento en donde se puede encontrar. Objetivo específico Producto(s) Sección donde se documenta Especificar la Arquitectura Asistente Arquitectura del arquitectura base Virtual. asistente virtual para del asistente virtual en la producción textual términos de agentes sección 7.3.1 software. Analizar y seleccionar el lexicón y el analizador sintáctico a utilizar. Lexicón y los algoritmos de corrección ortográfica y sintáctica. Descripción y selección del Lexicón, analizador Léxico y analizador sintáctico. ______________________________________________________________________ Asistente Virtual para la producción textual 11 Sección 7.1. Definir la interfaz de comunicación entre el Lexicón y el analizador sintáctico. Utilización del lexicón a través del analizador sintáctico para la revisión de textos en el prototipo AVPT. Implementación de las estructuras Macrotextuales y el proceso de recomendación aplicados al prototipo AVPT. Definir la representación computacional de las estructuras macro textuales y el proceso de recomendación que el asistente virtual realizará con base en dicha representación. Desarrollar un Prototipo prototipo del asistente Textual. virtual propuesto. Interfaz de comunicación entre el lexicón y el analizador sintáctico.sección 7.1.3 Representación Computacional De Las Estructuras Macro Textuales Y El Proceso De Recomendación Que El Agente Realiza En Dicha Representación. Sección 7.2 Asistente Prototipo Asistente textual.Sección 8 Tabla 1. Resultados esperados ______________________________________________________________________ Asistente Virtual para la producción textual 12 6. MARCO DE REFERENCIA 6.1 MARCO TEÓRICO 6.1.1 Lingüística Computacional: La lingüística computacional es un campo interdisciplinario ubicado entre la lingüística y la informática, estudia la forma de tratar el lenguaje humano. Su fin es la elaboración de modelos computacionales que reproduzcan distintos aspectos del lenguaje humano (o lenguaje natural), es decir que imiten la capacidad humana de hablar y entender el lenguaje natural. La Lingüística Computacional también conocida como Procesamiento del Lenguaje Natural (PLN), o Natural Language Processing (NLP). Una de las características que hace complicada la transformación del lenguaje máquina al lenguaje natural es la infinitud discreta, es decir, el lenguaje natural es discreto en cuanto a sus unidades, pero infinito en cuanto a las combinaciones que pueden hacerse con estas unidades. Por ejemplo, las palabras son unidades discretas y finitas de la lengua. Sin embargo, combinando un número limitado de palabras se pueden construir infinitas frases. Las principales aplicaciones de la lingüística computacional son: Traducción automática, interacción en lenguaje natural (interfaces y sistemas de diálogo), recuperación y extracción de información, aplicaciones basadas en el texto y aplicaciones basadas en el habla. Aunque existen varias aplicaciones de la lingüística computacional lo que interesa a este proyecto son las aplicaciones basadas en texto. También conocidas como procesamiento del lenguaje natural, dentro del cual se destacan algunas herramientas que normalmente están integradas en los procesadores de texto, como por ejemplo: • Correctores Ortográficos: Son aquellos programas que revisan la ortografía de un escrito y la comparan con el conocimiento lingüístico previamente almacenado, conocidos como lexicones. • Correctores sintácticos: Estos programas revisan la sintaxis de las oraciones, es decir, analizan que tengan sentido o que correspondan a las reglas ortográficas establecidas para el idioma. 6.1.2. Lenguaje Natural Se denomina Lenguaje Natural a un lenguaje escrito o hablado usado por una comunidad que es precisamente lo contrario a un lenguaje para establecer ______________________________________________________________________ Asistente Virtual para la producción textual 13 comunicación con una computadora, mediante la entrada de datos, o la programación de su funcionamiento. (Guzmán 1997). El lenguaje natural es una forma de comunicación imprecisa y ambigua que se apoya en el conocimiento compartido por los que se comunican, en donde se tiene una gran variedad de términos los cuales se combinan respetando un conjunto de reglas sintácticas establecidas, a esto se le conoce con el nombre de sintaxis, la cual se puede modelar mediante la utilización de un lenguaje formal. Asimismo las palabras deben proporcionar un determinado sentido, deben ser comprendidas por un grupo humando en un contexto dado, a esto se le denomina semántica. Tradicionalmente, el lenguaje natural está constituido en cinco niveles: Fonética/fonología, Morfología, Sintaxis, Semántica y Pragmática. Precisamente para efectos del desarrollo de la investigación es de interés definir dos niveles como lo son: la morfología y la sintaxis. La morfología se ocupa de la estructura interna de las palabras (sufijos, prefijos, raíces y flexiones) y el sistema de categorías gramaticales de los idiomas (género, número, etcétera). Los problemas de morfología computacional están relacionados con el desarrollo de los sistemas de análisis y síntesis automático morfológico. La sintaxis se encarga de estudiar las relaciones entre las palabras de la frase. Existen dos modelos para representar tales relaciones: dependencias, en que las relaciones se marcan con las flechas y constituyentes, en que las relaciones existen en forma de árbol. El personaje principal, fundador de la "lingüística generativa", es N. Chomsky. La sintaxis computacional debe tener métodos automáticos para análisis y síntesis, es decir, para construir la estructura de la frase por la frase, o generar la frase con base en su estructura. El desarrollo de los generadores es una tarea mucho más fácil, y está más o menos claro qué algoritmos son necesarios en estos sistemas. Al contrario, en el desarrollo de los analizadores sintácticos (se llama parser), todavía es un problema, especialmente para los idiomas que no tienen un orden de palabras fijo, como en el español (en inglés, el orden de las palabras es fijo. Por eso las teorías basadas en inglés no son fáciles de adoptar al español). El parser es el programa, que, en general, no depende del idioma de la frase de entrada. Lo que depende del idioma es la gramática, un conjunto de reglas en la forma especial. Normalmente el programa hace un análisis morfológico, y después trata de aplicar las reglas gramaticales para cubrir toda la frase. Si no está cubierta toda la frase, entonces no se puede construir el árbol. 6.13 Procesamiento del Lenguaje natural: El procesamiento del lenguaje es de manera general, el conjunto de instrucciones que una computadora recibe en un lenguaje de programación ______________________________________________________________________ Asistente Virtual para la producción textual 14 dado (formal), que le permitirán comunicarse con un humano en su propio lenguaje, (inglés, francés, español, etc). La finalidad fundamental del procesamiento de lenguaje natural es la automatización de los procesos lingüísticos, tales como la comprensión, producción o adquisición de una lengua, tareas que los usuarios de una lengua realizan fluida y naturalmente. El procesamiento del lenguaje natural tiene varias aplicaciones, como las que se describieron anteriormente, pero la más importante para el tema de estudio es el de la corrección de textos que permite la detección y corrección de errores ortográficos y gramaticales, evaluando las estructuras incorrectas en las oraciones escritas. El problema consiste en detectar correctamente los errores de ese tipo, puesto que existe una gran cantidad de estructuras permitidas en cada lenguaje. Para describir las estructuras de las oraciones en el idioma, se usan las llamadas gramáticas formales, o sea conjuntos de reglas que combinan palabras y su orden relativo en las oraciones. Uno de los elementos fundamentales en el diseño de un sistema PLN es sin lugar a dudas la determinación de la arquitectura del sistema, es decir, como se introducen los datos a la computadora y como ella interpreta y analiza las oraciones que le son proporcionadas. A continuación se muestra un esquema del análisis léxico/ sintáctico que manejan las computadoras. El sistema consiste de: primero que todo el usuario le expresa (de alguna forma) al sistema que tipo de procesamiento desea hacer; el sistema analiza las oraciones proporcionadas, en el sentido morfológico y sintáctico; Luego, se analizan las oraciones semánticamente, es decir se determina el significado de cada oración; Se realiza el análisis pragmático del texto. Así, se obtiene una expresión final que es entregada al usuario. 6.1.4 Distancia de edición Ampliamente usado en las áreas de recuperación de la información y ciencias de computación, la distancia de edición es una medida de la distancia de dos cadenas de caracteres. Se basa en contar el número de operaciones mínimas necesarias para convertir una cadena en la otra. Entre sus muchos usos se encuentra, la corrección de errores ortográficos, la búsqueda de genes en bioinformática, el reconocimiento de formas (una vez preprocesadas y expresadas como una cadena de caracteres). En (Marzal & Vidal 93) se propone una normalización de la misma para cadenas de distintos tamaños y sus posibles aplicaciones. En función de cuáles sean estas operaciones existen varias definiciones de distancia de edición y también varios algoritmos para implementarlas. Las distancias más comunes son: • Distancia de Hamming: es el número de caracteres que tienen que cambiarse para que una cadena se convierta en la otra. Dicho de otro modo, sólo acepta la operación de sustitución. ______________________________________________________________________ Asistente Virtual para la producción textual 15 • Distancia de Levenshtein: es la más conocida y usada de las distancias de edición. Se define como el número de operaciones de eliminación, adición y sustitución mínima que se le tienen que realizar a una cadena para convertirla en otra. Existen varios algoritmos para implementar el cálculo de esta distancia. El más usado usa programación dinámica y tiene un coste temporal y espacial cuadrático. Es útil en programas que determinan la similitud de dos cadenas de caracteres, como para los correctores ortográficos. Ejemplo: La distancia de Levenshtein entre "casa" y "calle" es de 3 porque se necesitan al menos tres ediciones elementales para cambiar uno en el otro. 1. casa → cala (sustitución de 's' por 'l') 2. cala → calla (inserción de 'l' entre 'l' y 'a') 3. calla → calle (sustitución de 'a' por 'e') 6.1.4.1 ALGORITMO DE LEVENSHTEIN El algoritmo genera el conjunto de palabras que se encuentran a una distancia D de la palabra a corregir, del conjunto encontrado se hace una selección de las palabras que pertenezcan el diccionario utilizado y entre ellas busca la de mayor frecuencia. Aquí existe una alta probabilidad de que la palabra elegida será la deseada. Con base en este algoritmo están desarrollados los correctores ortográficos de mayor uso como en: Mozilla, Office y Google. El algoritmo como tal se alimenta de un Diccionario, que conforma la base léxica sobre la cual se trabaja en este proyecto. • Distancia de Damerau-Levenshtein: a la distancia de Levenshtein Dameraule añadió la operación de transposición. De esta manera, según él, se pueden detectar el 80% de los errores de escritura, ya sean ortográficos o tipográficos. Para una explicación más detallada (Damerau 64). 6.1.5 Sistemas Multiagentes (SMA) Son sistemas de software basados en unidades (agentes) que tienen las características de funcionamiento continuo y autónomo, comunicación, robustez y adaptabilidad; adicionalmente pueden presentar razonamiento, aprendizaje o movilidad (Sycara 1998; Mas 2005). Es una disciplina que aparece de la confluncia entre Inteligencia Artificial e Ingeniería de Software (Jörg Rech 2004). La activa investigación en este campo ha implicado la ______________________________________________________________________ Asistente Virtual para la producción textual 16 formación de una nueva disciplina llamada Ingeniería de Software Orientada a Agentes (AOSE) (Bernon,Cossentino, and Pav´on 2005a). En AOSE se presentan diversas áreas de investigación, una de ellas es el análisis y el diseño de agentes y de sistemas multiagente (Bernon, Cossentino, and Pav´on 2005b). En esta área las investigaciones se han centrado en idear metodologías para el desarrollo de SMA como GAIA (Wooldridge, Jennings, and Kinny 2000; Wooldridge 2002; Garro, Turci, and Huget 2003), MaSE (DeLoach 1999; DeLoach and Wood 2000; DeLoach 2006), MESSAGE (Leal and Rodríguez 2001), ADELFE (Bernon et al. 2003; Gleizes, Millan, and Picard 2003), PASSI (Cossentino, Sabatucci, and Seidita 2003; Chella et al. 2006), INGENIAS (G´omez-Sanz 2002; Pav´on and G´omez-Sanz 2003), TROPOS (Giunchiglia, Mylopoulos, and Perini 2002; Bresciani et al. 2004) y PROMETHEUS (Padgham and Winikoff 2002) entre otras. Estas iniciativas y otras más son analizadas y contrastadas en (G´omez-Sanz 2002; Wooldridge 2002; G´omez-Sanz 2003; Mas 2005; Bernon, Cossentino, and Pav´on 2005b) para los objetivos del presente proyecto se presentan un cuadro comparativo, sobre las características principales de algunas Metodologías, ventajas y desventajas tabla 2. Debido a la cantidad de propuestas sobre metodologías para SMA, se han realizado esfuerzos para promover estándares. Sobre la representación, hay avances a partir de estereotipos de UML como AUML (Odell, Parunak, and Bauer 2000; Bauer, M¨uller, and Odell 2001; da Silva, Choren, and de Lucena 2004; Bauer and Odell 2005) e iniciativas comerciales como AML (Cervenka and Trencansky 2004). Basados en los logros de AUML, se realiz´o un esfuerzo desde FIPA con el Methodology TC para identificar una metametodolog´ıa (Cossentino, Hopmans, and Odell 2003) y continuando con este trabajo, Agentlink III se esforzó en construir un metamodelo común a las principales metodologías utilizadas en la comunidad de Europa para el desarrollo de agentes y sistemas multiagente (Cossentino, Bernon, and Pav´on 2005). Muchos de estos esfuerzos se han intentado condensar en el roadmap de agentes de Agentlink (Luck et al. 2005). Una iniciativa reciente propone crear un sistema de traducción entre metodologías utilizando una especificación común UML-AT (Fuentes, G´omez-Sanz, and Pav´on 2006). De este estudio sobre las metodologías se puede señalar que Gaia, Ingenias y MaSE, presentan elementos susceptibles de ser integrados en un contexto de creación de juegos educativos, pues Gaia e Ingenias estructuran sus componentes en función de agentes, grupos de agentes y sus interacciones, al igual que se hace con las historias que se crean para los video juegos, MaSE provee ya artefactos en UML ligados a estos conceptos de tal manera que facilita un dialogo entre los diseñadores de la historia y los ingenieros, los cuales se pueden enriquecer con AUML y AML. En cuanto al proceso general, la metodología Passi y su variante ágil pueden hacer un aporte importante. El metamodelo aportado en el trabajo de AgentLink es un punto de partida útil para mantener un marco conceptual cercano a la comunidad de desarrollo de SMA. ______________________________________________________________________ Asistente Virtual para la producción textual 17 En cuanto a lenguaje y plataformas para la implementación de sistemas multiagente, se destacan JADE (Bellifemine et al. 2003), ZEUS, JACK, AgentBuilder y Agent Factory. Para ver una revisión muy completa y actualizada de este tema se puede consultar (Bordini et al. 2006) donde se clasifican en Lenguajes Declarativos, Imperativos, Híbridos, Entornos de Desarrollo integrados, Frameworks y plataformas para el desarrollo de agentes. En este informe se presentan 13 lenguajes, 8 entornos de desarrollo integrado y 4 frameworks de desarrollo. Gracias a su origen en sistemas distribuidos hay un uso muy extendido en entornos de trabajo colaborativo (Antonio et al. 2003), en sistemas adaptativos basados en web (Ardissono et al. 2005), en aprendizaje multi-agente colaborativo (Panait and Luke 2005) y en entornos de aprendizaje distribuido (Lin 2005). 6.1.5.1 Agentes De Interfaz Un agente de interfaz inteligente es un programa que utiliza técnicas de inteligencia artificial para proveer asistencia la usuario de alguna aplicación de computo. El agente busca continuamente la oportunidad de realizar tareas que ayuden a la satisfacción de los objetivos del usuario. Agente y Usuario establecen una especie de contrato donde el usuario da a conocer sus objetivos y el agente ofrece sus capacidades para el logro de estos objetivos [AGUERRA96]. Para el diseño de los agentes de interfaz existen tres tipos de enfoques: La Aplicación como Agente de Interfaz: Consiste en hacer que la aplicación misma tenga la funcionalidad de un agente de interfaz. En Oval [LAI88], utilizan agentes semi-autónomos que están constituidos por un conjunto de reglas programadas por el usuario. Estas reglas determinan el comportamiento de un agente ante una tarea dada. Basado en el Conocimiento: Se utiliza un modelo del usuario y un modelo de la aplicación, de donde el agente pueda extraer el conocimiento necesario para reconocer los planes del usuario y encontrar la oportunidad de contribuir con ellos. Este es el enfoque más utilizado en trabajos de interfaces inteligentes [SUL91]. Basados en Aprendizaje: Es una técnica de aprendizaje automático, la idea central es que a partir de un conocimiento mínimo de la aplicación, el agente aprenda a realizar su trabajo observando al usuario y a otros agentes. ______________________________________________________________________ Asistente Virtual para la producción textual 18 Metodología Vowel Engineering Elementos Básicos Estrategia Agente, Entorno, Es una capa interacciones y middleware, donde cada Organizaciones. elemento es un componente sustituible. Ventajas Su enfoque basado en componentes que ayudara a la reutilización de código. Desventajas No tiene herramientas. No cuenta con lenguajes. No define interrelaciones entre los módulos. Las herramientas no son fáciles de obtener. Falta de notaciones para definir los procesos. MASCommonKAD S Agente, Tareas, experiencia, Coordinación, Comunicación, Organización, Diseño. Se basa en una metodología de ingeniería de software conocida, que plantea todo el ciclo de vida del software, de forma completa y rigurosa. Su unión con la metodología en espiral. Define la relación entre módulos y entre agentes. Cantidad de Herramientas. Se adapta al tamaño del proyecto. BDI Agentes, Modelo del mundo, Sensores, Estímulos, Creencias, Deseos, Intenciones. Se inspira en el modelo cognitivo del ser humano. Desde el Exterior caracteriza las clases de agentes y al interior define un conjunto de modelos que definen una estructura sobre el estado. Permite un proceso de refinamiento sucesivo e incremental de las características internas y externas. La formalidad en el planteamiento de los modelos. Falta de Herramientas de soporte. Metodología basada en heurísticas, sin proceso riguroso. MaSE (Multiagent systems Software Engineering). Agentes, Objetivos, Basada en el paradigma Conversaciones, Roles y orientado a objetos Tareas. donde los agentes son objetos especializados. Se usan Diagramas (en el análisis) de objetivos, Quien conoce el paradigma OO se puede adaptar fácilmente. La herramienta AgentTool soporta los pasos de la metodología y genera El uso intensivo de maquinas de estado. Falta de intercomunicación entre módulos. Aún en cambios pequeños se ______________________________________________________________________ Asistente Virtual para la producción textual 19 de roles, de casos uso, (en el diseño) clases de agentes, componentes y despliegue. Metodología ZEUS GAIA de código de automáticamente. de de Elementos Básicos Estrategia Agentes, Roles y Se basa en las Comunicaciones. investigaciones en el área de agentes. Combina planificación, ontologías, asignación de responsa- bilidades, relaciones sociales entre agentes en un entorno ejecutable. Usa diagramas UML de clases y de colaboración, mas fichas. Organización, Colección Permite el diseño de de roles, Patrones de sistemas basados en interacción, Agentes, agentes cuyo objetivo es Servicios y Conocidos. obtener un sistema que maximice alguna medida de calidad global. Análisis y Diseño basados en modelos de roles, interacciones, agentes, servicios y conocidos. Se apoya en debe regenerar todo el código. Ventajas Se basa en el paradigma de agentes. Incluye herramientas como el Visor de sociedad, Herramienta de control y Generador de informes. Desventajas Se distancia un poco del proceso de producción de software (Ing. De Sofá). Falta una metodología mas completa y detallada La herramienta exige una curva de aprendizaje muy elevada. Facilita las primeras etapas del análisis y diseño del proyecto. Independencia de la plataforma de desarrollo y de los lenguajes. El uso de lenguajes formales para especificar los diseños. No hay claridad sobre el proceso de pasar los diseños a las plataformas y lenguajes. Faltan formas de especificar las interacciones entre los modelos. Falta de herramientas. ______________________________________________________________________ Asistente Virtual para la producción textual 20 INGENIAS Agentes, Interacciones, Objetivos. técnicas OO. Entorno, Se define un conjunto de Tareas y metamodelos con los que hay que describir el sistema, por medio del lenguaje GOPRR. El flujo de trabajo se basa en el Proceso Unificado. Uso de herramienta INGENIAS IDE para el modelado visual y la documentación. Generación flexible de código ejecutable. Parece pensada sólo para problemas complejos (grandes). No se ha probado completamente su eficiencia en problemas reales. Se depende de la tesis del autor para comprender adecuadamente la herramienta. Tabla 2: Metodologías para el diseño de Sistemas Multi-agente. ______________________________________________________________________ Asistente Virtual para la producción textual 21 6.1.6 ESTRATEGIAS DE APRENDIZAJE La estrategia de aprendizaje propuesta por Martha Isabel Berdugo y Nancy Pedraza, profesoras de la escuela de ciencias del lenguaje de la universidad del valle, se define bajo los siguientes términos, se tomaran en cuenta solo las estrategias utilizadas en el proyecto de investigación: 6.1.6.1. LA ESCRITURA Y EL PROCESO DE COMPOSICIÓN ESCRITA 6.1.6.1.1 ENFOQUE TEXTUAL Y DISCURSIVO La propuesta central consiste en abordar el problema de la composición textual en el entorno virtual. Partimos de un concepto de texto como unidad discursiva y de secuencias textuales (narrativas, descriptivas, explicativas, expositivas, argumentativas, dialógicas...), las cuales se enmarcan a su vez en el concepto más amplio de género discursivo, tal como lo plantea Jean Michel Adam (1992, 1996, 1999). También se tienen en cuenta otras propuestas para la enseñanza de la composición, por ejemplo, la de Camps (2003) sobre las secuencias didácticas para la escritura. La hipótesis que subyace a este propuesta es la siguiente: un modelo pedagógico de escritura colaborativa asistida por la internet, sustentado en los presupuestos epistemológicos del constructivismo, de un lado, y de los presupuestos interaccionistas, socioculturales y metacognitivos, de otro, puede ayudar a promover procesos de escritura significativa que aborden la compleja red de variables inherentes a los procesos de comprensión y composición textual. 6.1.6.1.2 LA ENSEÑANZA DE ESCRITURA POR PROCESOS LA COMPOSICIÓN ESCRITA: LA La escritura por procesos, propuesto entre otros por Gordon Rhoman (1965, en Cassany 1996), representa el giro dado a la perspectiva tradicional sobre la producción textual. Si bien hasta hace algunas décadas todo el énfasis recaía sólo en el texto final producido, actualmente existe un consenso total sobre la necesidad de adoptar una mirada procedimental que posibilite una mirada holística sobre todas las fases y subfases que intervienen en el proceso real de construcción textual por parte de escritores expertos. Este giro ha originado diferentes modelos que intentan delimitar lo que sucede durante los tres momentos globales del proceso. Estos tres momentos han sido resumidos en términos sencillos como la fase de preescritura (planeación), la fase de escritura propiamente (textualización), y finalmente, la fase de revisión. Otros autores prefieren situarse en una perspectiva de la tarea de escritura como un proceso cognitivo de resolución de un problema (Flower y Hayes 1981; Bereiter y Scardamalia 1987). Otros, a su vez, agregan a esta mirada netamente ______________________________________________________________________ Asistente Virtual para la producción textual 22 cognitivista, las dimensiones metacognitivas y, finalmente, otros enfatizan además las dimensiones socioafectivas que median el proceso. Dos modelos que han originado una importante tradición investigativa en el contexto de la escritura por procesos son el modelo de Flower y Hayes (1981) y el modelo de Bereiter y Scardamalia (1994). El primero de ellos se centra en los aspectos cognitivos del proceso de composición; el segundo delimita dos procesos denominados "decir o repetir el conocimiento" (knowlege telling) y "transformar el conocimiento" (knowledge transforming). Estos dos pocesos de composición textual son antagónicos pero constituyen una unidad global, dado que escribir es, al mismo tiempo, algo natural y algo problemático. El proceso natural da lugar a la concepción de la escritura dentro del modelo decir (repetir) el conocimiento. Por el contrario, en el proceso problemático se percibe la escritura dentro del modelo transformar el conocimiento. La diferencia entre ambos modelos no se establece en términos de los tipos de textos producidos, sino de los procesos y estrategias que llevan al escritor a la generación del texto escrito. Cada uno de estos modelos caracteriza a un tipo de escritor: el primero a los escritores poco expertos y el segundo a los expertos. 6.1.6.1.3 LA ESCRITURA COLABORATIVA El campo de la escritura colaborativa asistida por computador (actualmente la internet), ni es nuevo ni ha estado desligado de las propuestas y concepciones teóricas que orientan la investigación sobre los procesos de producción textual a nivel internacional. Una simple revisión bibliográfica muestra que desde comienzos de los años 90, cuando aún los avances tecnológicos informáticos eran rudimentarios (procesadores 8086 y siguientes, versiones iniciales de Windows, etc.) había una gran actividad investigativa sobre temas como: tareas de escritura colaborativa e interacción entre pares (escritura y revisión individual y cooperativa asistida por computador). Todas estas propuestas fueron creando una sólida tradición y un saber-hacer legitimado por reglas y principios teóricos fundamentados en las adquisiciones del constructivismo, de la metacognición, la lingüística textual, etc. Este tipo de propuesta pedagógica de escritura proporciona una racionalidad, unas herramientas y unos espacios que permiten dar cuenta de todos los aspectos que se han señalado desde diversos modelos de producción y comprensión textual. Tal vez lo más importante sea que en el contexto de la escritura colaborativa asistida por la internet se puedan llenar los vacíos pragmáticos de algunos de los modelos de escritura más interesantes (sobre todo aquellos que no parecen contemplar de manera integral la ejecución de las operaciones de escritura y sólo hacen énfasis en el aspecto retóricolingüístico), o incluso, se pueda realizar una articulación de las propuestas pedagógicas de Camps (1996), Seow (2002) y otros, con las modelos de Flower y Hayes (1981) y de Scardamalia y Bereiter (1987). Se trata en este estudio de ver, por ejemplo, de qué modo las herramientas hipertextuales pueden apoyar la reflexión (cognitiva y metacognitiva), la realización de diferentes formas de interacción social y trabajo colaborativo durante el proceso de transformación y producción del conocimiento y de construcción de sujetos epistémicos. ______________________________________________________________________ Asistente Virtual para la producción textual 23 6.2 ANTECEDENTES A continuación se presentarán algunas reseñas correspondientes a proyectos relacionados con agentes software aplicado a sistemas conversacionales y a desarrollos realizados en el procesamiento del lenguaje natural. Estas investigaciones proporcionan aspectos y elementos relevantes para especificar un proyecto de este tipo, además de aportar las bases para el desarrollo de esta propuesta. Embodied Agent for Multi-party Dialogue in Immersive Virtual Worlds. David Traum and Jeff Rickell. University of Southern California. A partir de este proyecto se plantean unas pautas para aplicar el concepto de agentes a sistemas conversacionales, siendo el objetivo principal presentar una mayor expresividad con los elementos disponibles del lenguaje. Para lograr este propósito. Se emplea una arquitectura por capas, la cual está conformada por: la capa de contacto la cual indica si los contactos de un usuario pueden ser accedidos para una conversación, la capa de atención que presenta el proceso u objeto que los agentes atienden y como ultimo la capa de conversación que indica los parámetros que se manejan en la conversación. El proceso consiste en llevar una especie de historial de los diálogos que se han mantenido entre agentes, esto permite ubicarlos dentro de un contexto y responder cosas coherentes ante las solicitudes realizadas. Las conversaciones que se manejan aquí funcionan bajo templates o plantillas sobre las condiciones o percepciones que se tiene del mundo y acciones a seguir dependiendo del tipo de condición presentada. Una de las debilidades que se pueden presentar en el modelo es que si la comunicación o una de sus capas falla este podría perder el sentido de las conversaciones o habría un tiempo de retardo en la respuesta ante los eventos generados por el usuario, las plantillas no le permiten al agente responder de forma natural puesto que si el usuario genera un dialogo no incluido en estas plantillas el agente no le podrá responder coherentemente, aunque existe una gran variedad de palabras esta limitante no lo dejaría actuar de una forma ideal. El historial elaborado con base en las conversaciones de los agentes es muy conveniente para controlar el manejo del lenguaje natural puesto que le permite enmarcarse en un contexto y una situación. Las reglas de reconocimiento, selección y realización ayudan a llevar el flujo común de un dialogo puesto que ellas asocian el comportamiento observado, generan los actos de habla y señalan el comportamiento en un contexto determinado. De esta forma se logra agregar un poco de realidad a los participantes del ambiente virtual. ______________________________________________________________________ Asistente Virtual para la producción textual 24 El artículo propone la utilización de plantillas, con esta técnica el agente solo podrá ser utilizado para las plantillas para las que fue diseñado. Por lo tanto aplicando esto al proyecto se restringe para el uso de recomendaciones en solo algunos párrafos, y en el caso de que se quisieran trabajar nuevos tipos párrafo no se podría hacer porque se está limitando a las posibilidades que ese momento le ofrece la aplicación. Por este motivo, se pensó incluir en el proyecto que la creación de los tipos de párrafo de manera genérica de tal forma que se pueda ampliar el campo de trabajo y las diferentes recomendaciones que presenta el agente. Lessons Learned in Building Spoken Language Collaborative Interface Agents.Candace L. Sidner, Carolyn Boettner, Lotus Development Corporation and Charles Rich, Mitsubishi Electronic Research Laboratory. Presenta el desarrollo de interfaces utilizando un lenguaje colaborativo de agentes con las aplicaciones de e-mail y planeación de reuniones, su realización se basa en lingüística computacional, específicamente en el discurso colaborativo, de esta forma el agente toma un rol activo en la solución de problemas, incluyendo consejos para el usuario cuando tiene problemas o sugerencias cuando está perdido. La estructura del agente está basada en tareas, los agentes empleados están programados bajo la estructura de acción-reacción. Sus limitantes se basan en el rango de expresiones que el agente puede atender e interpretar principalmente en el reconocimiento de algunas secuencias textuales. La ventaja que ofrece este proyecto es que incluye el desarrollo de un parser para el vocabulario y la gramática, permitiendo de esta forma un poco de análisis semántico en la aplicación resultante, siendo ésta un acercamiento a lo que se desea obtener con los procesadores del lenguaje natural. El procesamiento de lenguaje natural completo, hasta el análisis semántico, este proceso requiere de mucho trabajo y es muy complejo, por lo tanto el desarrollo bajo estos términos para el proyecto se verá restringido por el análisis léxico y sintáctico , de acuerdo a estos parámetros, el proyecto en su nivel básico de PLN hará recomendaciones léxicas ,sintácticas y macro textuales diseñadas para trabajar con un corpus de 10 textos, teniendo en cuenta que el proceso de recomendación macro textual estará guiado por un agente reactivo basado en modelos, quien trabaja sus sugerencias de acuerdo al tipo de párrafo o texto y la sección en la que se encuentre escribiendo el usuario. Esta se hará efectiva dependiendo de las reglas alimentadas en el agente y lo que tenga disponible en su base de conocimiento. Al ser desarrollado el asistente bajo esta estructura se soportarán mayor cantidad de eventos de los que se podrían manejar con un procesamiento de lenguaje natural más complejo. ______________________________________________________________________ Asistente Virtual para la producción textual 25 A multiple-Application Conversational Agent. Steven Ross, Elizabeth Brownholtz and Robert Armes, IBM Reserarches. Sitúa a los agentes en un ambiente conversacional, con una estructura basada en: una ontología, la especificación de una sintaxis y un lexicón. La ontología se utiliza para crear un estándar de comunicación entre agentes, la especificación de sintaxis se encarga de crear una gramática que va a ser parte central del parlamento del agente y esta a su vez es fusionada con el Lexicón proporciona sinónimos e información que forma parte de los términos utilizados en la ontología. Para realizar el análisis semántico es decir proveer el significado de las sentencias, se agregan pesos según el grado de importancia que tenga cada una de las palabras en una expresión. También el sistema de dialogo está basado en reglas que ayudan a evitar la ambigüedad y a proveer el significado de algunas oraciones, basado en estos patrones el agente recupera la información y responde con una acción o información ante la solicitud de un usuario. El aporte del artículo al proyecto se basa en la especificación de la sintaxis que se va aplicar al agente para la realización de sugerencias a la parte de la escritura correcta de oraciones. La arquitectura propuesta está formada por dos elementos: el lexicón y las reglas sintácticas, que en conjunto hacen el sistema de recomendaciones sintácticas, por otra parte, aquí no existe el problema de estructurar un diálogo puesto que el usuario no hace preguntas puntuales al sistema, sino que este hace las recomendaciones que cree son pertinentes en cuanto a la escritura correcta de una sentencia. Language use in context. Janice Wieber, Principal Investigator in the computing Reserarch Laboratory at New Mexico State University. Graeme Hirst, Professor at the Toronto University. And Diane Horton Lecturer at the Toronto University. Se plantea presentar el texto o el diálogo como una unidad completa compuesta de partes interrelacionadas y no como sentencias aisladas. Se realiza la segmentación de un discurso en donde se agrupan las sentencias dependiendo de su relación y se verifica a su vez las relaciones existentes con otro grupo de sentencias, la idea es encontrar como se relacionan todas las partes de un discurso y eliminar la ambigüedad según las características del texto. Su metodología permite llevar relaciones de coherencia entre los eventos del discurso para dar sentido a una conversación. Se crean relaciones de implicación temporal aplicando la propiedad transitiva, gracias a estas relaciones si algo no ha sido bien interpretado, en un futuro se puede corregir y continuar con la conversación. ______________________________________________________________________ Asistente Virtual para la producción textual 26 Como el sistema cuenta con relaciones temporales existen problemas en la generación de planes, creencias y metas, puesto que los elementos de la aplicación tratan de corregir los errores de interpretación en una conversación y cuando se realizan cambios al dialogo estos deben ser generados de nuevo. Tomar el texto como un todo compuesto por partes interrelacionadas, facilita la tarea del proceso de recomendación que se deben tener en cuenta para la escritura de un párrafo o texto, puesto que de esta manera se puede puntualizar sobre los diferentes problemas que un usuario tiene al momento de escribir sobre una sección del texto. New Posibilities in Machine translation. Eduard H. Hovy, Information Scinces Institute of USC. Define los elementos necesarios para la traducción de máquina, entre ellos están: un parser, un generador, gramáticas para cada lenguaje, lexicones para cada lenguaje, una semántica basada en conocimiento y las reglas de traducción entre lenguajes. El parser indica la forma interna de representar los aspectos sintácticos y semánticas de los datos proporcionados como entrada, el generador se encarga de proporcionar una salida con la misma forma sintáctica de lo presentado en la entrada, las gramáticas (información sintáctica) son partes intrínsecas del parser y del generador, se puede utilizar la misma para analizar y producir cada lenguaje, la base del conocimiento contiene la ontología del dominio de la aplicación sus entidades y posibles relaciones, los lexicones son requeridos para el lenguaje fuente y el lenguaje núcleo. Un aporte de este proyecto es el desarrollo de análisis semántico para la interpretación de las gramáticas asociadas a cada idioma, puesto que el sistema necesita aplicar una técnica para el problema de entendimiento. El proceso de traducción que plantea este texto, pretende alcanzar una buena interpretación basada en los lexicones y reglas sintácticas de cada lenguaje, esto implica que debe existir cierta estructura semántica que apoye este proceso, pero esto no es suficiente para que existe un adecuado proceso de traducción, puesto que para lograr este resultado es necesario que el texto ingresado se centre en un contexto para esta se haga de una forma más acertada y se puedan eliminar los problemas de ambigüedad. Creating Natural Language output for Real-Time Applications. Susan W. McRoy, Songsack Channarukul and Syed S. Ali, Natural Language and Knowledge Representation Research Group Electrical Engineering and Computer Science Wisconsin - Milwaukee. Manifiesta que en un lenguaje debe predominar la expresividad y la brevedad. La expresividad se presenta de tal forma que la información será generada sobre un conjunto de entidades señalando la información sobre propiedades abstractas que es difíciles de visualizar, conciso de tal forma que pueda ser ______________________________________________________________________ Asistente Virtual para la producción textual 27 interpretado de acuerdo al contexto en el que es utilizado, especificando el contenido y el conjunto d restricciones lingüísticas a las que está asociado el texto. La realización de un texto en lenguaje natural produce una secuencia de palabras que expresan el contenido y satisfacen las restricciones. Estas restricciones son las siguientes: La primera es que el diseño debe estar habilitado para anticipar todas las posibles secuencias de salida además de mostrar el programa lógico necesario para generarlas correctamente y en el tiempo indicado, como segundo debe estar habilitado para generar las salidas en lenguaje natural rápida y dinámicamente. Para lograr el propósito en cuanto a expresividad y brevedad de un lenguaje, se presentan unos métodos empleados para la generación de textos, como: planeación de textos y la planeación de sentencias. La planeación de textos se compone de dos tareas: determinación del contenido y estructura del diálogo. La determinación del contenido se refiere a la información que debe ser incluida en la generación de texto y a la extracción de ésta información desde la base del conocimiento de una aplicación. La estructura del discurso involucra la organización del contenido dentro de un orden coherente, comprensible y conocido en las metas de comunicación de una aplicación. Como resultado de estos dos elementos se obtiene un plan de texto con información relevante y organizada. En la planeación de sentencias el objetivo es mejorar la fluidez o entendimiento de un texto, utiliza un árbol con las siguientes sub-tareas: lexicalización, agregación y la generación de expresiones de referencia. La lexicalización se refiere a encontrar palabras particulares o frases que son requeridas en la comunicación y que especifican el contenido, la agregación se encarga de decidir cómo podrían ser combinadas las partes de un texto, la generación de expresiones de referencia involucra la selección de pronombres o frases que podrían identificar una entidad en un contexto corriente. También se hace referencia a varios proyectos que hacen el procesamiento del lenguaje natural, FUF/SURGE donde FUF es el formalismo declarativo para la realización de textos, SURGE es una gramática usada para la generación de textos en Ingles que ha sido escrita en FUF, es portable y reusable para cualquier dominio porque está encapsulado en el conocimiento de gramáticas para Inglés. Las entradas al sistema son especificadas como una descripción funcional que incluye un conjunto de estructuras temáticas, categorías sintácticas y palabras del contenido. FUF/SURGE puede generar automáticamente palabras tales como artículos, pronombres y conjunciones. REAL PRO es un sistema de realización de texto comercial, su estructura se basa en las características, captura relaciones sintácticas con las sentencias que van a ser generadas. Estas sentencias generadas como salida se hace relativamente de forma rápida, pero las salidas formadas son limitadas por la gramática suministrada. ______________________________________________________________________ Asistente Virtual para la producción textual 28 TG/2 implementa la realización de texto como un sistema de producción, cualquier regla de producción puede salir como texto evaluado en una plantilla, como una condición u otra regla de producción. Las entradas en este sistema son dadas en un lenguaje de generación de interfaces ( generation interface language (GIL))y las reglas de producción son escritas en un plantilla para la generación del lenguaje (template generation language (TGL)). Finalmente como propuesta del artículo se tiene a YAG (yet another generator) es un sistema de realización de texto que se implementa como generalización basado en la aproximación utilizando plantillas, implementa un lenguaje declarativo para especificar las plantillas, soporta varios aspectos de aproximaciones clásicas (canned text, template-based text, phrase- based realization, feature based realization) , emplea variables simples o acompañadas de reglas condicionales, realiza la definición de frases sintácticas y maneja la recursividad de los sistemas basados en frases, permite agregar restricciones sintácticas, de acuerdo a la información dada como entrada el sistema recupera una plantilla adecuada para esta. La colección de plantillas está organizada en librerías y lexicones. El artículo proporciona un modelo para la especificación y presentación de contenido al usuario, dando unas pautas las cuales permiten anticipar todas las posibles secuencias de salida además de mostrar el programa lógico necesario para generarlas correctamente basado en dos elementos principales: el primero consiste en la determinación del contenido, que es la información que debe ser incluida en el texto y el segundo la estructura del discurso que es la presentación del contenido en un orden coherente, estos módulos son muy importantes si se quiere presentar al usuario las recomendaciones de una forma más natural. Un modelo para la conversación multi-modal hombre-máquina: Integración del habla y la acción. Luis Villaseñor y Manuel Montes, Laboratorio de Tecnologías del lenguaje Instituto Nacional de Astrofísica, Óptica y electrónica. Jean Caelen, Federation IMAG Campus Universitaire. Son interfaces multimodales donde la interacción es cada vez más simple y natural. Desarrolla una lógica de diálogo a partir de los actos de habla, menciona que el dialogo debe ser manejado de la siguiente forma: por una parte la máquina debe adquirir los conceptos manipulados a través del lenguaje través del lenguaje y que son a menudo <<naturales>>para el usuario, y por otro lado, ella debe aprender de nuevos planes de acción en un contexto dado y además de ser lo suficientemente genéricas para ser reutilizables. El modelo de este software está basado o dirigido por los estados mentales que sustentan las creencias, las acciones y las intenciones del usuario. Basándose en las creencias, percepciones y acciones del agente de escritura se plantea un modelo para respuesta al usuario basado en un sistema de recomendaciones a nivel textual, no se hace a nivel conversacional como lo plantea el texto. Puesto que uno de los mayores problemas que se presenta en estos sistemas es la eliminación de la ambigüedad y si el sistema no se sitúa ______________________________________________________________________ Asistente Virtual para la producción textual 29 en un contexto bien limitado podría presentar respuestas al dialogo de forma incoherente o muy diferente a lo que el usuario desea obtener como respuesta a su pregunta. Análisis sintáctico Automático del Español Utilizando Material de Entrenamiento en Ingles. Gabriel Infante López. Universidad Nacional de Córdoba. Presenta dos estrategias para hacer análisis sintáctico, la primera consiste en crear un conjunto de reglas o gramáticas manualmente y en la segunda consiste en reglas que se generan automáticamente a partir de oraciones que han sido asociadas manualmente a una estructura sintáctica. Indica que existen algunos trabajos previos con algoritmos para análisis sintáctico que presentan buenos resultados para el idioma inglés, pero no sirven para otros idiomas. La hipótesis que emplea este trabajo de investigación es lograr que las reglas que se aprendan para el idioma inglés sean validas para el español, y que no todas las reglas necesarias para el español serán utilizadas en el inglés. Se modelan reglas genéricas para proyecto seleccionando el idioma Inglés, estas se hacen basadas en el planteamiento que hace el artículo, si se desea mejorar el nivel de las sugerencias se debe dejar abierto el modelo para que nuevas reglas puedan ser ingresadas y así mejorar el proceso de recomendación léxica y sintáctica de un texto. En cuanto a procesadores de texto, existe una variedad de aplicaciones que hacen recomendaciones a nivel ortográfico y de contenido entre ellas se tiene a uno de los más conocidos “Microsoft office Word” que a medida que va presentando sus versiones mejora la calidad de recomendaciones realizadas, siguiendo en todas ellas la misma estructura. A nivel de aplicaciones disponibles en el Web solo se encuentran los denominados editores de texto que proporcionan sugerencias en la forma como por ejemplo: tipo de letra, color de fondo, tamaño de la letra, etc. De esta forma uno de los aportes de la propuesta será el de presentar una herramienta que permita hacer recomendaciones en línea, a nivel ortográfico y sintáctico de los escritos realizados por los usuarios, además de que la realización de producciones textuales serán guiadas por las sugerencias que efectúa el tutor, sustentadas en la estructura y características de determinados tipos de texto. Los autores relacionados anteriormente presentan varios aspectos que se deben tener en cuenta tanto para el análisis como para la generación de un lenguaje natural. Pero dentro de las investigaciones realizadas no se ha encontrado un proyecto que utilice conjuntamente los elementos necesarios para el desarrollo de esta propuesta como lo son: Agentes software, aplicaciones e-learning y procesamiento del lenguaje natural. Siendo estas áreas de vital importancia para crear aplicaciones e-learning interactivas, de fácil uso y entendimiento para el usuario. De esta manera la propuesta de este ______________________________________________________________________ Asistente Virtual para la producción textual 30 proyecto contribuirá a otros investigadores en los hallazgos, ventajas y dificultades obtenidas en este proyecto. 6.3 MARCO CONCEPTUAL Recomendación Macro Textual: Se conoce como recomendación macro textual a las recomendaciones que hace el sistema en cuestión a la estructura y características que debe tener cada texto. La idea es que un usuario pueda detectar las falencias en sus composiciones textuales, antes de ser enviado al profesor para su respectiva calificación. Agente Software: Un agente es una entidad de software que funciona continua y autónomamente en un medio particular a menudo habitado por otros agentes y procesos sin requerir de guía constante o intervención humana. Es decir, un asistente personal que está dentro del computador y que cumple varios roles en representación de una función específica o de un usuario. Las características esenciales para ser considerado como agente inteligente son: comunicativo, autónomo y adaptable. AS: Análisis Sintáctico: Es la revisión realizada en cuanto a la sintaxis de las oraciones, es decir, se analiza que tengan sentido o que correspondan a las reglas ortográficas establecidas para el idioma. Lexicón: un lexicón computacional es cualquier repositorio de información estructurado y almacenado en soporte magnético. Según su naturaleza, las unidades del lexicón pueden distinguirse entre: Categorías léxicas o abiertas:Los sustantivos, los verbos y los adjetivos son representantes de este tipo de unidades léxicas.Son aquellas que poseen carácter referencial (es decir, las que designan procesos, propiedades, acciones o entidades). Se caracterizan por formar un inventario abierto (no existe un número específico y limitado para estas unidades). Categorías funcionales o cerradas: Son aquellas que sólo poseen significado gramatical (es decir, que son fundamentales para la generación de una oración pero que, sin embargo, no tienen significado referencial). Se caracterizan por formar un inventario cerrado. Las conjunciones y los artículos son representantes de este tipo de unidad. ______________________________________________________________________ Asistente Virtual para la producción textual 31 PLN: Procesamiento del Lenguaje Natural: El procesamiento del lenguaje es de manera general, el conjunto de instrucciones que una computadora recibe en un lenguaje de programación dado (formal), que le permitirán comunicarse con un humano en su propio lenguaje, (inglés, francés, español, etc). El procesamiento del lenguaje natural presenta múltiples aplicaciones: Corrección de textos, Traducción automática, Recuperación de la información, Extracción de Información y Resúmenes, Búsqueda de documentos, Sistemas Inteligentes para la Educación y el Entrenamiento. Secuencias textuales: Hace referencia a las producciones textuales elaboradas por estudiantes en el proceso del desarrollo de una actividad impuesta por el docente. ______________________________________________________________________ Asistente Virtual para la producción textual 32 7. ESPECIFICACIÓN ASISTENTE VIRTUAL PARA LA PRODUCCIÓN TEXTUAL (AVPT) El ambiente virtual basado en agentes software para la enseñanza y aprendizaje de Idiomas mejor conocido como LingWeb, tiene características de un sistema de gestión de cursos en línea diseñado para tres perfiles: administrador, docente y estudiante. Cuenta con herramientas para el trabajo autónomo e interacción con los usuarios, que pone a disposición un conjunto de artefactos como el agente pedagógico virtual desarrollado en el proyecto AVPT el cual permite el acompañamiento y retroalimentación del desempeño del estudiante durante el trabajo en el entorno. También se ofrecen herramientas de comunicación como: el foro, el chat, la cartelera, y comentarios que hacen posible la participación interactiva de docente-estudiante, además el proceso de escritura está apoyado por diferentes herramientas como: ejercicios de planificación en el chat, escritura en coautoría y el asistente de producción textual; por otro lado la plataforma permite realizar la corrección entre pares que se hace presente a través de los comentarios globales y por sección que permite realizar el editor LingWeb. Para finalizar la revisión léxico-gramatical para corrección ortográfica y sintáctica de textos proporcionada por el asistente gramatical. 7.1 DESCRIPCIÓN Y SELECCIÓN DEL LEXICÓN, ANALIZADOR LÉXICO Y ANALIZADOR SINTÁCTICO Para realizar el proceso de escritura es indispensable contar con aquellos elementos que permitan realizar procesamiento de lenguaje natural. Por lo general con la ayuda de estos elementos como el lexicón o diccionario de términos, el analizador ortográfico y el analizador sintáctico se logra tener un texto escrito adecuadamente El lexicón es el encargado de almacenar todos los términos asociados a un lenguaje. Su labor principal es almacenar todos los lexemas pertenecientes a un idioma, en este caso se utilizará un lexicón correspondiente al idioma Inglés, definido por las necesidades de la aplicación software principal con la que se va a trabajar. El corrector ortográfico es el encargado de sugerir sobre la correcta escritura de una palabra en el caso de que el usuario haya tenido errores en el proceso de escritura. Y el corrector sintáctico es el que trata de corregir los errores en las estructuras de las frases construidas con base a reglas que rigen la gramática. Para realizar una adecuada selección de herramientas de análisis ortográfico y sintáctico, es importante estudiar las posibilidades del ambiente de ______________________________________________________________________ Asistente Virtual para la producción textual 33 procesamiento de lenguaje natural, puesto que esta área tiene mucha trayectoria e investigaciones exitosas sobre el tópico de este proyecto. Existen características importantes que para el marco de este proyecto deben cumplir las herramientas a explorar, algunas de ellas son: deben funcionar en ambientes Web, deben ser de libre distribución y deben aplicar el procesamiento de lenguaje natural a la escritura de textos. Teniendo en cuenta las características mencionadas anteriormente se establecieron algunos criterios de selección que permitieron evaluar las herramientas. Los criterios son: integración con JAVA puesto que la aplicación base está desarrollada bajo esta tecnología; software libre o de licencia abierta debido a que en el marco general del proyecto se tiene como filosofía el uso de herramientas de libre distribución para evitar los costos de licenciamiento; el contexto de aplicación debe ser general buscando que se pueda trabajar con todos los lexemas y formas gramaticales asociadas a un idioma; el formato debe ser basado en el idioma inglés como uno de los requerimientos de la aplicación principal; el código debe ser abierto por si es necesario alguna modificación o adaptación a la plataforma donde se va a utilizar; debe ser compatible con la tecnología Web dado que la plataforma base (Lingweb) funciona en este tipo de ambientes; debe tener un algoritmo eficiente, entendiéndose por eficiente, que este algoritmo sea parte integral del servicio y no use herramientas externas que generen mayor costo computacional, especialmente en la parte del cliente puesto que para la gestión de unidades léxicas la consulta a la propia base de datos será más eficiente que la consulta a una herramienta externa. Además como el lexicón puede ser accedido a través de un servicio este ofrece la facilidad de ser utilizado por otras aplicaciones si así se desea. En la tabla 4 se aprecian los resultados de la evaluación de las herramientas de acuerdo a los criterios de selección definidos. En la tabla 3 se presentan las características del lexicón, analizador ortográfico y sintáctico de cada una de las herramientas de análisis estudiadas, estos constituyen los elementos de PLN (procesamiento de lenguaje natural) tratados en el proyecto. Se exploraron alrededor de 20 herramientas de las cuales 10 han sido descritas bajo las siguientes características: Alcances del análisis, lenguaje de programación, integración con otros lenguajes, dominio, idioma, reglas de escritura gramatical. La parte de alcances del análisis es la que hace referencia hasta qué etapa de análisis procede la herramienta estudiada, es decir, si provee solamente el lexicón, o realiza análisis ortográfico o análisis sintáctico o lo ideal es que provea hasta análisis sintáctico incluyendo el análisis ortográfico y el lexicón; el lenguaje de programación se refiere al lenguaje sobre el cual está desarrollada la herramienta; la integración con otros lenguajes indica si la herramienta analizada se pueda integrar con J2EE para que pueda ser empleada en el proyecto; el dominio tiene que ver con el campo de aplicación de la herramienta buscando que sea general y que no restrinja las palabras del lenguaje; el idioma hace referencia a que las palabras del lexicón, las reglas sintácticas y ortográficas deben ser aplicadas al idioma inglés; y las reglas gramaticales si ______________________________________________________________________ Asistente Virtual para la producción textual 34 las hay deben ser correspondientes a un contexto general y aplicables para el idioma Inglés. A continuación se presentan en las tablas 3 y 4 los resultados de la evaluación de las herramientas exploradas en función de sus características y criterios de selección respectivamente. ______________________________________________________________________ Asistente Virtual para la producción textual 35 HERRAMIENTAS DYPAR –I Interprete de lenguaje natural ELEMENTO LEXICÓN ANALIZADOR NO SI LÉXICO ANALIZADOR SI SINTÁCTICO IERL Sistema de representación de conocimiento basado en reglas de inferencia. ASPSpellCheck Es un corrector ortográfico desarrollado por Microsoft ISPELL LEXICÓN ANALIZADOR NO NO LÉXICO ANALIZADOR SI SINTÁCTICO LEXICÓN ANALIZADOR SI SI ALCANCES DE ANALISIS LENGUAJE DE PROG. INTEGRACION CON OTROS LENGUAJES DOMINIO IDIOMA REGLAS DE ESCRITURA GRAMATICAL Análisis sintáctico especificado para el mundo de los bloques, no incluye análisis léxico ni lexicón. FRANZ LIPS C++ El mundo de los bloques. (Consiste en el movimiento de figuras sobre una mesa y le llaman “el mundo de los bloques” (Borja 2001)). ESPAÑOL Cada regla de DIPAR consiste en un patrón y una acción. Si el patrón es reconocido se ejecuta la acción. GENERAL ESPAÑOL No realiza correspondencia sintáctica, se focaliza en la semántica de las oraciones. Análisis sintáctico, no incluye análisis léxico ni lexicón. El lenguaje LISP funciona o se alimenta a través de una base de hechos, por lo tanto no existen reglas de composición gramatical sino reglas preestablecidas. Análisis léxico. LIPS -- - ASP VISUAL BASIC.NET, C#. GENERAL SI SI Funciona o hace deducciones a partir de hechos y reglas de inferencia almacenados en la base de conocimiento. No existen, puesto que solo hace revisión ortográfica ITALIANO, PORTUGUÉS, ESPAÑOL, HOLANDÉS, ALEMÁN. NO SINTÁCTICO LEXICÓN ANALIZADOR INGLÉS, FRANCÉS, LÉXICO ANALIZADOR Los patrones son listas compuestas de símbolos terminales (números, palabras y símbolos de puntuación), operadores y otros patrones. Análisis Léxico. --- Aplica para utilización con GENERAL. INGLÉS Y OTROS No existen, puesto que solo hace revisión ortográfica ______________________________________________________________________ Asistente Virtual para la producción textual 36 HERRAMIENTAS ELEMENTO Es un corrector ortográfico desarrollado para el sistema operativo UNIX y se utiliza con el editor de textos EMACs. Proporciona características: 3 INTEGRACION CON OTROS LENGUAJES LENGUAJE DE PROG. editores texto. LÉXICO ANALIZADOR NO DOMINIO IDIOMA REGLAS DE ESCRITURA GRAMATICAL GENERAL DISPONIBLE PARA 11 LENGUAJES, No existen, puesto que solo hace revisión ortográfica de SINTÁCTICO LEXICÓN JAVA SCRIPT SPELLCHECKER ALCANCES DE ANALISIS SI Análisis Léxico. JAVA SCRIPT ___ ENTRE ELLOS INGLÉS Y ESPAÑOL. Ventana emergente, similar a la de MS Word, comprueba la ortografía en páginas webs, ideal para comprobar formularios y entrada de datos. Es compatible con alojamientos basados en servidores Windows. ______________________________________________________________________ Asistente Virtual para la producción textual 37 HERRAMIENTAS ELEMENTO ANALIZADOR ALCANCES DE ANALISIS LENGUAJE DE PROG. Realiza análisis léxico especializado, denominado análisis morfológico que consiste en determinar la forma, clase o categoría gramatical de cada palabra de una oración. No se hace análisis sintáctico en el que se determinan las funciones de las palabras o grupos de palabras dentro de la oración. Análisis léxico. Wordnet divide la lexicografía en cinco Categorías. Tiene implementados sustantivos, verbos, adjetivos y adverbios. API DE JAVA INTEGRACION CON OTROS LENGUAJES DOMINIO IDIOMA REGLAS DE ESCRITURA GRAMATICAL GENERAL INGLES. no existen, puesto que solo hace revisión ortográfica GENERAL INGLES no existen, puesto que solo hace revisión ortográfica SI LÉXICO ANALIZADOR NO SINTÁCTICO JWordNet Herramienta utilizada para procesamiento morfológico. LEXICÓN ANALIZADOR SI SI LÉXICO el WORD NET Base de datos lingüística que se encarga de la morfología, incluye sinónimos, clasificación y ANALIZADOR NO SINTÁCTICO LEXICÓN SI ANALIZADOR SI LÉXICO SE PUEDE INTEGRAR UTILIZANDO EL API JAVA CON JAVA ______________________________________________________________________ Asistente Virtual para la producción textual 38 HERRAMIENTAS significado palabra. de la OPENNLP Se usa para la detección de oraciones, tokenización, postagging, chunking y parsing, detección de entidades con nombre y correferencias. FREELING Realiza análisis lingüístico, está diseñado para más idiomas pero está basado en WordNet. ELEMENTO ANALIZADOR ALCANCES DE ANALISIS NO SINTÁCTICO LEXICÓN ANALIZADOR NO NO La parte más ambiciosa de Wordnet es intentar organizar la información léxica en términos del significado de las palabras más que en términos de la forma de las mismas, cada palabra se representa como uno o varios synset (sentidos) Análisis Sintáctico. LENGUAJE DE PROG. INTEGRACION CON OTROS LENGUAJES DOMINIO IDIOMA REGLAS DE ESCRITURA GRAMATICAL JAVA SI SE UTILIZA COMO API DE JAVA GENERAL INGLES ESPAÑOL Utiliza la misma estructura de las reglas diseñadas para cada una de las gramáticas, la de inglés y la de español. C++ C++ BAJO EL S.O. LINUX O UNIX GENERAL ESPAÑOL, CATALÁN, GALLEGO, ITALIANO, INGLÉS, GALÉS, LÉXICO ANALIZADOR SI SINTÁCTICO LEXICÓN ANALIZADOR NO NO LÉXICO ANALIZADOR SINTÁCTICO NO Análisis Morfológico. Se dedica al análisis de la naturaleza y las leyes que gobiernan el lenguaje. Puede llevarse a cabo en distintos niveles: el fonético, el morfológico, el sintáctico, el léxico y PORTUGUÉS No existen reglas gramaticales. Y ASTURIANO. ______________________________________________________________________ Asistente Virtual para la producción textual 39 HERRAMIENTAS ELEMENTO ALCANCES DE ANALISIS LENGUAJE DE PROG. INTEGRACION CON OTROS LENGUAJES DOMINIO IDIOMA REGLAS DE ESCRITURA GRAMATICAL JAVA PYTHON SE UTILIZA COMO UN API DE JAVA. GENERAL. INGLÉS. Recibe una sentencia, el sistema le asigna una estructura sintáctica, que consiste en un conjunto de enlaces que se etiquetan para pares de palabras. El analizador también produce un Penn árbol-banco árbol para la representación de una frase (que muestra las frases nominales, frases verbales, etc.) el semántico. LINK GRAMMAR Es un parser sintáctico en inglés LEXICÓN SI ANALIZADOR NO LÉXICO ANALIZADOR Freeling se focaliza en el análisis morfológico que como se definió anteriormente se determinar la forma, clase o categoría gramatical de cada palabra de una oración. Análisis sintáctico SI SINTÁCTICO Por el método de parser utilizado presenta muchos errores en cuanto a corrección cuando se analiza una frase de acuerdo a un contexto general puesto que la corrección se realiza por pares de palabras. Tabla 3. Características Analizadores Léxico - Sintáctico ______________________________________________________________________ Asistente Virtual para la producción textual 40 NOMBRE DEL ANALIZADOR DYPAR –I IERL ASPSpellCheck Ispell Java Script SpellChecker INTEGRACION CON JAVA LICENCIA DE SW LIBRE NO SI INTEGRACION CON JAVA LICENCIA DE SW LIBRE NO SI INTEGRACION CON JAVA LICENCIA DE SW LIBRE SI NO CONTEXTO DE APLICACIÓN GENERAL NO CRITERIOS DE SELECCIÓN IDIOMA CODIGO INGLES ABIERTO IMPLEMENTACION EN TECNOLOGÍA WEB ALGORITMO EFICIENTE NO EL LEXICON HACE USO DE BD. NO SI NO NO OBSERVACIONES Este intérprete no es un sistema para analizar (parser) textos en lenguaje natural de cualquier dominio y sin restricciones. Está construido solo para su aplicación en el mundo de los bloques, además el lenguaje sobre el que esta implementado no es de fácil integración con la estructura base del proyecto. INTEGRACION LICENCIA DE CONTEXTO DE IDIOMA CODIGO IMPLEMENTACION EN ALGORITMO EL LEXICON CON JAVA SW LIBRE APLICACIÓN INGLES ABIERTO TECNOLOGÍA WEB EFICIENTE HACE USO DE GENERAL BD. SI SI NO NO NO NO SI NO OBSERVACIONES La aplicación IERL es un sistema desarrollado en Lisp durante las asignaturas de 'Inteligencia Artificial I' e 'Ingeniería de Sistemas Basados en el Conocimiento' de la carrera de Ingeniero en informática de la Universidad de Zaragoza. No se implementó en este proyecto porque el lenguaje LISP funciona o se alimenta a través de una base de hechos preestablecidos lo cual no es lo óptimo para la implementación de correctores. INTEGRACION LICENCIA DE CONTEXTO DE IDIOMA CODIGO IMPLEMENTACION EN ALGORITMO EL LEXICON CON JAVA SW LIBRE APLICACIÓN INGLES ABIERTO TECNOLOGÍA WEB EFICIENTE HACE USO DE GENERAL BD. NO NO SI SI NO SI NO DISPONIBLE SI OBSERVACIONES Es un corrector ortográfico diseñado solo para trabajar con software desarrollado por Microsoft, así que no hay la disponibilidad de conocer cómo está elaborado no se adapto porque el proyecto se trabaja bajo licencia de libre distribución. CONTEXTO DE APLICACIÓN GENERAL SI IDIOMA INGLES CONTEXTO DE APLICACIÓN GENERAL SI IDIOMA INGLES CODIGO ABIERTO IMPLEMENTACION EN TECNOLOGÍA WEB ALGORITMO EFICIENTE SI NO NO NO DISPONIBLE OBSERVACIONES Ispell no tiene disponible el código bajo el cual fue desarrollado, por lo tanto es difícil manipularlo para adaptarlo a las necesidades del proyecto. SI CODIGO ABIERTO IMPLEMENTACION EN TECNOLOGÍA WEB ALGORITMO EFICIENTE SI NO DISPONIBLE NO OBSERVACIONES EL LEXICON HACE USO DE BD. NO EL LEXICON HACE USO DE BD. SI ______________________________________________________________________ Asistente Virtual para la producción textual 41 Es un corrector ortográfico diseñado solo para trabajar con software desarrollado por Microsoft, no se empleó para el proyecto porque no hay la disponibilidad de conocer cómo está elaborada la herramienta o el algoritmo utilizado para la corrección de errores. Además, el alojamiento del lexicón se hace en una base de datos que utiliza servidores Windows, por lo tanto también debe existir algún tipo de licenciamiento para utilizar estas aplicaciones. JWordNet Word Net OpenNLP INTEGRACION CON JAVA LICENCIA DE SW LIBRE SI SI CONTEXTO DE APLICACIÓN GENERAL SI IDIOMA INGLES CODIGO ABIERTO IMPLEMENTACION EN TECNOLOGÍA WEB SI ALGORITMO EFICIENTE EL LEXICON HACE USO DE BD. SI NO SI NO DISPONIBLE OBSERVACIONES Funciona de la misma forma que Wordnet pero está especializado en JAVA. No se utiliza para el proyecto porque realiza un tipo de análisis diferente a lo requerido. INTEGRACION LICENCIA DE CONTEXTO DE IDIOMA CODIGO IMPLEMENTACION EN ALGORITMO EL LEXICON CON JAVA SW LIBRE APLICACIÓN INGLES ABIERTO TECNOLOGÍA WEB EFICIENTE HACE USO DE GENERAL BD. SI SI SI SI NO SI NO DISPONIBLE SI OBSERVACIONES WordNet es un sistema electrónico de referencia léxica, desarrollado en forma de base de datos léxica. La diferencia básica entre éste y otros proyectos es que es el único proyecto que relativamente a gran escala se ha tenido como idea fundamental la organización del léxico en campos semánticos, además de que gracias a las posibilidades que ofrece tiene una gran cantidad de información redundante entre ellas se tiene: sinonimia, antonimia, hiponimia/hiperonimia, holonimia/meronimia y morfológico. No se utiliza para el proyecto porque realiza un tipo de análisis diferente a lo requerido. INTEGRACION LICENCIA DE CONTEXTO DE IDIOMA CODIGO IMPLEMENTACION EN ALGORITMO EL LEXICON CON JAVA SW LIBRE APLICACIÓN INGLES ABIERTO TECNOLOGÍA WEB EFICIENTE HACE USO DE GENERAL BD. SI SI SI SI NO SI SI SI OBSERVACIONES Es un proyecto referente al PLN desarrollado en Java. Su código es libre y entre sus utilidades destacan la detección de sentencias, tokenización de textos. Dichas utilidades están disponibles para procesar textos en inglés y castellano. No se utilizó en el proyecto porque provee muchas más utilidades de las necesarias. INTEGRACION LICENCIA DE CONTEXTO DE IDIOMA CODIGO IMPLEMENTACION EN ALGORITMO EL LEXICON CON JAVA SW LIBRE APLICACIÓN INGLES ABIERTO TECNOLOGÍA WEB EFICIENTE HACE USO DE GENERAL BD. NO SI SI SI NO SI --NO Freeling OBSERVACIONES Es una herramienta de libre distribución implementada en C++. Está diseñada para ser utilizada como una librería externa desde una aplicación, y entre las utilidades que se extraen de esta herramienta destacan: Tokenización de texto, separación de sentencias, análisis morfológico, reconocimiento flexible de multipalabras y detección y clasificación de entidades nombradas. A esto se añade que está basada en diccionarios. ______________________________________________________________________ Asistente Virtual para la producción textual 42 Link Grammar No se utilizó porque está desarrollada en un lenguaje de programación diferente al requerido. INTEGRACION LICENCIA DE CONTEXTO DE IDIOMA CODIGO IMPLEMENTACION EN ALGORITMO EL LEXICON CON JAVA SW LIBRE APLICACIÓN INGLES ABIERTO TECNOLOGÍA WEB EFICIENTE HACE USO DE GENERAL BD. SI SI SI SI NO NO --NO OBSERVACIONES Es un analizador sintáctico de inglés, basado en la gramática de enlace, una teoría original de la sintaxis Inglés. No se utilizó porque el código no se encuentra disponible y no se puede manipular. Tabla 4. Resultados de la evaluación de los criterios de selección de los analizadores léxico y sintáctico ______________________________________________________________________ Asistente Virtual para la producción textual 43 Realizando un análisis de las herramientas referenciadas en la tabla 4, se ha considerado que ninguna cumple a cabalidad con lo necesario para ser adoptada dentro de la aplicación objetivo de este proyecto. Por lo tanto se seleccionaron algunos elementos requeridos para realizar el análisis sintáctico y ortográfico y se hicieron las siguientes consideraciones con respecto al lexicón, analizador léxico y analizador sintáctico siendo estas partes vitales del proyecto a desarrollar: En cuanto al lexicón se optó por utilizar el empleado por la herramienta llamada Java Script SpellChecker (JavaScript SpellChecker 2011), ya que el diccionario en inglés utilizado en ella es de libre distribución. En relación al analizador ortográfico no se encontró ninguno que cumpliera con los requerimientos mínimos por este motivo se decidió diseñar uno que se acoplara completamente con lo que se desea realizar en la recomendación ortográfica. Para el analizador sintáctico se considera muy interesante el procedimiento realizado por OpenNLP( The Stanford Parser 2011) y Freeling (Freeling 2011) con respecto al tratamiento que se hace del texto. Son herramientas completas y realizan procedimientos que van mucho más allá de los objetivos de este trabajo, además, por motivos de licencia y requerimientos mínimos de software no fueron adoptadas. Otra opción sería, Link Grammar (Link Grammar 2011) está desarrollado en un lenguaje de programación diferente al requerido, por lo tanto se considera que son mayores los esfuerzos en adaptar que en el desarrollo de una nueva herramienta. 7.1.1 DEFINICIÓN DEL LEXICÓN, ANALIZADOR ORTOGRÁFICO Y ANALIZADOR SINTÁCTICO Como ninguna de las herramientas estudiadas cumple con las características necesarias para realizar el asistente virtual, se optó por seleccionar algunos elementos de las herramientas y desarrollar nuevos componentes de acuerdo a lo requerido para el proyecto en cuanto al lexicón, analizador ortográfico y analizador sintáctico. Como primera instancia el lexicón implementado, de ahora en adelante Lexicón LingWeb, es el utilizado por Java Script SpellChecker versión inglés, el cual es una lista de todas las palabras disponibles para ese idioma almacenadas en un formato de texto plano, éste fue modificado para funcionar en una base de datos PostgreSQL, por lo tanto, está representado mediante una tabla que contiene los campos de identificación, descripción y clasificación de cada una de las palabras, que visto como parte del modelo por capas representa la capa de almacenamiento, en la capa lógica se puede encontrar los servicios empleados por el analizador ortográfico y sintáctico para acceder a dicho lexicón; para finalizar en la interfaz gráfica de usuario se puede encontrar el editor LingWeb que por medio de sus botones permite el acceso a la corrección ______________________________________________________________________ Asistente Virtual para la producción textual 44 ortográfica o sintáctica , también existe una interfaz administrativa que ayuda a enriquecer el lexicón a voluntad del administrador de la plataforma. En segunda instancia se encuentra el corrector ortográfico que implementa el algoritmo de la distancia de Levesnshtein (Cristalab 2010), el cual es un algoritmo muy popular en las áreas de recuperación de la información y ciencias de la computación, sobresale por su eficiencia en diferentes campos del conocimiento. El algoritmo de Levestain además de ser muy útil para la corrección de palabras también puede ser adaptado para corrección de oraciones, porque el concepto de similitud puede ser adaptado para trabajar con oraciones, es decir, la comparación no se hace con lexemas sino con unidades sintácticas. El algoritmo de la distancia de Levesnshtein, se utiliza para la comparación de las palabras que se encuentran en un texto con las disponibles en el lexicón. De acuerdo a esta comparación se puede encontrar el grado de similitud de las palabras. El grado de similitud se marca como error cuando la distancia Levenshtein entre dos palabras es superior a cero y las posibles sugerencias van a ser las palabras en las cuales su similitud idealmente menores iguales a dos o a un valor dado por el programador. El algoritmo se implementó como un servicio desarrollado en lenguaje JAVA, de forma que es usado a través de una solicitud http. El servicio a su vez se comunica con el lexicón LingWeb a través del conector de la base de datos que va a presentar como resultado los errores y las posibles sugerencias para cada uno de esos lexemas (palabras). En última instancia, se trata el corrector sintáctico que implementa varios algoritmos buscando mejorar la eficiencia y optimización del servicio. En forma general las partes del algoritmo se describen a continuación y se presenta un ejemplo en la Figura 1. 1. Detección de Oraciones: En la primera fase se hace detección de oraciones por medio de la división de texto a través de signos de puntuación, en este caso se utilizará el punto. 2. Marcado de Oraciones: En este punto se divide la oración en palabras y cada una de ellas se marca de acuerdo a su clasificación sintáctica, por ejemplo: la palabra “Pedro” va a ser marcada como nombre propio, todo esto según los datos almacenados en la base de datos. 3. Identificador de Frases: Usando tags o marcas sobre el texto extraído, se obtiene la estructura de la frase, por ejemplo: “Juan nada bien” se obtiene un marcado pronombre, verbo y adjetivo. Esta estructura es comparada con las estructuras gramaticales en la base de datos y por medio del algoritmo de la distancia de Levesnshtein se detecta si se encuentran errores en esta estructura para posteriormente mostrar la estructura correcta más aproximada ______________________________________________________________________ Asistente Virtual para la producción textual 45 a lo que se cree que el usuario quería escribir, realizando así la corrección sintáctica. Figura 1. Esquema ejemplo análisis sintáctico ______________________________________________________________________ Asistente Virtual para la producción textual 46 7.1.2. DESCRIPCIÓN DESARROLLADOS DE LOS ALGORITMOS GRAMATICALES 7.1.2.1 ALGORITMO DE CORRECCIÓN ORTOGRÁFICA En el mundo de corrección de cadenas o manipulación de textos existen cuatro operaciones básicas a tener en cuenta: eliminación de un carácter sobrante, inserción de un carácter faltante, transposición de caracteres y sustitución de caracteres (Aho 2008). La eliminación de un carácter faltante consiste en convertir una palabra a la correcta eliminando un carácter de esta; la inserción de un carácter faltante hace referencia a la inserción de un nuevo caracter para convertir la palabra en la correcta; la operación de transposición de caracteres es que con el intercambio de dos caracteres adyacentes sea posible encontrar la palabra deseada; y la operación de sustitución es el numero de caracteres que tienen que cambiarse para que una cadena se convierta en la correcta. Se considera como palabra correcta toda aquella que esté almacenada en un punto de referencia como por ejemplo una base de datos, un texto plano, entre otros. Para el diseño del algoritmo que se encarga de la parte de corrección ortográfica se estudiaron tres posibilidades: el algoritmo de distancia de Levenshtein, la distancia de Hamming y la distancia de Damerau- Levenshtein. Del estudio se dedujo que el algoritmo de Levenshtein es el mejor puesto que además de presentar mejores resultados en cuanto a corrección de palabras se refiere (Cristalab 2010) utiliza solo tres operaciones para la edición de una cadena (eliminación, inserción y sustitución), Hamming solo considera la operación de sustitución y Damerau- Levenshtein además de las operaciones que considera Levenshtein tiene en cuenta la operación de transposición lo que genera mayor costo computacional sin beneficios adicionales puesto que esta operación no es muy necesaria para el objetivo de este proyecto. El algoritmo de corrección ortográfica basado en la distancia de Levenshtein se creó para trabajar en tres fases: Extracción de las palabras a revisar, comparación con el lexicón y marcación. Cada una de estas fases se describe a continuación y se explica de qué forma fueron implementadas para que fueran funcionales en la plataforma LingWeb. Extracción de palabras Se asume que la corrección ortográfica es utilizada para textos, no para palabras individuales, por lo cual es completamente necesario extraer las mismas del texto ingresado por el usuario de la plataforma haciendo uso del Editor LingWeb, por simplicidad el algoritmo detecta la palabra por medio de “tokens” donde el “token” utilizado es el espacio. Esta metodología es la más usada para extracción de palabras puesto que aunque se presente errores de escritura donde se omite el espacio, el costo computacional que se genera no justifica el cambio de método que de acuerdo a experiencia propia el uso de otro tipo de token implica adicionarlo al texto para ser analizado y luego eliminarlo del mismo para presentarlo en la interfaz de usuario. ______________________________________________________________________ Asistente Virtual para la producción textual 47 El algoritmo del prototipo se implementa a nivel de la interfaz de usuario utilizando el Editor LingWeb como medio para realizar la captura de texto en una función llamada getText() , que luego se pasa como atributo a la función CheckIt para ser extraído y es almacenado en un vector temporal para la realizar la revisión de cada una de sus palabras, la revisión se hace conforme al avance del índice del vector. Comparación con Lexicón Una vez se obtiene la palabra del texto que el usuario ingresó, se procede a aplicar un algoritmo de comparación con el lexicón, en este caso, el algoritmo de comparación utilizado es la distancia de Levenshtein, el cual es muy utilizado para corrección ortográfica, esta comparación proporciona la información de que tan similares son dos palabras, ya que mide que tantas operaciones se deben aplicar para que una palabra sea igual a otra. Lo que no solo indica si una palabra contiene errores ortográficos sino que también muestra que palabras se asemeja a esta, tal y como fue escrita. Esta información es muy útil, ya que permite dar sugerencias al usuario para que corrija su error ortográfico. Para implementar el algoritmo Levenshtein en la plataforma LingWeb se creó un servicio; por medio de este servicio varios usuarios podrán acceder al lexicón sin presentar retardos o problemas para acceder a este, este servicio toma la palabra a corregir, realiza la consulta al lexicón LingWeb y luego obtiene las sugerencias de corrección, lo que permite no solo realizar consultas con todas las funcionalidades de las sentencias SQL, sino que se puede gestionar la información del lexicón para mejorarlo ó para agregar nuevos diccionarios pertenecientes a otros idiomas. El servicio también permite ser accedido por otros módulos de la plataforma de modo transparente, como es de suponer las consultas realizadas son mejor administradas por el motor de la base de datos que con el uso de otro sistema de consulta, permitiendo de esta manera que cuando sea accedida por varios usuarios concurrentemente se reduzcan los costos computacionales; esto se implementó respetando en todo momento la arquitectura establecida para LingWeb, como lo presenta la figura 2. Marcación Una vez se reconoce un error este es marcado cambiando a color rojo la palabra mal escrita, es devuelto a la interfaz de usuario junto con las sugerencias, las cuales pueden ser seleccionadas fácilmente por el usuario para corregir su error ortográfico. Cuando es realizada la corrección de la palabra se continúa con la siguiente en el vector obtenido en la fase de extracción de palabras. Y se repite la fase dos y tres hasta terminar con el texto ingresado por el usuario. ______________________________________________________________________ Asistente Virtual para la producción textual 48 Figura 2. Arquitectura LingWeb (Machuca 2009) vs. Arquitectura AVPT ______________________________________________________________________ Asistente Virtual para la producción textual 49 7.1.2.2 ALGORITMO DE CORRECCIÓN SINTÁCTICA La corrección sintáctica se realiza en 5 pasos, los cuales incluyen: detección de oraciones, marcado de palabras, marcado de frases, comparación de unidades semánticas y presentación de sugerencias. Detección de oraciones Por criterio de simplicidad se asume que las oraciones se encuentran correctamente separadas por el signo de puntuación “.” Es así como se separa la cadena de caracteres a analizar, las oraciones obtenidas se almacenan en un vector, lo que facilita enviarlas al servicio que realiza la revisión avanzando a través de la iteración del índice del vector. Marcado de palabras El marcado de palabras utiliza un servicio denominado revisor sintáctico que es el encargado de recibir cada una de las oraciones del texto para hacer su correspondiente comparación con las unidades sintácticas almacenadas en el sistema. Una vez el servicio revisor sintáctico recibe una oración la separa en palabras usando los espacios como criterio de división de la frase, nuevamente estas se almacenan en una vector, en donde cada palabra es buscada en el lexicón LingWeb, el cual contiene información sobre la clasificación de cada lexema perteneciente al idioma Inglés, es decir, cada palabra almacenada en el lexicón posee un campo donde se especifica si es verbo, sustantivo, articulo, entre otros. Es así como al finalizar esta fase cada palabra de la oración está marcada de acuerdo a su correspondiente clasificación. Marcado de frases Teniendo las palabras con la marcación respectiva, se procede a agruparlas en unidades sintácticas tales como frases nominales o frases verbales, entiéndase que una oración bien escrita sintácticamente asociará todas sus frases a alguna unidad sintáctica, por lo cual si el algoritmo no logra marcar alguna frase se asumirá que existe un error sintáctico. Presentación de sugerencias Una vez identificado el grupo de palabras en las cuales se presenta el error sintáctico, se procede a comparar su estructura basándose en el marcado de las palabras, para ver a que estructura de unidad sintáctica es más parecida, para esta labor se usa la distancia de Levenshtein como criterio de comparación, las unidades sintácticas con distancia menor a dos se presentarán como sugerencia, estas son enviadas a la interfaz de usuario donde se presenta las sugerencias de corrección. En este punto se envía al servicio revisor sintáctico la siguiente oración para ejecutar todo el proceso ______________________________________________________________________ Asistente Virtual para la producción textual 50 desde el marcado de palabras hasta la presentación de sugerencias, este proceso se realiza repetidamente hasta completar la revisión de todo el texto. 7.1.3 INTERFAZ DE COMUNICACIÓN ENTRE EL LEXICÓN ANALIZADOR SINTÁCTICO Y EL Con el fin de mantener el algoritmo de revisión sintáctica y ortográfico lo más eficiente posible, en el modelo de datos del lexicón se agregó un campo en el cual cada palabra tiene asignado un “tag” que permite realizar la identificación de cada palabra con su respectiva clasificación (sujeto, verbo, sustantivo, entre otros), por esto se hace necesario que exista una interfaz de comunicación entre el corrector sintáctico y el lexicón. Inicialmente se debe tener en cuenta que el corrector sintáctico se encuentra ubicado en la capa de presentación, la cual ha sido programada en lzx (OpenLaszlo). La capa de presentación que provee la interfaz gráfica del corrector sintáctico necesita comunicarse con el lexicón para aplicar los mecanismos de comparación y generar las sugerencias de corrección sintáctica. Para realizar este proceso es necesario crear una interfaz de comunicación con el lexicón. La interfaz de comunicación se implementó como un servicio Web programado en lenguaje JAVA, que además de encargarse de la comunicación con lexicón también realiza funciones de revisión sintáctica; es así como este servicio recibe como parámetro de entrada la oración a ser revisada y presenta como salida las sugerencias de corrección, tal y como se explica en el punto 7.1.2.1 Por otra parte, además, de la implementación del servicio descrito anteriormente, es necesario utilizar un administrador de datos conocido como Datamanager que es el que realiza directamente las operaciones de lectura, escritura, actualización y eliminación de registros sobre el Lexicón LingWeb, el cual también se encuentra programado en JAVA. De esta manera el servicio de corrección sintáctica se encarga de otras funciones que no tienen que ver con la manipulación de la persistencia porque esta tarea la realiza el DataManager que es el encargado de todo lo que tiene que ver con el acceso a la base de datos. Es de tener en cuenta que el DataManager hace uso de archivos de persistencia obtenidos por ingeniería inversa a partir de la base de datos usando herramientas JPA. De esta manera la corrección sintáctica se abstrae completamente del lexicón LingWeb enviando como único paramento la oración a ser revisada y obteniendo como respuesta las sugerencias de corrección. Es así como este servicio se convierte en la interfaz de comunicación entre el corrector sintáctico y el lexicón, para mayor comprensión observe el esquema que se presenta a continuación. ______________________________________________________________________ Asistente Virtual para la producción textual 51 Figura 3. Esquema funcionamiento interfaz de comunicación analizador sintáctico y el lexicón 7.2 REPRESENTACION COMPUTACIONAL DE LAS ESTRUCTURAS MACRO TEXTUALES Y EL PROCESO DE RECOMENDACIÓN QUE EL AGENTE REALIZA EN DICHA REPRESENTACION La idea de crear una estructura Macrotextual nació de la siguiente pregunta ¿Cómo hacer para que el sistema LingWeb no se limite solo para trabajar con algunos tipos de párrafo sino que pueda adaptarse a cualquier tipo de párrafo que el docente quiera trabajar? Inicialmente se trató de identificar los elementos que componen un párrafo, dentro de estos se encontraron: secciones, oraciones y palabras, y después se consideraron los diferentes tipos de párrafo, donde se podrían encontrar el expositivo tipo1, expositivo tipo 2 , argumentativo tipo 1, entre otros. Por lo tanto las estructuras Macrotextuales están representadas por un vector, en donde cada uno de sus campos tiene asociada una sección del párrafo, es importante recordar que las sugerencias presentadas por el agentes están basadas en una sección y tipo de párrafo por lo que el proceso de recomendación hace uso del índice y las reglas programadas por el usuario administrador; estas sugerencias se despliegan bajo el comportamiento OneShotBehavior2. Las estructuras Macrotextuales se pueden configurar a través de la interfaz del perfil administrador, en la que se define el tipo de párrafo a crear, el número de secciones por las que está compuesto, la descripción de cada sección y las recomendaciones que el asistente debe realizar para cada una de estas secciones. Esto se aprecia en la figura 4: Figura 4.Plantilla tipo párrafo rol administrador 2 Es un tipo de comportamiento para agentes el cual permite ejecutarse una vez y de forma interrumpida. ______________________________________________________________________ Asistente Virtual para la producción textual 52 Las recomendaciones Macrotextuales se efectúan de la siguiente forma: una vez inicializada la plantilla tipo párrafo y que el usuario haya hecho clic sobre una sección para editarla, se envía al agente tres parámetros necesarios para el proceso de recomendación: identificador de la plantilla que hace referencia al tipo de párrafo, identificador de la sección e idioma actual de la interfaz, con estos datos el agente realiza una consulta a la base de datos específicamente en la tabla co_paragraph_base_knokledge que es la representación principal de la base de conocimiento del agente porque contiene todas las recomendaciones disponibles para los diferentes tipos de párrafo; de ésta base de conocimiento se obtiene una lista de recomendaciones de acuerdo al párrafo y sección que son presentadas en la interfaz de usuario periódicamente (cada minuto ,en caso de existir más de una), este mismo proceso se repite cada vez que el usuario cambia de sección. En la figura 5 se esquematiza el proceso. Figura 5. Proceso de recomendación Macrotextual. En la figura 6 se presenta la plantilla de trabajo para ejercicios tipo párrafo donde se observan los siguientes campos: titulo, descripción por sección, campo de escritura; y al hacer clic sobre una de sus secciones en donde dice “clic aquí para agregar texto al párrafo” se presenta el Editor LingWeb junto con el asistente de escritura como se puede ver en la figura 7. ______________________________________________________________________ Asistente Virtual para la producción textual 53 Figura 6.Plantilla tipo párrafo rol estudiante Figura 7. Editor LingWeb y Asistente de escritura. Se consideró el uso de agentes para estas recomendaciones puesto que un asistente debe jugar un papel activo en la aplicación y de acuerdo a los comportamientos programados en el agente se puede llevar un proceso de recomendación en tiempo real; convirtiéndolo en un componente proactivo porque el usuario no necesita activar la ayuda sino que esta se presenta a medida que él trabaja en la interfaz. ______________________________________________________________________ Asistente Virtual para la producción textual 54 En la siguiente sección se describe con mayor profundidad las funciones y estructura del asistente virtual para la producción textual. 7.3 ARQUITECTURA ASISTENTE VIRTUAL PARA LA PRODUCCION TEXTUAL (AVPT) La arquitectura del AVPT ha sido diseñada de acuerdo a los requerimientos generales de LingWeb y los especificados para este proyecto, los cuales se pueden observar en el anexo 1 del documento. En esta sección se presentarán la vista conceptual y la vista lógica desarrolladas para el asistente virtual para la producción textual. La vista conceptual ubica al sistema en su entorno general de trabajo y la vista lógica presenta los modelos que permiten conocer el funcionamiento del asistente propuesto en función de los siguientes artefactos: el modelo de agentes, el modelo organizacional, el modelo de entorno, los modelos de servicios, los diagramas de secuencia, los diagramas de actividades, el diagrama de clases y el modelo de persistencia. El AVPT es un módulo que forma parte del sistema de enseñanza y aprendizaje de idiomas denominado LingWeb, que con sus características de adaptatividad y asistencia al usuario hacen de él un sistema e-learning más elaborado que los comunes. LingWeb es una aplicación que se basa en una arquitectura de tres capas. Es una plataforma compatible con JADE (Java Agent Development FrameWork) para el trabajo con agentes software3. En el lado del servidor se trabaja con J2EE por su confiabilidad, robustez, y compactibilidad con la plataforma JADE; del lado del cliente se optó por la plataforma OpenLaszlo, quien ofrece características RIA la cual es muy funcional e ideal para el uso en las aplicaciones Web actuales. 7.3.1 VISTAS DE LA ARQUITECTURA AVPT 7.3.1.1 VISTA CONCEPTUAL En SE-MAS (Arquitectura multiagentes para sistemas e-learning centrados en la enseñanza de idiomas) (MACHUCA 2009) se plantea una arquitectura para LingWeb la cual consta de unas secciones o módulos en los que está organizado el sistema. Estos módulos hacen referencia a la parte de administración, cursos, herramientas, adaptatividad e interfaz como se presenta en la figura 8. 3 http://lingweb.univalle.edu.co/lingweb/ ______________________________________________________________________ Asistente Virtual para la producción textual 55 Figura 8.Estructura conceptual de la plataforma LingWeb incluyendo el asistente Virtual Específicamente en este proyecto se tendrá en cuenta el módulo de gestión y diseño de cursos para la parte de asistencia de escritura y asistencia gramatical la cual se hace presente en el momento de redactar un párrafo, adicionalmente esta asistencia cuenta con un editor de texto especializado llamado Editor LingWeb presentado en la figura 9 que ha sido adaptado del editor por defecto que trae Openlaszlo, que pone a disposición de los docentes novedosas herramientas como el Markín para el marcado de errores asociados a la gramática, sintaxis, cohesión, puntuación y vocabulario; además presenta la posibilidad de adicionar comentarios a nivel global del texto o solo para una sección, en caso de que sea necesario sugerir algo sobre la elaboración de un texto desarrollado por un estudiante. Figura 9. Elementos del Editor LingWeb La estructura conceptual de la plataforma LingWeb diseñada para la enseñanza y aprendizaje de idiomas, aplica sus procesos pedagógicos a la parte de escritura de textos los cuales deben ser realizados bajo unos parámetros fundamentales, por este motivo se diseñó un asistente textual que guía al estudiante en cuanto a la parte escrita y la parte gramatical de un texto. ______________________________________________________________________ Asistente Virtual para la producción textual 56 El asistente de escritura presenta recomendaciones al estudiante de acuerdo al tipo de párrafo que desea escribir. Para el usuario docente el agente genera estadísticas de acuerdo al proceso de recomendación que ha tenido que realizar con los estudiantes de un curso y las publica en el perfil docente. De esta forma el docente podrá encontrar las fortalezas y falencias de sus estudiantes, haciendo de la herramienta de asistencia un elemento importante para la detección de errores en la metodología de enseñanza. Así mismo el asistente gramatical a través del editor LingWeb proveerá al estudiante la corrección ortográfica y sintáctica de oraciones, ayudando de esta forma al estudiante en el proceso de aprendizaje de una segunda lengua como lo es en este caso, el idioma Inglés; al docente le permitirá observar estadísticas que comprenden los errores más comunes en cuanto a ortografía y sintaxis, permitiéndole de esta manera la creación de nuevas alternativas de enseñanza para disminuir este tipo de errores. En la figura 10, se presenta la estructura conceptual del asistente como una vista por paquetes: Asistencia_Escritura LingWeb PAsistencia_Textual Asistencia_gramatical Figura 10. Vista conceptual de la arquitectura El paquete de Asistencia textual perteneciente a la plataforma LingWeb, está conformado por dos partes: la primera encargada de la asistencia en la escritura, la cual tiene que ver con las recomendaciones para la escritura de un párrafo dependiendo de su tipo; la segunda parte proporciona la asistencia gramatical responsable de la corrección ortográfica y análisis sintáctico a nivel de oraciones, estos elementos contenidos en el editor LingWeb, herramienta donde se desarrollan la mayor parte de los ejercicios de escritura. 7.3.1.2 VISTA LÓGICA La vista lógica del sistema puede representarse por medio de la figura 11, en la cual se observa la distribución de la aplicación por capas: la capa de ______________________________________________________________________ Asistente Virtual para la producción textual 57 presentación, lógica de aplicaciones y almacenamiento. Se muestran los elementos controlador y fachada que permiten el control de los eventos de la interfaz de usuario a la parte lógica y finalmente a los medios de almacenamiento. La capa de presentación se encuentra la configuración, elaboración y revisión de ejercicios de escritura los cuales están conformados por ejercicios tipo texto y ejercicios tipo párrafo. Para dichos ejercicios se diseñaron plantillas de configuración y desarrollo de textos que se basan en modelos pedagógicos creados para la composición textual, estos modelos fueron diseñados de acuerdo a las estrategias de aprendizaje presentadas en el marco teórico del presente documento (Berdugo 2005); la capa lógica de la aplicación contempla todo lo que tiene que ver con la asistencia textual que se le proporciona al usuario representada por medio del asistente gramatical y del asistente de escritura. El almacenamiento, se hace sobre la base de datos LingWeb la cual dentro de sus componentes especializados para este proyecto cuenta con un lexicón que sirve de ayuda para la realización de corrección ortográfica; además, contiene los recursos sintácticos que almacenan las reglas sintácticas comunes para el idioma inglés y los modelos de párrafos identificando su clasificación y secciones asociadas a cada uno de ellos. GUI Ejercicios Escritura ControladorLingWeb PAsistencia_Textual fachada persistencia BD LINGWEB LEXICÓN Reglas sintacticas Modelos de parrafos Figura 11. Estructura de la arquitectura por capas De acuerdo a la estructura conceptual del sistema y su arquitectura por capas, la representación LingWeb para el asistente de escritura quedaría establecida ______________________________________________________________________ Asistente Virtual para la producción textual 58 en la figura 12 que visualiza la asistencia de escritura y la figura 13 que presenta la asistencia gramatical. Estas figuras muestran cada uno de los componentes de los asistentes y la función que desempeñan Plantilla Plantilla de configuración configuración tipo tipo párrafo Establecer la estructura del párrafo a trabajar GUI GUI RECOMEN. recomen. recomen. MACROMacroTEXTUALES Insertar recomendaciones Macrotextuales Especiales textuales textuales Figura 12. Estructura general de la arquitectura del asistente de escritura En la Figura 12 se presentan las funciones del asistente de escritura que genera un párrafo bajo una estructura adecuada ya que ha sido definida por el profesor en la configuración del ejercicio, a continuación sus módulos serán descritos de acuerdo a cada rol de usuario. El estudiante utiliza la interfaz del ejercicio denominada plantilla tipo párrafo, en donde el número de secciones que constituyen el párrafo corresponde al número de editores que van a estar disponibles para la escritura del texto, el asistente de escritura es activado por un evento Onvisible utilizado por el editor LingWeb que accede a la librería JADE la cual hace el levantamiento del agente para iniciar los procesos de recomendación. El primer paso que realiza el asistente consiste en la asociación de la estructura macrotextual con una establecida en la base de conocimiento del agente, y de acuerdo a esto inicia con las recomendaciones Macrotextuales que no son más que sugerencias para obtener una adecuada estructura de párrafo, estas también están asociadas a cada una de sus secciones, por lo tanto las sugerencias difieren de la sección y tipo párrafo escrito. Para el perfil docente se hace uso de la plantilla de configuración tipo párrafo, en la cual el docente tiene la posibilidad de configurar el ejercicio de texto que van a desarrollar sus estudiantes, en esta plantilla se pueden adicionar cosas ______________________________________________________________________ Asistente Virtual para la producción textual 59 como la descripción de lo que el estudiante debe hacer en cada una de las secciones del párrafo y una serie de consejos para que el estudiante desarrolle un párrafo bajo una estructura adecuada. El perfil administrador tiene la posibilidad de agregar recomendaciones para que el agente pueda sugerir en caso de que los docentes de idiomas en consenso hayan decidido que es importante agregar una nueva sugerencia para el uso de agentes. Una ventaja para agregar recomendaciones es que se elige el tipo de párrafo y la sección en donde se desea que aparezca. En la figura 13 se presentan las funciones del asistente gramatical el cual se encarga de la corrección ortográfica y sintáctica. Figura 13. Estructura general de la arquitectura del asistente gramatical En el rol estudiante se accede al asistente a través del uso del editor LingWeb. El asistente se activa en el momento que el estudiante inicia la escritura, éste periódicamente está monitoreando el texto escrito; en caso de que encuentre errores, el agente presenta un mensaje recomendando la revisión del texto para ortografía y/o sintaxis puesto que esta no se hace directamente sobre el editor por los procesos que implica la manipulación de texto en OpenLaszlo. Es decir, el editor de texto está compuesto por una richEditTextArea4 la cual no permite elementos gráficos como el subrayado tradicional de textos, además aunque es posible guardar las posiciones de una zona con errores y cambiarle el formato, este puede ser modificado manualmente perdiéndose el marcado del error; es mucho más práctico y funcional lanzar una ventana de corrección 4 Elemento programado en el editor, que contiene las diferentes partes gráficas que lo componen. ______________________________________________________________________ Asistente Virtual para la producción textual 60 ortográfica o sintáctica para hacer la revisión del texto y así, devolverlo corregido al editor. Para la revisión es necesario utilizar un servicio que se activa a través de los botones disponibles en el editor LingWeb, dicho servicio captura el texto y señala cada una de sus partes erróneas ya sea para ortografía o sintaxis, además de esto presenta las sugerencias correspondientes a cada una de ellas. Este proceso se hace como se explicó en la sección 7.1.2. La corrección ortográfica utiliza el lexicón LingWeb y la corrección sintáctica utiliza la base de conocimiento del asistente gramatical que básicamente está constituido por unidades sintácticas que son las reglas para la escritura de oraciones en inglés. El docente puede acceder al editor LingWeb para utilizar las herramientas de Markin y comentarios por si es necesaria una revisión adicional en el trabajo elaborado por los estudiantes. Y el perfil administrador es el encargado de agregar nuevos términos al lexicón y unidades sintácticas para que siempre exista la posibilidad de expandir las recomendaciones generadas por este asistente. De forma general lo que se quiere representar en las Figuras 12 y 13 es la distribución de los elementos que interactúan con el sistema. Se aprecia que desde la interfaz gráfica los usuarios podrán acceder a la plataforma, realizando las diferentes peticiones de acuerdo al perfil. De esta manera el sistema podrá responder capturando sus solicitudes para ser procesadas en la parte lógica de la aplicación, en donde internamente realizará cada una de las operaciones pertinentes para dar una respuesta oportuna y acorde a la solicitud realizada. Así mismo, para contribuir con esa respuesta al usuario, la aplicación se relacionará con el sistema de almacenamiento o con la plataforma Jade, según sea el caso, manteniendo la independencia de cada capa de la arquitectura establecida. Los esquemas presentados en las figuras 14 hasta la 19, especifican el funcionamiento de cada parte del asistente textual el cual está conformado por el asistente de escritura y el asistente gramatical, estas funcionalidades están de acuerdo a la arquitectura general presentada anteriormente. El asistente de escritura, se encarga de todo el monitoreo de las acciones del usuario en el momento de escribir un texto, identificando el tipo de párrafo que va a redactar y las posibles sugerencias para este tipo de texto, este agente está presente en los ejercicios con la plantilla tipo párrafo. El asistente gramatical se encarga de toda la ayuda que se le puede dar al usuario en cuanto a ortografía y sintaxis, incluso existen otras herramientas diseñadas para apoyar las tareas de este agente como los son: el Markín, los comentarios por sección y comentarios globales; todos estos presentes en el editor LingWeb. ______________________________________________________________________ Asistente Virtual para la producción textual 61 El asistente textual presenta al docente estadísticas que le permiten observar los errores gramaticales y de escritura cometidos con mayor frecuencia por sus estudiantes, lo cual le permite evaluar la metodología de enseñanza. Asistente Textual Asistente Gramatical_ Asistente Escritura_ Figura 14. Composición del Asistente Textual En la figura 15 se puede visualizar al agente textual como actor principal en la escritura de un párrafo, la cual se hace en una plantilla tipo párrafo que se encuentra incluida en los ejercicios de escritura dispuestos en la plataforma LingWeb. Este agente a su vez se comunica con la capa de almacenamiento denominada Base de Conocimiento del Agente la cual contiene tres componentes principales en este proceso, como lo son: el lexicón, las reglas sintácticas y los modelos de párrafos. Dependiendo de la acción que realice el usuario van a ser los recursos que el agente va a utilizar. Si el usuario solicita asistencia gramatical es porque él necesita corrección ortográfica y sintáctica, para este proceso se hace necesario el lexicón y las reglas gramaticales ó unidades sintácticas; y si el usuario solicita asistencia de escritura es decir el usuario necesita una guía para la escritura de un párrafo debe recurrir a los modelos de los tipos de párrafos presentes en la capa de almacenamiento del sistema, que le permite identificar al agente la sección que el usuario está redactando, tipo de componentes léxicos que está utilizando y cuáles serían las posibles recomendaciones para ese momento de escritura. <<component>> PLANTILLA DE PARRAFO Asistente Textual BASE DE CONOCIMIENTO DEL AGENTE Figura 15. Vista general por compontes del Asistente textual parte I ______________________________________________________________________ Asistente Virtual para la producción textual 62 En la figura 16 se observa una vista por componentes del proceso de recomendación del asistente textual, quien representa al asistente de escritura y el asistente gramatical. Además, se pueden observar las interfaces como elementos indispensables para la comunicación entre la capa de presentación, la capa lógica y la capa de persistencia. Figura 16. Vista por componentes asistente textual parte II En la figura 17 y 18 se describe una vista por componentes más profunda y especializada de cada uno de los asistentes, como lo son: el asistente de escritura y el asistente gramatical presentando en cada uno de ellos los elementos participantes en el proceso de recomendación. Figura 17. Vista por componentes del asistente gramatical ______________________________________________________________________ Asistente Virtual para la producción textual 63 Figura 18. Vista por componentes del asistente de escritura Los agentes de software definidos en la arquitectura se ejecutarán en la plataforma Jade, puesto que proporciona un entorno de ejecución para la realización y mantenimiento de sistemas multiagente (Bellifemine 2005). El agente controlador definido para LinWeb el cual es utilizado por todos los agentes que trabajan en la misma, se identifica en la figura 19, de acuerdo a sus funciones (crear y destruir los agentes del sistema) servirá de enlace entre el agente de asistencia textual y Jade. El Agente Controlador, se iniciaría con el arranque de la plataforma. Profundizando en la arquitectura multiagente que está asociada con el paquete de Asistencia Textual, se presentan a continuación los diferentes modelos soportados en la metodología para el desarrollo de sistema multiagentes Ingenias: modelo de agentes, modelo de entorno, modelo de organización, modelo de servicios y modelo de comportamientos; además se complementa con el diagrama de clases y el modelo de persistencia. Figura 19. Vista de interacción de los Agentes con la plataforma Jade ______________________________________________________________________ Asistente Virtual para la producción textual 64 7.3.1.2.1 MODELO DE AGENTES Corregir sintaxis Agente Asistente Gramatical Asistente Gramatical Corregir Ortografia Generar reporte Errores Gramaticales Figura 20. Modelo de Agentes. Agente Asistente Gramatical. Identificar los modelos de párrafo Asistente Escritura Agente Asistente Escritura Proporcionar sugerencias segun el modelo de parrafo Figura 21. Modelo de Agentes. Agente Asistente de Escritura A continuación se presenta un cuadro que describe los modelos del agente asistente gramatical y del agente asistente de escritura. AGENTE Asistente gramatical - OBJETIVOS Corregir ortografía. Corregir sintaxis. Generar reporte errores gramaticales. DESCRIPCION Este agente será el encargado de proporcionar la corrección de errores ortográficos o sintácticos al usuario en momento de escribir un texto. Además el agente creará un reporte al ______________________________________________________________________ Asistente Virtual para la producción textual 65 Asistente escritura - docente en el que indica los errores que obtuvo el estudiante para la parte gramatical. Identificar los EL agente de escritura modelos de párrafos. es el encargado de acompañar al estudiante Proporcionar sugerencias según el en el momento de composición textual. modelo de párrafo. Para lo cual, primero identifica el tipo de párrafo que esta trabajando, después determina las recomendaciones y el orden en que serán empleadas y finalmente presenta las sugerencias en la interfaz de usuario. Tabla 5. Descripción de los agentes de acuerdo a sus objetivos. TABLA DE INTERACCIONES En la tabla 6 se representan las relaciones que pueden existir entre el agente textual y su correspondiente integración con la arquitectura SE-MAS (Machuca 2009). Se describe quién inicia la comunicación, quién la recibe, en qué momento se establece y el protocolo de interacción basado en los estándares FIPA (Mas 2005). Esta se define a partir del modelo de agentes que se ha creado anteriormente. AGENTE INICIADOR INTERACCIÓN Asistente escritura y asistente gramatical. INTERACCIÓN Asistente escritura y asistente gramatical. INTERACCIÓN Asistente Gramatical AGENTE RECEPTOR Registrar Agentes Controlador DESCRIPCIÓN PROTOCOLO DE INTERACCIÓN Cada vez que un usuario ingresa al sistema se solita que los agentes estén registrados FIPA SUBSCRIBE De-registrar Agentes Controlador Cada vez que un usuario sale del sistema se solicita eliminarlos del registro de agentes activos. Solicitud de zona de mensajes Asistente de Escritura Cuando el asistente gramatical identifica errores sintácticos u ortográficos le indica al asistente de escritura que va a presentar un mensaje y de esta forma evita que haya saturación de información en la pantalla del usuario. FIPA INFORM FIPA INFORM Tabla 6. Tabla de Interacción ______________________________________________________________________ Asistente Virtual para la producción textual 66 7.3.1.2.2 MODELO DE ORGANIZACIÓN Proporcionar asistencia escritura de parrafos AVPT Asistencia Gramatical Asistencia Textual Agente Asistente Escritura Agente Asistente Gramatical <<resource>> Plantilla Ejercicio Tipo Parrafo <<resource>> Editor LingWeb Modelos tipo parrafo Reglas_Sintácticas Lexicón Figura 22. Modelo de Organización 7.3.1.2.3 MODELO DE ENTORNO Figura 23. Modelo de Entorno ______________________________________________________________________ Asistente Virtual para la producción textual 67 7.3.1.2.4 MODELO DE SERVICIOS, DE SECUENCIA Y DE ACTIVIDAD Corregir Ortografia EDITOR LINGWEB Asistente Gramatical Figura 24. Modelo de Servicios Corregir Ortografía EDITOR LINGWEB Corregir Sintaxis Asistente Gramatical Figura 25. Modelo de Servicios Corregir Sintaxis Identificar tipo de Parrafo PLANTILLA TIPO PARRAFO Asistente Escritura Figura 26.Modelo de Servicios Identificar tipo de párrafo Generar recomendaciones Macrotextuales PLANTILLA TIPO PARRAFO Asistente Escritura Figura 27. Modelo de Servicios Generar recomendaciones Macrotextuales Solicitar Zona de Mensajes Asistente Escritura Asistente Gramatical Figura 28. Modelo de Servicios Solicitar Zona de Mensajes ______________________________________________________________________ Asistente Virtual para la producción textual 68 Registrar Agentes Asistente Gramatical Asistente Escritura Controlador Figura 29. Modelo de Servicios Registrar Agentes De-Registrar Agentes Asistente Escritura Asistente Gramatical Controlador Figura 30. Modelo de Servicios De-Registrar Agentes A continuación se presentan los diagramas de secuencia y de actividad que describen el funcionamiento de cada servicio. Los diagramas de secuencia presentan la interacción que tienen los agentes entre ellos o con su entorno y en los diagramas de actividad se presenta el procedimiento que sigue el agente que provee el servicio. ______________________________________________________________________ Asistente Virtual para la producción textual 69 Diagrama de secuencia y de actividad servicio corregir ortografía Figura 31. Servicio corregir ortografía. Diagrama de Secuencia y de actividades ______________________________________________________________________ Asistente Virtual para la producción textual 70 Diagrama de secuencia y de actividad servicio corregir sintaxis Figura 32. Servicio corregir sintaxis. Diagrama de secuencia y Diagrama de actividades ______________________________________________________________________ Asistente Virtual para la producción textual 71 Diagrama de secuencia y de actividad servicio Identificar modelo de párrafo sd Servicio Identificar modelo de parrafo (FIPA inform protocol) / : Plantilla tipo parrafo / : Asistente Escritura 1 : Enviar evento OnVisible a través del Handler() 2 : Verificar la estructura del parrafo() 3 : Revisar los modelos de parrafo() 4 : Comparar la estructura del parrafo con los modelos de parrafo() 5 : Identificar el tipo de parrafo() 6 : Relacionar Estructuras parrafo- modelos macrotextuales() Evento Onvisible Verificar estructura de parrafo [Revisar modelos de párrafo] [comparar estructura del parrafo con los modelos] Clasificar la estructura de acuerdo a un tipo Figura 33. Servicio Identificar modelo de párrafo. Diagrama de secuencia y de actividad ______________________________________________________________________ Asistente Virtual para la producción textual 72 Diagrama de secuencia y de recomendaciones Macrotextuales actividad servicio generar sd Servicio Generar Recomendaciones Macrotextuales() / : Plantilla tipo parrafo / : Asistente Escritura 1 : Identificar el tipo de parrafo() 2 : Identifica la sección de parrafo para recomendar() 3 : Consultar Recomendaciones segun tipo de parrafo y seccion de escritura() 4 : Presentar recomendaciones macrotextuales() 5 : Esperar Tiempo X() 6 : Regresar al paso 2() Identificar el tipo de parrafo [Identificar la sección de escritura] Consultar las recomendaciones para el tipo y la sección del parrafo Presentar las recomendaciones asociadas al tipo de parrafo [Esperar tiempo X] Presentar nuevas recomendaciones No existen mas recomendaciones Existen mas recomendaciones Figura 34. Servicio Generar Recomendaciones Macrotextuales. Diagrama de secuencia y de actividad ______________________________________________________________________ Asistente Virtual para la producción textual 73 Diagrama de secuencia y de actividad servicio solicitar zona de mensajes sd Servicio solicitar zona de mensajes (FIPA Request Protocol) / : Asistente Escritura /Asistente Gramatical 1 : Solicitar Zona de Mensajes() 2 : Detener la presentacion de sugerencias() 3 : Informar solicitud atendida() 4 : Iniciar corrección ortográfica y sintáctica() 5 : Informar acción terminada() 6 : Continuar la presentación de recomendaciones al usuario() Figura 35. Servicio Solicitar zona de mensajes. Diagrama de secuencia y de actividad ______________________________________________________________________ Asistente Virtual para la producción textual 74 Diagrama de secuencia servicio Registrar Agentes sd Servicio Registrar Agentes (FIPA suscribe protocol) / : Asistente Gramatical / : Controlador 1 : Solicitar Suscripcion() 2 : Registrar() 3 : Notificar registro con la lista de Agentes() Figura 36. Servicio Registrar Agentes. Diagrama de secuencia Diagrama de secuencia De-registrar Agentes sd Servicio De- Registrar Agentes (FIPA inform protocol) / : Asistente Gramatical / : Controlador 1 : Inform() 2 : Eliminar el registro del agente() 3 : Notificar a los demás agentes que un agente se eliminó() Figura 37. Servicio De- registrar Agentes. Diagrama de secuencia ______________________________________________________________________ Asistente Virtual para la producción textual 75 Diagrama de actividad Registrar y De-registrar Agentes Figura 38. Servicio Registrar y De- registrar Agentes. Diagrama de Actividad 7.3.1.2.5 DIAGRAMA DE CLASES El diagrama de clases se presenta de acuerdo a las funciones del asistente textual y los ejercicios de escritura involucrados en este proyecto. En ellos se refleja el diseño detallado de la arquitectura planteada para el AVPT. CO_COURSE MA_POSTAG +POSTAG_ID +TAG +DESCRIPTION +LANGUAGE_ID +Crear() +Modificar() +Consultar() +Eliminar() MA_SPELL +WORD_ID +WORD +LANGUAGE_ID +POSTAG_ID 0..* 0..* +Crear() +consultar() +modificar() +eliminar() 1..* 0..* MA_SPELL_ERROR +ERROR_ID +WORD_ID +COURSE_ID +LANGUAGE_ID +USER_ID +ROL_ID +WRONG_WORD +crear() +consultar() +modificar() +eliminar() 1..1 CO_LANGUAGE +LANGUAGE_ ID +LANGUAGE_NAME +LANGUAGE_NAME_EN +LANGUAGE_FR +LOCALE 1..* +COURSE_ID +COURSE_COD +GROUP +COURSE_NAME +LANGUAGE_ID +CREDITO +ACADEMIC_PERIOD +ACTIVATE_DATE +KNOWLEDGE_FIELD_ID +SEMESTER +COURSE_TYPE_ID +USER_ID +FALG_CLONE +TIMELINE_MATERIAL_ID +PROGRAM_MATERIAL_ID +COURSE_PARENT_ID +Crear() +consultar() +modificar() +eliminar() 1..* 1..* MA_ROLE +ROLE_ID +ROLE_NAME +DESCRIPTION MA_USER +USER_ID +IDENTIFICATION +COD_STUDENT +USER_NAME +EMAIL +EMAIL_2 +TELEPHONE +ADDRESS +CITY +PASSWORD +QUESTION_PASSWORD +ANSWER_PASSWORD +PHOTO_FILE +ROLE_ID +LAST_LOGIN +THEME_NAME +LANGUAGE_CODE +EXTERNAL_USER_ID +Crear() +consultar() +modificar() +eliminar() +crear() +eliminar() +modificar() +consultar() +Crear() +consultar() +eliminar() +modificar() Figura 39. Diagrama de clases corrección ortográfica ______________________________________________________________________ Asistente Virtual para la producción textual 76 MA_SYNTATIC_ERROR MA_SYNTATIC +SINTATIC_ID +SINTATIC UNID +DESCRIPTION +SECUENCE +LANGUAGE_ID 1..* +INSERTAR() +ELIMINAR() +MODIFICAR() +CONSULTAR() +ERROR_ID +SYNTATIC_ID +SENTENCE +COURSE_ID +USER_ID +ROLE_ID +LANGUAGUE_ID MA_ROLE 1..* +INSERTAR() +ELIMINAR() +CONSULTAR() +ACTUALIZAR() +INSERTAR() +ELIMINAR() +CONSULTAR() +MODIFICAR() 1..* *..* CO_LANGUAGUE +LANGUAGE_ID +LANGUAGUE_NAME +LANGUAGUE NAME_EN +LANGUAGUE NAME FR +LOCALE +INSERTAR() +MODIFICAR() +ELIMINAR() +CONSULTAR() 1..* +ROLE_ID +ROLE_NAME +DESCRIPTION 1..* MA_USER CO_COURSE +CORUSE_ID +COURSE_GROUP_ID +GROUP_ +COURSE_NAME +.... +INSERTAR() +ELIMINAR() +CONSULTAR() +ACTUALIZAR() +USER_ID +IDENTIFICATION +COD_STUDENT +.... +INSERTAR() +MODIFICAR() +ELIMINAR() +CONSULTAR() Figura 40. Diagrama de clases corrección sintáctica 7.3.1.2.6 MODELO DE PERSISTENCIA El modelo de persistencia se hizo de acuerdo al mapeo realizado con el diagrama de clases. En este modelo se presenta la persistencia asociada a la corrección ortográfica y sintáctica. Además el modelo de persistencia creado permite una adecuada manipulación de datos, por la asociación que se presente entre errores, usuarios y ejercicios de tipo párrafo. Es de destacar la utilización de la tabla llamada co_language que permite el almacenamiento de unidades sintácticas y lexemas por idiomas en este caso los disponibles son: español, inglés y francés. Para las unidades sintácticas se dispuso su almacenamiento a través de la tabla Ma_syntac y para los lexemas se tiene la tabla Ma_spell. ______________________________________________________________________ Asistente Virtual para la producción textual 77 Figura 41. Modelo de persistencia corrector ortográfico Figura 42. Modelo de persistencia corrector sintáctico ______________________________________________________________________ Asistente Virtual para la producción textual 78 8. PROTOTIPO ASISTENTE VIRTUAL PARA LA PRODUCCION TEXTUAL (AVPT) Es importante comprender que el AVPT está diseñado solo para hacer sugerencias gramaticales y de escritura en ejercicios de producción textual, los cuales son una parte importante de las diferentes funcionalidades que ofrece LingWeb. Cada uno de estos ejercicios busca evaluar el desempeño de los estudiantes en sus diferentes habilidades cognitivas. De ahí la importancia pedagógica del asistente textual en los tantos ejercicios de escritura que pueda diseñar un docente que utilice la plataforma. El AVPT se implementó como un módulo de la plataforma LingWeb, ha utilizado diferentes tecnologías que se han aplicado de acuerdo a las diferentes capas del sistema, buscando siempre mantener la arquitectura establecida para el proyecto. A continuación se describe las diferentes capas y las tecnologías asociadas a cada una de ellas. Capa de presentación LingWeb en su capa de presentación hace uso de OpenLaszlo (.lzx), el cual permite desarrollar módulos fácilmente a través de la implementación de librerías. Para el prototipo se elaboraron varias interfaces de usuario de acuerdo al perfil: Estudiante: Interfaz Ejercicio Tipo párrafo (se tomó como base plantillas existentes), el Editor LingWeb con todos sus componentes: Markin, comentario global, comentario por sección, corrección ortográfica y sintáctica , y la Interfaz del agente. Profesor: Interfaz Ejercicio Tipo párrafo (se tomó como base plantillas existentes), el Editor LingWeb y el gestor de estadísticas. Administrador: Interfaz de configuración tipo párrafo (se tomó como base plantillas existentes), el Editor LingWeb, administrador de unidades sintácticas, administrador de tags (clasificadores de palabras del lexicón) y el administrador del lexicón. Capa Lógica En esta capa se ejecutan las funciones de un nivel más complejo, donde se presentan por lo general servicios de escritura, lectura, listado, eliminación y actualización de tablas en la base de datos. Esto se hace a través de servicios implementados en J2EE. ______________________________________________________________________ Asistente Virtual para la producción textual 79 Capa de Almacenamiento El almacenamiento de la información se hace en una base de datos sobre el motor PostgreSQL la cual es accedida a través de los archivos de persistencia creados para cada tabla. Se utilizó JPA para realizar el mapeo entre las clases y las tablas. Esta base de datos es generada usando un modelo de datos previamente diseñado. Basándose en la estructura definida para LingWeb, se hace necesario tener en cuenta que la aplicación prototipo debe acoplarse perfectamente a la arquitectura que esta maneja. Partiendo de que LingWeb es una aplicación dinámica y flexible, diseñada para trabajar con varios idiomas el prototipo no podría ser diseñado solamente para un solo idioma y mucho menos tener una base de conocimiento estática; dicha base de conocimiento debe ser alimentada por un usuario administrador por esto el prototipo debe tener a su disposición una interfaz de configuración y administración. La capa de almacenamiento de LingWeb está definida en una base de datos, por lo tanto, para que el lexicón y la base de conocimiento se acople a dicha arquitectura la mejor opción es realizar su implementación en la misma base de datos, no solo para respetar la filosofía de la plataforma sino para mantener el prototipo lo más eficiente posible (véase sección 7.1.2.1 comparación con el lexicón). Teniendo en cuenta que es una aplicación Web, se asume que maneja varios usuarios simultáneos es importante que la revisión sintáctica y ortográfica, registro de errores y otras funciones estén ubicados en un servicio con la posibilidad de que todos los usuarios puedan acceder a este sin sobrecargar la aplicación. Por último se hace uso de agentes software para los procesos de recomendación y estadísticas con el fin de brindar un acompañamiento real y proactivo al usuario. El asistente virtual para la producción textual es un sistema diseñado para la asistencia al estudiante en cuanto a la escritura de un texto, esta asesoría está dirigida por dos tipos de agentes: uno que sugiere en cuanto a la gramática y otro que presenta su ayuda de acuerdo a tipo de párrafo que se desea redactar. Para lograr lo anterior, se tuvieron en cuenta los diferentes roles de usuario; el perfil administrador será el encargado de enriquecer el lexicón, las unidades sintácticas y las recomendaciones Macrotextuales; el perfil docente será el encargado de la revisión y diseño de los ejercicios de escritura de párrafos y el perfil estudiante hará uso de asistente textual y las diferentes herramientas de ayuda dispuestas en la plataforma. Las herramientas de corrección ortográfica y sintáctica están disponibles a través del editor LingWeb las cuales se habilitan dando clic sobre unos botones disponibles en el mismo. Para saber si es necesario hacer una revisión de un ______________________________________________________________________ Asistente Virtual para la producción textual 80 texto el asistente gramatical genera un mensaje una vez ha realizado sus labores de monitoreo. Por medio del monitoreo, el asistente detecta si existen errores de cualquier tipo. La revisión se realiza en una ventana independiente la cual presenta el texto indicando los errores y las sugerencias correspondientes. 8.2 INTERFAZ GRÁFICA DE USUARIO PERFIL ADMINISTRADOR Para el perfil del administrador se encuentra: el administrador del lexicón, la configuración de la plantilla tipo párrafo (ver figura 4) a través de la cual se puede alimentar la base de conocimiento del agente, el administrador de tags y el administrador de unidades sintácticas. En la figura 43 se presenta la interfaz de administración del lexicón, la cual consta de tres campos: Palabra como su nombre lo indica es la palabra que se desea adicionar al lexicón, idioma muestra si la palabra está escrita en español, inglés o francés, el postag es la sigla de la clasificación de las palabras por ejemplo: vb, sust ó adj y la descripción es el nombre completo, es decir, si es verbo, sustantivo, adjetivo entre otros. Figura 43. Interfaz administrador del lexicón En la figura 44 se visualiza la interfaz de administración de postag la cual está compuesta por idioma, si es inglés, francés o español, el tag que corresponde a la sigla de los clasificadores de palabras y la descripción es lo que esos nombres representan. ______________________________________________________________________ Asistente Virtual para la producción textual 81 Figura 44. Interfaz administración de POS tags La interfaz de administración de unidades sintácticas (figura 45) está compuesta por el idioma, la unidad sintáctica es el nombre corto de la estructura sintáctica, la secuencia es la secuencia de postag que corresponden a la unidad sintáctica y la descripción es el nombre largo de la unidad sintáctica. Figura 45. Interfaz administración de unidades sintácticas ______________________________________________________________________ Asistente Virtual para la producción textual 82 PERFIL DOCENTE Para el perfil docente se encuentra: el monitor de estadísticas ortográficas y sintácticas y la plantilla de configuración del ejercicio que es la selección de la plantilla a utilizar puesto que ya han sido configuradas desde el perfil administrador. El monitor de estadísticas (figura 46) presenta al docente el porcentaje de errores ortográficos y sintácticos que obtuvo cada estudiante en el momento de realizar su composición textual. Figura 46. Interfaz estadísticas ortográficas y sintácticas. La figura 47 representa la plantilla de selección para el tipo de párrafo, en la cual se presenta una lista de opciones configuradas previamente por el rol administrador. Cuando se hace clic sobre un elemento de la lista, el sistema le presenta una vista previa de la plantilla seleccionada. Figura 47. Interfaz plantilla tipo párrafo rol docente. Para el perfil del estudiante se encuentra: el asistente textual que realiza recomendaciones de escritura y gramaticales. ______________________________________________________________________ Asistente Virtual para la producción textual 83 En la figura 48 se visualiza el editor LingWeb que aparece después de ser activado desde alguna sección del párrafo, con el asistente textual ubicado en la parte inferior derecha de la pantalla. Figura 48. Interfaz asistente textual A continuación se presenta el editor LingWeb resaltando sus botones de corrección ortográfica y sintáctica donde cada uno activa la interfaz presentada en la figura 50 y 51 respectivamente. Figura 49. Interfaz Editor LingWeb. El corrector ortográfico presenta una interfaz en la que identifica el idioma sobre el cual se va a hacer la corrección, en este caso español, el texto señalado en color rojo es para identificar las palabras con errores ortográficos; y en la parte inferior se visualiza un campo que contiene las palabras encontradas como sugerencias para dichos errores, de la misma forma se encuentra diseñada la interfaz del corrector sintáctico. ______________________________________________________________________ Asistente Virtual para la producción textual 84 Figura 50. Interfaz corrector ortográfico. Figura 51. Interfaz corrector sintáctico. A continuación se presenta un fragmento de código para la interfaz de usuario, donde se observan las vistas (view) que contienen los diferentes elementos de la parte gráfica como labels, buttons, combobox,list, entre otros. Vale destacar que el list recibe el dataset de la consulta de sugerencias ortográficas. ______________________________________________________________________ Asistente Virtual para la producción textual 85 8.3 SERVICIOS Figura 52. Arquitectura LingWeb en tres capas (Aricapa 2009) ______________________________________________________________________ Asistente Virtual para la producción textual 86 En la anterior figura, se presenta una vista por capas de LingWeb en la que se pueden encontrar los elementos tales como el BackendService, el Service y el DataManager. El BackendService es una clase utilizada para ejecutar las peticiones de la capa de presentación la cual realiza consultas a los servicios REST de la capa lógica, por lo tanto el Service se utiliza como interfaz de comunicación entre la capa de presentación y la capa de almacenamiento; y El Datamanager es el administrador de datos que se encarga directamente de la manipulación de la persistencia. En los Servicios se llevan a cabo todas las funciones de corrección, sugerencias y actualización de estadísticas, de la misma forma también se hace la comunicación con la base de datos (Lexicón y base de conocimiento del agente). Se encuentran disponibles a través de una solicitud Web, esta solicitud se maneja con los conectores ubicados en el BackendService denominado listSpellChoises como se muestra en el siguiente fragmento de código, que es un módulo orientado a los servicios encargado de tomar los parámetros de una interfaz dada y enviarlos como una solicitud http a través del método post a los diferentes servicios de LingWeb, así mismo, toma la respuesta de los servicios y la almacena en un dataset para que pueda ser accedido por la interfaz de usuario. A continuación se presenta un fragmento de código, donde se aprecia el Service listSpellChoises que es el encargado a través del método check que toma una palabra enviada al servicio como parámetro y la compara con el lexicón, usando el algoritmo de la distancia de Levenshtein para devolver al BackendService la lista de opciones de corrección. ______________________________________________________________________ Asistente Virtual para la producción textual 87 De la misma forma se encuentra los dataset utilizados por la interfaz de usuario, los dataset son empleados para almacenar los resultados de una consulta asociada a un servicio. Una vez se realiza la solicitud Web a través del BackendService se ejecuta la solicitud en el servicio la cual hace conexión con la base de datos utilizando el DataManager. A continuación se presentan segmentos de código correspondientes al Datamanager y los servicios implementados en el AVPT. Aquí se presenta la función check del DataManager que recibe como parámetros el id del idioma y la palabra a ser revisada, le sigue una consulta a la base de datos para listar las palabras en el idioma indicado, este resultado se almacena en la variable Query, con esto se procede a computar la distancia de Levenshtein para devolver las posibles sugerencias al serviceRest ______________________________________________________________________ Asistente Virtual para la producción textual 88 8.4 IMPLEMENTACIÓN DEL ASISTENTE EN JADE En la plataforma LingWeb se hace uso de un agente controlador denominado JadeGateway el cual permite la creación y comunicación de agentes, así como la conexión del sistema multiagente con el resto de la plataforma, que está separada por un Servlet que recibe la petición de servicios Rest cuando se realiza la petición desde OpenLaszlo. Es decir, el agente controlador es el encargado de activar los procesos correspondientes al asistente textual. Como en otras secciones se había expresado, el asistente textual está conformado por el asistente de escritura y el asistente gramatical, que visualmente está representado por la imagen de un joven como muestra en la figura 53, además estará acompañado de un texto que puede ser la recomendación del asistente gramatical o del asistente de escritura. Figura 53. Interfaz Asistente Textual. En el esquema de la figura 54 se plantea paso a paso el proceso de revisión y recomendación que realiza el asistente gramatical. Como se ha mencionado anteriormente se utiliza para conocer la lista de sugerencias ortográficas o sintácticas es necesario activar a través del Editor LingWeb la interfaz correspondiente a cada una. Primero se monitorea el texto escrito, luego es capturado y comparado con el lexicón y las unidades sintácticas; si esta comparación arroja errores el agente hace la solicitud de la zona de mensajes y el presenta el mensaje que le indica al usuario que realice el proceso de revisión, en el momento que el usuario activa las interfaces de ortografía y sintaxis se presentan las sugerencias que arrojó la consulta. ______________________________________________________________________ Asistente Virtual para la producción textual 89 Figura 54. Esquema de funcionamiento para el asistente gramatical En el siguiente esquema se presenta el proceso de recomendación que realiza el asistente de escritura, el cual sigue el proceso indicado en la sección 7.2 Figura 44.Esquema de funcionamiento para el asistente de escritura A continuación se presenta un segmento de código que presenta una parte de la implementación del asistente el cual se encarga realizar el monitoreo bajo un comportamiento CyclicBehavior sobre el texto y detectar si existen errores de tipo ortográfico y/o sintácticos, para así presentar un mensaje al usuario indicándole que se debe hacer la revisión correspondiente. En el código se puede observar la función Action que es lanzada por el CyclicBehavior cada vez que captura el texto del editor LingWeb, que mediante el uso de las performativas se presenta el mensaje de error al usuario. ______________________________________________________________________ Asistente Virtual para la producción textual 90 8.5 PRUEBAS Las pruebas realizadas al prototipo AVPT fueron hechas de acuerdo a los requerimientos del anexo1. ERS-AVPT y sus resultados fueron registrados en el anexo 2. PRUEBAS AVPT, el resultado del trabajo realizado con agentes fue satisfactorio puesto que cumplen con la asistencia deseada para el usuario estudiante, y el procesamiento de lenguaje natural cumple con las expectativas del alcance del análisis a pesar de la poca información encontrada para el proceso de análisis sintáctico. ______________________________________________________________________ Asistente Virtual para la producción textual 91 8.6 RESULTADOS • La herramienta desarrollada cumple con las tareas establecidas para los procesos de acompañamiento y revisión de errores en los ejercicios de escritura de párrafo. • Los modelos y recomendaciones Macrotextuales pueden ser ampliadas a través del perfil administrador, por lo tanto hacen de este un sistema escalable. • La generación de estadísticas se realizan en tiempo real permitiendo al docente tener una mejor concepción del desempeño de sus estudiantes. • La velocidad de revisión de los analizadores dependen directamente de la capacidad del servidor sobre el cual corre la plataforma. • El prototipo permite ser escalado para el uso en otros idiomas puesto que los analizadores y el lexicón fueron creados de tal forma que permite la inserción de nuevos lexemas y unidades sintácticas. ______________________________________________________________________ Asistente Virtual para la producción textual 92 9. CONCLUSIONES Conclusiones del proyecto en General • Un proyecto como LingWeb es el pionero a nivel nacional en plantear una metodología de enseñanza guiada por ejercicios, mas aun en el proceso de escritura donde se encuentra muchas falencias en cuanto a estructura y gramática, por lo tanto la utilización de una herramienta pedagógica basada en agentes para e-learning fortalece de manera plena el proceso de aprendizaje de un segundo idioma. • El uso de agentes en las plataformas e-learning es un avance importante en este tipo de proyectos puesto que son una herramienta de gran utilidad para los procesos de aprendizaje. • El uso de agentes como acompañante en la composición textual permite al docente tener una mejor idea del desempeño de sus estudiantes ya que presenta reportes en tiempo real de los errores que se obtuvieron en el desarrollo de un ejercicio de escritura. Además en el rol de estudiante fortalece los procesos de aprendizaje porque el proceso de recomendación está basado en métodos pedagógicos diseñados y probados por los docentes de idiomas • El uso de algoritmos como la distancia de Levenshtein pueden ser adaptados para corrección sintáctica proporcionando mejores resultados debido a que optimiza el proceso de sugerencias, siendo este un mecanismo de comparación de unidades sintácticas que se comporta de forma eficiente en el momento de presentar los resultados de su consulta. • De acuerdo al estudio de las herramientas ortográficas y sintácticas no se encontró ninguno que fuera fácilmente adaptable a la plataforma Web empleada, por lo tanto se utilizaron los conceptos claves para el desarrollo de estos analizadores. • El desempeño del analizador sintáctico es una buena aproximación a lo que se tiene en otras herramientas de escritorio, porque en ambientes Web no existen desarrollos que se pudieran tomar como base. • Gracias al estudio de otras herramientas ortográficas y sintácticas se logró diseñar e implementar sus características para trabajar en un entorno Web J2EE, puesto que no se logró hacer la selección de una herramienta existente. ______________________________________________________________________ Asistente Virtual para la producción textual 93 Conclusiones a nivel personal • El desarrollo de este proyecto me ayudó a fortalecer los conocimientos en el área de procesamiento de lenguaje natural y agentes software, enriqueciendo mi desarrollo profesional. • La participación en el proyecto LingWeb me permitió adquirir un conocimiento integral porque para su desarrollo se necesitó de la participación de otras carreras como son: Idiomas y Diseño gráfico. • Es muy gratificante el haber elaborado una herramienta que abra las puertas a futuras investigación en el uso de agentes aplicados al procesamiento del lenguaje natural. • El desarrollo de este proyecto me permitió mejorar la capacidad de análisis porque es necesario conocer a fondo las dificultades que tiene el estudiante para poder desarrollar las herramientas que brinden la solución a sus problemas. ______________________________________________________________________ Asistente Virtual para la producción textual 94 10. TRABAJO FUTURO • Como trabajo futuro se puede considerar hacer uso de los registros de errores de cada estudiante para focalizar la ayuda del agente en aspectos donde el usuario presente mayores falencias. • Mejorar los alcances del agente desarrollado, llevándolo a un nivel de análisis semántico, en donde este pueda conocer el significado de lo que el usuario está escribiendo y con base en esto realizar las posibles recomendaciones. • Tomar las definiciones de procesamiento de lenguaje natural realizadas en este proyecto y aplicarlas en otros entornos Web para evaluar su comportamiento y portabilidad. • Considerar la posibilidad realizar el acompañamiento al usuario en otro tipo de actividades, como el ejercicio tipo texto que trabaja con composiciones textuales de mayor nivel por ejemplo: ensayos, discursos, textos informativos, entre otros. • Explorar otro tipo de algoritmos que mejoren el desempeño de la revisión sintáctica en un entorno Web puesto que el presente proyecto centralizó su desarrollo en sus objetivos sin tener en cuenta su comportamiento en otras aplicaciones Web. ______________________________________________________________________ Asistente Virtual para la producción textual 95 11. BIBLIOGRAFÍA Adam, J. M. (1992). Les textes: types et prototypes. Récit, description, argumentation et dialogu e. Paris: Éditions Nathan. Adam, J. M. y Revaz, F. (1996). (Proto)Tipos: la estructura de la composición en los textos. En Textos ¿Qué textos? Textos Didáctica de la Lengua y de la Literatura, 10, 9-22. Adam, J.M. (1999). Linguistique textuelle. Des genres de discours au textes. Paris: Éditions Nathan/HER. Aho Alfred V. , Sethi Ravi , Hill Murray , Ullman Jeffrey D..Compiladores, Principios, Tecnicas y Herramientas. Segunda Edicion. Editorial Prentice Hall. 2008. Álvarez, S. y Cobo, L. (2003). Diseño y evaluación de un sitio web para la enseñanza y el aprendizaje de idiomas en la Universidad del Valle. Trabajo de Grado, Ingeniería de Sistemas, Universidad del Valle. Aricapa Martinez Jose Luis, Puentes Delgado Julio Cesar. Ambiente Virtual Basado En Una Arquitectura Multiagente Para Sistemas E-Learning Centrados En La Enseñanza De Idiomas. Trabajo de grado. Ingenieria de sistemas, Universidad del Valle. Bauer, Bernhard, Jörg P. Müller, and James Odell. 2001. “Agent UML: A Formalism for Specifying Multiagent Software Systems.” International Journal of Software Engineering and Knowledge Engineering 11 (3): 207–230. Bauer, Bernhard, and James Odell. 2005. “UML 2.0 and agents: how to build agent-based systems with the new UML standard.” Engineering Applications of Artificial Intelligence 18 (2): 141–157 (March). Beglar y Hunt (2002). Implementing Task-based Language Teaching. En Richards & Renandya, W. (ed) Methodology in Language Teaching. An Anthology of Current Practice (pp. 96-106), Cambridge: Cambridge University Press. Bellifemine, F., G. Caire, A. Poggi, and G. Rimassa. 2003. “JADE: A White Paper.” EXP in search of innovation 3 (3): 6–19. Bellifemine Fabio, Caire Giovanni, Trucco Tiziana, Rimassa Giovanni (2005), Jade programmer’s guide. TILab S.p.A. Berdugo, M. y Pedraza, N. (2005) Construcción de un Ambiente Web para la enseñanza y el aprendizaje de idiomas. Cali: Unidad de Artes Gráficas Fac. Humanidades, Universidad del Valle. ______________________________________________________________________ Asistente Virtual para la producción textual 96 Bernon, Carole, Massimo Cossentino, and Juan Pav´on. 2005a. “Agentoriented software engineering.” Knowl. Eng. Rev. 20 (2): 99–116. Bernon, Carole, Massimo Cossentino, 2005b. “An Overview of Current Trends in European AOSE Research.” Informatica, vol. 29. Bernon, Carole, Marie-Pierre Gleizes, Sylvain Peyruqueou, and Gauthier Picard.2003. Pages 156–169 in ADELFE: A Methodology for Adaptive Multiagent Systems Engineering. Springer Berlin / Heidelberg. Borja Buera y Mapi Torres (2001). El mundo de los Bloques en lenguaje natural “DYPAR-I”. Ingeniería de los sistemas basados en conocimiento. . Universidad de Zaragoza. Bordini, R., L. Braubach, M. Dastani, A. Seghrouchni, J. Gomez-Sanz, and Others. 2006. “A Survey of Programming Languages and Platforms for MultiAgent Systems.” Informatica, Volume 30. 33–44. Camps, A. (2003). Texto, proceso, contexto, actividad discursiva: puntos de vista diversos sobre la actividad de aprender y de enseñar a escribir. En Camps (comp.) Secuencias didácticas para aprender a escribir. Barcelona: Graó, 1332. Camps, A. (comp.). (2003a) Secuencias didácticas para aprender a escribir. Barcelona: Graó. Cristalab. Publicación Tutoriales sección tecnologías y otros. Comparar textos usando IA con la Distancia de Levenshtein. 04 de Octubre de 2010. Carretero, M. y Limón, M. (1997). Problemas actuales del constructivismo. De la teoría a la práctica. En Mª-J. Rodrigo y J. Arnay (Eds.) La construcción del conocimiento escolar (pp. 137-153), Barcelona: Paidós. Cervenka, Radovan, and Ivan Trencansky. 2004. “Software Development Methodology Solutions, Agent Modeling Language: Language Specification.” Technical Report, Whitestein Technologies AG. Version 0.9. Chapelle, C. (2001). Computer Applications in Second Language Acquisition. Foundations for teaching, testing and research. Cambridge: Cambridge University Press. Chapelle, C. (2005). Interactionist SLA Theory in CALL Research. En J. Egbert y G. Petrie (eds) CALL Research Perspectives (pp. 53-64). Mahwah, NJ: Lawrence Erlbaum Associates. Damerau, Fred J. "A technique for computer detection and correction of spelling errors",Communications of the ACM , vol 7, nº 3, pp.171-176, 1964. ______________________________________________________________________ Asistente Virtual para la producción textual 97 DeLoach, Scott A. 1999. “Multiagent Systems Engineering: A Methodology and Language for Designing Agent Systems.” Agent-Oriented Information Systems ’99 (AOIS’99). 9. DeLoach, Scott A. 2006. “Multiagent Systems Engineering of Organizationbased Multiagent Systems.” 4th International Workshop on Software Engineering for Large-Scale Multi-Agent Systems (SELMAS’05). Springer LNCS Vol 3914, Apr 2006, 109–125. DeLoach, Scott A., and Mark F. Wood. 2000. “MultiAgent Systems Engineering: The Analysis Phase.” Technical Report, Air Force Institute of Technology. Dubin, F. y Olshtain, E. (1986). Course design. Developping Programs and Materials for Language Learning. Cambridge: Cambridge University Press. Egbert, J. y Handson-Smith, E. (1999). CALL environments. Research, Practice and Critical Issues. Alexandria, VI: TESOL. El lexicón en el procesamiento de lenguaje natural: la lexicografía computacional. http://elies.rediris.es/elies9/2-2.htm Flower, L. y Hayes, J. (1981). A Cognitive Process. Theory of Writing, College Composition and Communication, 32, 365-387. FreeLing Home Page. Sitio oficial http://nlp.lsi.upc.edu/freeling/ . Consultado Junio 2011. Fuentes, Rubén, Jorge J. Gómez-Sanz, and Juan Pavón. 2006. “Integrating agent-oriented methodologies with UML-AT.” AAMAS ’06: Proceedings of the fifth international joint conference on Autonomous agents and multiagent systems. New York, NY, USA: ACM Press, 1303–1310. Giunchiglia, Fausto, John Mylopoulos, and Anna Perini. 2002. “The tropos software development methodology: processes, models and diagrams.” AAMAS: Autonomous Agents and Multi-Agent Systems. 35–36. Gómez-Sanz, Jorge J. 2002. “Modelado de Sistemas Multi-Agente.” Ph.D. diss., Departamento de Sistemas Informáticos y Programación, Facultad de Informática, Universidad Complutense de Madrid. Gómez-Sanz, Jorge J. 2003. “Metodologías para el diseño de sistemas multiagente.” Inteligencia Artificial, Revista Iberoamericana de Inteligencia Artificial 18:51– 64. DBLP, http://dblp.uni-trier.de. Guzmán-Arenas Adolfo. Hallando los temas principales en un artículo en español. Soluciones Avanzadas. Vol. 5, No. 45, p. 58, No. 49, p. 66, 1997. Hallyday, L. (1999). Theory and Research: Input, Interaction, and CALL, in Egbert y Handson-SmithH, CALL environments. Research, Practice and Critical Issues. Alexandria, VI: TESOL. ______________________________________________________________________ Asistente Virtual para la producción textual 98 Hovy Eduard H. .Natural language I: New possibilities in machine translation. October 1989. Proceedings of the workshop on Speech and Natural Language HLT '89. Publisher: Association for Computational Linguistics. Hendrix Gary G., Carbonell Jaime G. A tutorial on natural-language processing. January 1981. Proceedings of the ACM '81 conference ACM 81. Publisher: ACM Press. Huerta-Macías, A. (2002). Alternative Assessment: Responses to Commonly Asked Questions. En Richards, J. y W. Renandya (ed). Methodology in Language Teaching. An anthology of Current Practice, 7th edition. Cambridge: Cambridge University Press, 338-343. Infante López Gabriel. Análisis sintáctico automático del español utilizando material de Entrenamiento en Ingles. Marzo 2006. Pág.:8. JavaScript SpellCheck. Sitio Oficial consultado Junio 2011. http://www.javascriptspellcheck.com Leal Francisco, and Joao Rodriguez. 2001. “Message: Methodology for Engineering Systems of Software Agents.” Technical Report, Telecom Italia Lab and PT Inova¸c˜al. Project P907. Lin, Fuhua Oscar. 2005. Designing Distributed Learning Environments with Intelligent Software Agents. INFOSCI, Infomration Science Publishing. Link Grammar. Sitio http://www.link.cs.cmu.edu/link/. Consultado Junio 2011 Lipponen, L. (2002). Exploring foundations for computer-supported collaborative learning. In G. Stahl (Ed.) Computer-supported collaborative learning: foundations for a CSCL community. Proceedings of the Computer-supported Collaborative Learning 2002 Conference (pp. 72-81). Mahwah: Erlbaum. McRoy Susan W., Channarukul Songsak, Ali Syed S. Creating natural language ouput for real-time applications. June 2001 . intelligence, Volume 12 Issue 2 . Publisher: ACM Press Machuca Villegas Liliana Esther. 2009. SE-MAS (arquitectura multiagentes para sistemas e-learning centrados en la enseñanza de idiomas). Tesis de Maestría. Universidad del Valle. Mas, Ana. 2005. Agentes Software y Sistemas Multi-Agente. Conceptos, arquitecturas y aplicaciones. Pearson Educación, S. A. Madrid. Marzal A.; Vidal E. “Computation of Normalized Edit Distance and Applications ” IEEE Transactions on Pattern Analysis and Machine, vol 15, nº 9, pp. 926-932, 1993 ______________________________________________________________________ Asistente Virtual para la producción textual 99 Nunan, D. (1988). Syllabus design. Oxford: Oxford University Press. Odell, J., H. V. D. Parunak, and B. Bauer. 2000. “Extending UML for agents.” Edited by G. Wagner, Y. Lesperance, and E. Yu, the Agent Oriented Information Systems Workshop at the 17th National conference on Artificial Intelligence. ICue Publishing, 3–17. Padgham, Lin, and Michael Winikoff. 2002. “Prometheus: a methodology for developing intelligent agents.” AAMAS. 37–38. Pavón, Juan, and Jorge J. Gómez-Sanz. 2003. “Agent oriented software engineering with INGENIAS.” Edited by V. Marik, J. M¨uller, and M. Pechoucek, Multi-Agent Systems and Applications III, volume 2691 of LNCS. Springer Verlag, 394–403. Pedraza, N. y Berdugo, M. (2005). Un estado del arte del desarrollo de ambientes web instruccionales para lenguas y otras áreas, Lenguaje 33, 197237. Pedraza, N. y Berdugo, M. (sf). Diseño y evaluación de una plataforma web para la enseñanza y el aprendizaje de idiomas. Fase II. Informe final de investigación. Fac. de Humanidades, Escuela de Ciencias del Lenguaje, Universidad del Valle. Piaget, J. (1935/1969). Les méthodes nouvelles, leurs bases psychologiques. En Psychologie et pédagogie, Éditions Denoèl (1969). Paris: Folio essais. Piaget, J. (1965/1969). Éducation et instruction depuis 1935. En Psychologie et pédagogie, Éditions Denoèl (1969). Paris: Folio essais. Richards, J. C. y Rodgers, T. (2001). Approaches and Methods in Language Teaching. 2ª Ed. Cambridge University Press. Richards, J. y W. Renandya, ed. (2002). Methodology in Language Teaching. An anthology of Current Practice, 7th edition. Cambridge: Cambridge University Press. Ross Steven, Brownholtz Elizabeth, Armes Robert. A multiple-application conversational agent. January 2004 .Proceedings of the 9th international conference on Intelligent user interfaces IUI '04. Publisher: ACM Press. Scardamalia, M., y Bereiter, C. (1987). The psychology of written composition. Hillsdale, NJ: Lawrence Erlbaum. Sidner candace, Boetter Carolyn, Rich Charles, Lesson Learned in Building Spoken Language Collaborative Interface agents. Pag: 6. Publisher: ACM Press. ______________________________________________________________________ Asistente Virtual para la producción textual 100 Seow, A. (2002). The Writing Process and Process Writing. En Richards, J. y W. Renandya (ed). Methodology in Language Teaching. An anthology of Current Practice, 7th edition. Cambridge: Cambridge University Press, 315-320. Stoller, F. (2002). Project Work: A Means to Promote Language and Content. En Richards y Renandya, W. (ed) Methodology in Language Teaching. An Anthology of Current Practice (pp. 107-120), Cambridge: Cambridge University Press, 107-120. Tagliante, C. (1991). L'évaluation. Coll. Techniques de Classe. Paris: Clé International. The Stanford Parser. Sitio Oficial The Stanford Natural Language Processing Group http://nlp.stanford.edu/software/lex-parser.shtml. Consultado Junio 2011. Traum David, Rickel Jeff.Conversational agents: Embodied agents for multiparty dialogue in immersive virtual worlds. July 2002 . Proceedings of the first international joint conference on Autonomous agents and multiagent systems: part 2 AAMAS '02. Publisher: ACM Press Van Drie, J. (2005). Historical Reasoning in a Computer-Supported Collaborative Learning Environment. En Learning about the past with new technologies. Fostering historical reasoning in computer-supported collaborative learning. Tekst. - Proefschrift Universiteit Utrecht. En http://igiturarchive.library.uu.nl/dissertations/2005-1220-200137/index.htm, consultado el 18 de julio de 2007. Vigotsky, L.S. (1978). Mind in society. The development of higher psychological processes. Cole, John-Steiner, Scribner (Eds.). Mass: Harvard University Press, Cambridge. Villaseñor Luis, Montes Manuel, Caelen Jean. A model for the conversation multimodal man-machine: integration of speech and action. August 2003. Proceedings of the Latin American conference on Human-computer interaction CLIHC '03. Wiebe Janyce, Hirst Graeme, Horton Diane. Language use in context. January 1996. Communications of the ACM, Volume 39 Issue 1. Publisher: ACM Press. Wooldridge, M., N. R. Jennings, and D. Kinny. 2000. “The Gaia Methodology for Agent-Oriented Analysis and Design.” Autonomous Agents and Multi- Agent Systems 3 (3): 285–312. Wooldridge, Michael. 2002. An Introduction to MultiAgent Systems. Wiley. Yildiz, R., and M. Alkins. 1996. “The Impact of Multimedia Simulations on 14 Year-old Students.” British Journal of Educational Technology 27 (2): 106–115. in (McCarty ______________________________________________________________________ Asistente Virtual para la producción textual 101