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

Documentos relacionados