Natural language processing

30
Procesamiento del Lenguaje Natural para la Ingeneria de Requerimientos: Aplicabilidad para documentos largos

description

Procesamiento del Lenguaje Natural para la Ingeneria de Requerimientos: Aplicabilidad para documentos largos

Transcript of Natural language processing

Page 1: Natural language processing

Procesamiento del Lenguaje Natural para la Ingeneria de Requerimientos: Aplicabilidad para documentos largos

Page 2: Natural language processing

Introducción

Una clave primordial para que un proyecto de software tenga éxito, es una especificación precisa

Las especificaciones formales son ideales para el desarrollador de software.

La gran mayoría de las especificaciones están escritas en lenguaje natural, para el lector es muy importante identificar los conceptos usados por el escritor de tales especificaciones.

Page 3: Natural language processing

1.1- Trabajo a fin -Relacionado-

El fin de la mayoría de los usos de el procesamiento natural del lenguaje no es entender el texto, si no extraer conceptos contenidos en el documento.

Page 4: Natural language processing

Kevin Ryan.

Afirma que el modelo de dominio producido por NLP puede estar incompleto, ya que cierta información que se piensa que es “Conocimiento del dominio Común” es omitida en el texto de requerimientos, pero eso ya es una tarea de los ingenieros de requerimientos para la detección de tales omisiones.

-Un modelo incompleto seria un indicador de omisiones de texto-

Page 5: Natural language processing

Ben Achor.Clasifica los métodos de lingüística, ya sea sintáctica o semántica.

Ej.AbstFinderExtrae los términos (léxico) que se producen repetidamente en el texto de especificaciones. Este método es bastante robusto por que no se basa en la parte de análisis de habla.Simplemente considera frases como secuencia de caracteres y busca subsecuencias comunes en diferentes frases.

Page 6: Natural language processing

En el enfoque sintáctico como Abbott, se analizan todas las partes del documento (verbos, sustantivos, etc) o busca por sentencias especiales.

Abbott, analiza los sustantivos usando parta construir el programa.

Chen, va mas allá y produce diagramas E/R (entidad/relación) como el resultado del análisis.

Chris Rupp, Nattoch Dag and Fabbrini, ellos están relacionados en el sentido de que ellos también analizan documentos de requerimientos escritos en lenguaje natural.

Su fin no es automatizar la extracción de información de los textos.

Page 7: Natural language processing

Chris Rupp define una serie de reglas de escritura. La plantilla define que argumentos son necesarios para cada verbo.

De las sentencias escritas de acuerdo a la plantilla se pueden extraer fácilmente los actores, acciones y objetos dentro del texto.El fin de este enfoque es unificar la escritura, la cual te permite producir mejores documentos de requerimientos, pero no te ofrece la automatización para analizar el texto.

Page 8: Natural language processing

1.2-OBJETIVOS DE NUESTRO TRABAJO

1. Aprender a escribir menos ambiguo y con mas precisión.

Significa que se utilizan reglas de escritura, hacen el texto menos ambiguo y mas preciso en el punto de vista del ser humano.

2. Aprender a detectar ambigüedades y imprecisionesLeer el documento y eliminar todas las ambigüedades e imprecisiones.

3. Usar un lenguaje natural restringido, el cual es no es ambiguo y es mas preciso.

Gracias al uso correcto de la gramática podemos extraer la ontología del dominio del texto.

Page 9: Natural language processing

2- EXTRACCION DE LA ONTOLOGIA: ENFOQUELa extracción del conocimiento del dominio consiste en 3 pasos.

1. Extracción de los términosSujetos y objetos son los términos que se quieren extraer, los predicados son usados para clasificar términos.

2. Agrupación de términos y la creación/construcción de la taxonomía.

Los términos extraídos son agrupados de acuerdo a su contexto gramatical.

Page 10: Natural language processing

3. Buscando asociaciones entre los términos extraídos.

En este paso se toma la taxonomía generada en el segundo paso como entrada y se enriquece por la asociación general entre los términos extraídos

La idea esta tomada desde la minería de datos. El texto se considera como una transacción de una base de datos.

Después del ultimo paso obtenemos una aplicación inicial del modelo del dominio, representada como un árbol binario relacionado entre esos términos.

Page 11: Natural language processing

Reglas que se deben seguir:(1)

Utilice siempre el mismo nombre para el mismo concepto.

Utilice siempre la forma completa en el caso de nombres compuestos, es decir, "dejar mensaje o iniciarmensaje "en lugar de" detener o iniciar mensaje ".

Page 12: Natural language processing

Reglas que se deben seguir:(2)

No utilizar los verbos “be" y “have“.

No utilizar las referencias cruzadas de una frase como Mensaje X es enviada a la unidad Y

Page 13: Natural language processing

Proceso escalable??

EL proceso tendrá la capacidad de ser extendido sin perder calidad?

Esto nos ha permitido identificar los pasos que requieren mucho tiempo que potencialmente no escalan:

Page 14: Natural language processing

1°. Preparación del documento

Este paso en textos pequeños es muy fácil y rápido ya que se requiere que el formato de texto contenga una sola frase por línea.

Un día de trabajo manual

Page 15: Natural language processing

2° Análisis y extracción de información. Extraer el predicado, el sujeto y los objetos de cada frase.

Con esto se obtuvo que había un problema adicional con el texto que contiene frases incompletas e incorrectas gramaticalmente:

Ejemplo:

Si la corriente de alta velocidad-V <30 km

Page 16: Natural language processing

3°. Fraseo de Listas y Tablas: Resultó que las listas y las tablas fueron la principal fuente

de frases incompletas, ya que la relación entre los conceptos no tienen una estructura gramaticalmente.

Hasta este punto 2.5 días de trabajo manual.

Page 17: Natural language processing

4°. Taxonomía de extracción

Se refiere a encontrar conceptos clasificados, esto produjo muchos problemas ya que se utilizan los mismos conceptos para denotar diferentes términos:

Para esto se usaron 1.5 días.Hasta este punto 4 días de trabajo manual.

Page 18: Natural language processing

KAON

Es OpenSource

Creación y mantenimiento de ontologías, utilizada por aplicaciones de negocios.

(Dl Workbench, OilEd, OntoEdit, Protege)

4.5 Asociación de la Mineria

Page 19: Natural language processing

Ontología.- formulación de un esquema conceptual dentro de uno o varios dominios dados; con la finalidad de facilitar la comunicación e intercambio de información entre diferentes sistemas . Analogía

Campos de aplicación : IA y la representación del conocimiento

Page 20: Natural language processing

Se hizo un análisis por sentencia, y se identificaron las palabras más comunes.

El resultado fueron mas de 1000 asociaciones potenciales.

Después se ordenaron lexicalmente.

Page 21: Natural language processing

Para construir la ontología se tomaron en cuenta las asociaciones donde la frecuencia absoluta >=5.

Es decir, pares de conceptos que aparecieran 5 o más veces en la misma sentencia. Se redujo a un 25% de las asociaciones.

Tiempo para validar manualmente éstas asociaciones : 1

Días utilizados hasta esta etapa: 5

Page 22: Natural language processing

4.6 Caso de Estudio tablero de mandos

Se verifico que si la forma de extraer la ontología para documentos grandes todavía funcionaba y si se justificaba el tiempo de utilizado.

Page 23: Natural language processing
Page 24: Natural language processing

En el esquema anterior se puede observar las ontologías extraídas. (kaon:Root) es la mayor, sus subclases y las relaciones entre ellas.

Se muestras relaciones ; is a – con la línea de grosor variable.

Cajas blancas: denotas conceptos y clases de conceptos.

Cajas obscuras: son propiedades/asociaciones

Page 25: Natural language processing

Las fechas le dan sentido para formar oraciones.

El otro objetivo del instrument cluster case study, era testear la escalabilidad del acercamiento.

Se extrajeron los conceptos y las asociaciones; además se corrigieron inconsistencias. Y los 5 días de trabajo, para un documento de 80 hojas estuvo justificado

Page 26: Natural language processing

En resumen

El objetivo es definir/extraer de un documento las palabras (ontología) más utilizadas por el experto del dominio o el usuario final para que el tanto el éste como el desarrollador de software puedan definir un lenguaje en común entre ambas partes.

Un requerimiento mal formado es ambiguo e impreciso.

Page 27: Natural language processing

Formar una ontología

Lo primero que se debe de hacer es la extracción de términos (se etiquetan con las partes del discurso (Parts of Speech) que suman nueve en total, siendo los verbos quienes se utilizan para clasificar a los sujetos y a los objetos),

Page 28: Natural language processing

Construir la taxonomía (la herramienta ASIUM para realizar la clasificación de los términos) para finalmente encontrar las asociación existente entre los términos que fueron extraídos (se genera un árbol con los términos y sus relaciones entre ellos).

Page 29: Natural language processing

Reglas del Texto

Usar siempre el mismo nombre para el mismo concepto. (Como por ejemplo, en nuestro proyecto del auto inteligente, hubo ocasiones que nos referiamos al carro como: carro o automovil, lo cual no es recomendable).

En el caso de nombres compuestos, utilizar de preferencia con un guión “mode-normal”. (En el idioma inglés, es más frecuente que en el español encontrarse con éste tipo de compound names, es decir son términos o cosas que se componen de dos palabras). Siempre utilizar la forma completa de los compound names: “detener mensaje o iniciar mensaje” en lugar de utilizar “detener o iniciar mensaje”

Page 30: Natural language processing

No utilizar los verbos “be” and “have”. Ya que no proveen mucha información para lector humano y para la computadora crea muchos conceptos que no se relacionan. Pero sí se pueden utilizar en los casos de la forma pasiva o de sentencias en perfect (como el present perfect, el perfect continuos, past perfect).

Lo que sigue en el trabajo de extración es poner las oraciones de una por línea. Y aunque existen herramientas para éste procedimiento, los investigadores dicen que se da mejor resultados sí se hace manualmente.

Después se tiene que sacar las asociaciones y se puedan declarar los términos con mayor frecuencia para formar el árbol con la ontología extraída y una relación entre ellos. Para lo cual existe una nomenclatura que incluyen flecha, cajas blancas , cajas negras.