(lambda (home ) )

La idea de esta página es servir como repositorio de ideas, documentos, código, esquemas, media, etc. para el desarrollo de mi proyecto de titulación, para optar al título de Ingeniero Civil en Computación e Informática en la Universidad Andrés Bello, ubicada en Santiago de Chile.

Palabras clave: lenguaje natural, sneps, lisp, allegro, clisp, generación y procesamiento de lenguaje natural, sistemas pregunta-respuesta, preguntas frecuentes, faq, ingeniería, computación, unab.

<!– @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm; text-align: justify } P.western { font-family: “Linux Libertine”; font-weight: demi-light } P.cjk { font-size: 10pt } H2 { margin-bottom: 0.21cm } H2.western { font-family: “Linux Libertine”; font-size: 14pt; font-style: italic } H2.cjk { font-family: “HG Mincho Light J”; font-size: 14pt; font-style: italic } H2.ctl { font-size: 14pt; font-style: italic } –>

Universidad Andrés Bello – Facultad de Ingeniería

Taller de Título I – Avance Proyecto de Titulación

Implementación de un Sistema “Pregunta – Respuesta” mediante el uso de Lenguaje Natural

José Ignacio Medina Marín – jos.medina@uandresbello.edu

Junio, 2008

Descripción

Un sistema pregunta – respuesta es una aplicación que permite realizar una recuperación de información de forma especial: a partir de una pregunta realizada en lenguaje natural, el sistema devuelve una respuesta concreta.

Los sistema de búsqueda habituales realizan recuperación de información a partir de documentos relevantes a la materia de la consulta, o a partir de información estadística sobre el tema a buscar. Además, devuelven el documento completo como respuesta a la pregunta, o algún párrafo importante de éste.

En muchos sitios web se puede ver una sección particular que trata de responder a las preguntas que más se reciben sobre un determinado tema. Esta lista es comúnmente llamada FAQ (Frequently Asked Questions), traducido al español como “Preguntas Frecuentes”, las cuales son un conjunto de preguntas con sus respectivas respuestas. Estas preguntas pueden o no tener un orden en particular: pueden estar ordenadas de acuerdo a la frecuencia en la cual son preguntadas, o según el nivel de profundidad del tema tratado. El hecho de que se encuentren en una página estática hace que la búsqueda de una pregunta (y su respectiva respuesta) específica sea lento, ya que se deben revisar todas las preguntas secuencialmente hasta llegar a la pregunta que necesitamos. Un método alternativo de hacer esto es buscando mediante las herramientas que nos provee nuestro navegador, con lo cual se obtiene el resaltado de una o más palabras que nosotros designemos como “claves”, lo cual disminuye el tiempo de búsqueda, pero aún debemos hacer la labor de buscar de forma manual.

Otro problema es que existen muchas formas de enunciar una misma pregunta. Probablemente los usuarios buscan obtener información semejante entre si, pero realizan la pregunta de distintas maneras, lo cual en sistemas tradicionales lleva a resultados diferentes.

Una solución a este problema (búsqueda de preguntas y respuestas específicas en un FAQ) puede ser el de dar la posibilidad al usuario de hacer una pregunta en lenguaje natural, analizar esa pregunta con el fin de encontrar su “significado” (es decir, lo que el usuario busca), y luego, según los criterios encontrados en ese análisis, entregar la respuesta que el usuario espera encontrar.

Objetivo general

Desarrollar e implementar un sistema pregunta – respuesta, tomando como referencia el FAQ “Preguntas Frecuentes sobre Software Libre, GPL y Linux”. El usuario podrá hacer preguntas al sistema en lenguaje natural, las cuales serán analizadas por el sistema con el fin de encontrar la respuesta que más se adapta a la pregunta del usuario. Luego, el sistema entrega la respuesta a la pregunta, o en el caso de que no exista información asociada a esa pregunta, el sistema declara no poder entregar una respuesta.

Objetivos específicos

  1. Utilizar SNePS (sistema de representación del conocimiento, razonamiento, y actividades) para estudiar el problema del procesamiento de Lenguaje Natural asociado a la forma de analizar preguntas.

  2. Desarrollar un sistema capaz de analizar las preguntas realizadas por el usuario, utilizando SNePS como herramienta para el procesamiento de Lenguaje Natural: es decir, generar un lexicón con las palabras utilizadas en las preguntas del FAQ, y sus sinónimos (en el caso de ser necesarios), y una gramática que contenga las formas de hacer preguntas más utilizadas, cubriendo en su totalidad las preguntas contenidas en el FAQ. Este sistema debe devolver el número de la pregunta (especificado en el FAQ) que más se adecúe a la pregunta del usuario, o en su defecto, informar que no puede encontrar una pregunta similar (enviando el número 0).

  3. Desarrollar una plataforma web que esté comunicada con el sistema analizador, desde la cual el usuario podrá utilizar el sistema: el usuario será capaz de escribir su pregunta en un campo específico para esto, la pregunta será enviada al sistema de análisis, se recibirá la respuesta del sistema, y finalmente se mostrará en pantalla la respuesta seleccionada por el analizador.

Resultados

  1. Existe un lexicón y una gramática compatible con SNePS, asociada al corpus de las preguntas de la FAQ. Satisface los objetivos específicos 1 y 2.

Métrica: El lexicón y la gramática deben cargar en SNePS sin errores. En el lexicón deben estar todas las palabras utilizadas en las preguntas del FAQ, junto con a lo más tres sinónimos por cada palabra que sea sustantivo o adjetivo. La gramática es capaz de analizar cada una de las preguntas del FAQ, incluyendo el análisis de número en las preguntas (preguntas “pluralizadas”) y la conjugación de los verbos incluídos en el lexicón.

  1. Existe un sistema basado en SNePS, el cual recibe una pregunta, y la asocia a una pregunta contenida en el FAQ. Satisface el objetivo específico 2.

Métrica: El sistema reconoce sin errores todas las preguntas realizadas de la misma forma en que están escritas en el FAQ, entregando la respuesta correspondiente. También reconoce sin errores todas las preguntas formuladas de la misma forma, pero usando los sinónimos definidos en el lexicón (también entrega la respuesta correspondiente).

Para preguntas realizadas de cualquier otra forma, se busca un porcentaje de reconocimiento de un 75%, entregando la respuesta que corresponde. Esta aceptación se obtendrá de una muestra de 25 personas, las cuales formularán de manera individual 4 preguntas sobre los temas tratados en la FAQ. Luego, compararán lo preguntado por ellos con la pregunta que seleccionó el sistema, y darán su opinión sobre si lo que seleccionó el sistema cubre lo que él/ella quería preguntar.

  1. Existe una plataforma web en la cual el usuario escribe su pregunta y ésta la envía al sistema analizador. Luego, la respuesta recibida desde el analizador es buscada en los ficheros con las respuestas, y se presenta al usuario en la misma página en la cual hizo la pregunta. Satisface el objetivo específico 3.

Métrica: Se transmite sin errores la pregunta al sistema analizador. Se recibe sin errores la respuesta desde el sistema analizador.

Se muestra sin errores la información en la página (HTML).

La plataforma web es la encargada de buscar la respuesta correspondiente a la entregada por el sistema.

Organizaciones que apoyan la iniciativa

Se cuenta con el apoyo moral de organizaciones relacionadas con el Software Libre (Ubuntu Chile, Debian Chile), pero no existe un apoyo económico ni técnico de parte de estas organizaciones.

Fundamentos y relevancia

Generalmente, el usuario promedio gasta mucho tiempo buscando información sobre un tema en particular en las preguntas frecuentes, ya que éstas tienen un orden específico, el cual no siempre está dado por su relevancia o por algún tipo de indexación, por lo cual el usuario se ve obligado a revisar todas hasta llegar a la que realmente le interesa, o a buscar mediante el sistema de búsqueda proporcionado por su navegador, lo cual si bien es de ayuda, no resuelve el problema de tener que buscar de forma más bien manual la información de su interés.

El hecho de tener una respuesta concreta a una pregunta simple (o de cierto grado de complejidad) en un tiempo corto es beneficioso para el usuario, ya que le ahorra tiempo que puede aprovechar en otras tareas. Esto es muy importante para las empresas, ya que son muchos los clientes potenciales que se pueden perder debido a que no encuentran la información que están buscando de forma eficiente.

Recursos requeridos

Además de los recursos humanos, como el tiempo de reuniones con el profesor guía y el profesor corrector, y mi tiempo de investigación propio, los elementos necesarios para desarrollar el proyecto son:

  1. Acceso a las fuentes y los binarios de SNePS 2.7, así como su documentación.

  2. Disponibilidad de computadores, tanto en mi domicilio como en la universidad.

  3. Documentación sobre Lisp.

  4. Documentación sobre Procesamiento de Lenguaje Natural.

  5. Diccionarios de la lengua castellana.

  6. El FAQ “Preguntas Frecuentes sobre Software Libre, GPL y Linux”.

Riesgos identificados

Se identifican los siguientes riesgos asociados al proyecto:

  1. Que mi conocimiento de la lengua castellana sea insuficiente para poder modelar de forma correcta la gramática y lexicón para el sistema. En este caso buscaría la ayuda de alguna persona experta en el tema, como puede ser un lingüista o un licenciado en castellano.

  2. Que ocurra cualquier otro tipo de imprevisto que impida el desarrollo normal y en las fechas estimadas de mi proyecto (enfermedades, problemas de carga académica en la universidad, fallas en los equipos computacionales, etc).