Procesamiento Automático del Lenguaje Natural

35
Procesamiento Automático del Lenguaje Natural Realizado por: José Eduardo Rivera Cabaleiro Salwa Al Atassi González

description

Procesamiento Automático del Lenguaje Natural. Realizado por: José Eduardo Rivera Cabaleiro Salwa Al Atassi González. Introducción I. Procesador Lingüístico : traduce del Lenguaje Natural (LN) a una representación formal equivalente. - PowerPoint PPT Presentation

Transcript of Procesamiento Automático del Lenguaje Natural

Page 1: Procesamiento Automático del Lenguaje Natural

Procesamiento Automático del Lenguaje Natural

Realizado por:

José Eduardo Rivera Cabaleiro

Salwa Al Atassi González

Page 2: Procesamiento Automático del Lenguaje Natural

Introducción I

Procesador Lingüístico: traduce del Lenguaje Natural (LN) a una representación formal equivalente.

Sistemas Expertos, Programas de Razonamiento […]: realizan operaciones lógicas sobre esa representación.

Page 3: Procesamiento Automático del Lenguaje Natural

Introducción II

Existen volúmenes inmensos de información en LN

Se realizan operaciones sobre la información tales como búsqueda, comparación, traducción, …

Los computadores son más capaces de procesar la información que las personas, pero, ¿son capaces de entenderla?

Page 4: Procesamiento Automático del Lenguaje Natural

El Lenguaje como Codificador-Descodificador

Page 5: Procesamiento Automático del Lenguaje Natural

Procesador Lingüístico

Traduce la información entre la representación textual y la representación formal equivalente

Estructura (refleja la del lenguaje):Módulo fonético y fonológicoMódulo morfológicoMódulo sintácticoMódulo semántico y pragmático

Page 6: Procesamiento Automático del Lenguaje Natural

Módulo Morfológico I

Diccionarios: lista de palabras de una lengua, junto con diversas informaciones: morfología, definición, etimología, estadísticas, …

Lexicón: forma típica de la entrada de los diccionarios que contiene información fonológica, morfológica, sintáctica y semántica

Formalismo de representación para codificar los datos

Ejemplos: los bilingües o multilingües recogen la correspondencia entre destintas lenguas

Page 7: Procesamiento Automático del Lenguaje Natural

Módulo Morfológico II Diccionarios electrónicos:

Elementales: Léxico desplegado (inmanejable)

Lengua de expresión compleja: el lexicón proporciona la raíz y la información gramatical asociada, y un componente morfológico genera las posibles formas (ayuda a inferir funciones sintácticas)

Page 8: Procesamiento Automático del Lenguaje Natural

Módulo Sintáctico I Las estructuras sintácticas se construyen con

una gramática, una especificación mediante reglas de reescritura de las estructuras permitidas en el lenguaje.

El tipo más común de gramáticas son las de contexto libre (CFGs)

CFG: es una cuádrupla (N,T,R,S) N = conjunto de símbolos No-Terminales T =conjunto de símbolos Terminales R= conjunto de Reglas de la forma α → β, α є N, β є

(N U T) S = axioma (No-Terminal)

Page 9: Procesamiento Automático del Lenguaje Natural

Módulo Semántico y Pragmático II

La semántica estudia el significado del texto y desarrolla los métodos para formar este significado a través de una serie de representaciones sintácticas de las oraciones.

La pragmática estudia cómo las intenciones del autor del texto están expresadas en el texto, es decir, en un contexto dado

Page 10: Procesamiento Automático del Lenguaje Natural

Problemas Generales

Ambigüedad: Léxica, sintáctica, … Conocimiento lingüístico: conocimiento

léxico y conocimiento general Conocimiento extralingüístico:

información obvia omitidaDiccionarios de relaciones entre objetos y de

escenarios de las relaciones típicasMétodos de aprendizaje semiautomático

Page 11: Procesamiento Automático del Lenguaje Natural

PLN CON PROLOG

Características iniciales:Gramática como ReconocedorEntrada: lista de átomos (palabras)Diccionario: léxico desplegadoSintaxis: Uso de CFG con “difference list”Sin uso de Semántica ni Pragmática

Page 12: Procesamiento Automático del Lenguaje Natural

Ejemplo I (Inicial) gram1.pl

o(Entrada,Resto) :- sn(Entrada,Parte), sv(Parte,Resto).sn(Entrada,Resto) :- det(Entrada,Parte), n(Parte,Resto).sv(Entrada,Resto) :- v(Entrada,Resto).sv(Entrada,Resto) :- v(Entrada, Parte), sn(Parte,Resto).

det(Entrada,Resto) :- terminal(that, Entrada, Resto).det(Entrada,Resto) :- terminal(those, Entrada, Resto).n(Entrada,Resto) :- terminal(boy, Entrada, Resto).n(Entrada,Resto) :- terminal(cakes, Entrada, Resto).v(Entrada,Resto) :- terminal(ate, Entrada, Resto).v(Entrada,Resto) :- terminal(slept, Entrada, Resto).

terminal(Palabra,[Palabra|Resto],Resto).%%o([that,boy,slept],[]).%%o(X,[]).

Gramática simple

Page 13: Procesamiento Automático del Lenguaje Natural

Ejemplo II gram2.pl

Entrada: texto natural Usamos una función leer_texto(X) que nos

convierta una cadena de entrada en una lista de atomos

?- leer_texto(X),o(X,[]).

Page 14: Procesamiento Automático del Lenguaje Natural

Ejemplo III gram3.pl

o(Entrada,Resto) :- sn(Entrada,Parte), sv(Parte,Resto).sn(Entrada,Resto) :- det(Numero,Entrada,Parte), n(Numero,Parte,Resto).sv(Entrada,Resto) :- v(_,Entrada,Resto).sv(Entrada,Resto) :- v(transitivo,Entrada, Parte), sn(Parte,Resto).

det(singular,Entrada,Resto) :- terminal(that, Entrada, Resto).det(plural,Entrada,Resto) :- terminal(those, Entrada, Resto).n(singular,Entrada,Resto) :- terminal(boy, Entrada, Resto).n(plural,Entrada,Resto) :- terminal(cakes, Entrada, Resto).v(transitivo,Entrada,Resto) :- terminal(ate, Entrada, Resto).v(intransitivoEntrada,Resto) :- terminal(slept, Entrada, Resto).

terminal(Palabra,[Palabra|Resto],Resto).%%o([those,boy,ate,that,cakes],[]).%%o(X,[]).

Restricciones de número y transitividad

Page 15: Procesamiento Automático del Lenguaje Natural

Ejemplo IV

Restricciones semánticas Introducimos otra utilidad, generar estructuras

de la oración: Parser

o(o(SN,SV),Entrada,Resto) :- sn(SN,Entrada,Parte), sv(SV,Parte,Resto),not(SV=sv(_,SN)). %Rest. Sem.

sn(sn(Det,N),Entrada,Resto) :- det(Det,Numero,Entrada,Parte), n(N,Numero,Parte,Resto).

sv(sv(v(V)),Entrada,Resto) :- v(v(V),_,_,Entrada,Resto).sv(sv(v(V),SN),Entrada,Resto) :- v(v(V),Rasgo,transitivo,Entrada, Parte),

sn(SN,Parte,Resto), SN=sn(_,n(N)),T=..[Rasgo,N],call(T).

Page 16: Procesamiento Automático del Lenguaje Natural

Ejemplo IV gram4.pl

det(det(that),singular,Entrada,Resto) :- terminal(that, Entrada, Resto).det(det(those),plural,Entrada,Resto) :- terminal(those, Entrada, Resto).

n(n(boy),singular,Entrada,Resto) :- terminal(boy, Entrada, Resto).n(n(cakes),plural,Entrada,Resto) :- terminal(cakes, Entrada, Resto).

% propiedad semantica de los nombrescomible(cakes).

v(v(ate),comible,transitivo,Entrada,Resto) :- terminal(ate, Entrada, Resto).v(v(slept),_,intransitivo,Entrada,Resto) :- terminal(slept, Entrada, Resto).

terminal(Palabra,[Palabra|Resto],Resto).

Page 17: Procesamiento Automático del Lenguaje Natural

Añadiendo reglas morfológicas

Plural(Sing, Plur) :- convert (Sing, Singlista), concat(Base,[C,y],SingLista),

not(vocal(C)), concat(Base,[C,i,e,s],Plurlista), convert(Plur,Plurlista).

vocal(C) :- in(C,[a,e,i,o,u]).

plural(chil,children) :- !. plural(mouse,mice) :- !.

Page 18: Procesamiento Automático del Lenguaje Natural

DCG: Definitive Clause Grammar

Formalismo desarrollado por Pereira y Warren (1980)

Reglas gramáticas: Parte_izq Parte_der (como Prolog)

El sistema se encarga del manejo de la entrada y de las “difference list” (elimina la necesidad de los dos predicados de análisis)

Usar: {} : Para los predicados con el formalismo propio de

Prolog [] : Para los nodos terminales (predefinido por el

sistema)

Page 19: Procesamiento Automático del Lenguaje Natural

DCG: Ejemplo DCG.pl

o(o(SN,SV)) --> sn(SN), sv(SV),{not(SV=sv(_,SN))}.

sn(sn(Det,N)) --> det(Det,Numero), n(N,Numero).sv(sv(v(V))) --> v(v(V),_,_).sv(sv(v(V),SN)) --> v(v(V),Rasgo,transitivo), sn(SN),

{SN=sn(_,n(N)),T=..[Rasgo,N],call(T)}.

det(det(that),singular) --> [that].det(det(those),plural) --> [those].n(n(boy),singular) --> [boy].n(n(cakes),plural) --> [cakes].v(v(ate),comible,transitivo) --> [ate].v(v(slept),_,intransitivo) --> [slept].

comible(cakes).

Page 20: Procesamiento Automático del Lenguaje Natural

Aplicacion DC: Traductor

:-use_module(input).:-use_module(output).traducir :- leer_texto(X), o(Y,X,[]), write_word(Y).

o(O) --> sn(SN,Numero), sv(SV,Numero),{not(SV=[_|SN]), concatena(SN,SV,O)}.sn([Det,N],Numero) --> det([Det],Numero,Genero), n([N],Numero,Genero).sv([V],Numero) --> v([V],_,_,Numero).sv([V|SN],Numero) --> v([V],Rasgo,transitivo,Numero), sn(SN,_),

{SN=[_|[N]],T=..[Rasgo,N],call(T)}.

Podemos crear nuevas aplicaciones sustituyendo la información de la estructura por otra que queramos

Page 21: Procesamiento Automático del Lenguaje Natural

Aplicacion DCG MiTraductor.pl

%diccionario con correspondencia al español

det([aquel],singular,masculino) --> [that].det([aquella],singular,femenino) --> [that].det([aquellos],plural,masculino) --> [those].det([aquellas],plural,femenino) --> [those].n([niño],singular,masculino) --> [boy].n([niña],singular,femenino) --> [girl].n([pasteles],plural,masculino) --> [cakes].comible(pasteles).

v([comio],comible,transitivo,singular) --> [ate].v([comieron],comible,transitivo,plural) --> [ate].v([durmio],_,intransitivo,singular) --> [slept].v([durmieron],_,intransitivo, plural) --> [slept].

Page 22: Procesamiento Automático del Lenguaje Natural

Aplicacion DC: Eliza Eliza.pl

Escrito por Joseph Weizenbaum en1960, Demuestra varios aspectos de PLN, por lo

que adquirió bastante popularidad Simula una entrevista con un doctor

psicoanalista neutral para que el paciente revele sus pensamientos y sentimientos de forma espontánea

Page 23: Procesamiento Automático del Lenguaje Natural

Conclusiones sobre el uso de CFG

Dan lugar a algoritmos eficientes para muchas tareas de tratamiento del lenguaje

Unen la simplicidad, con la capacidad de expresión de una gran variedad de construcciones del lenguaje

Pero necesitan multiplicar las reglar para añadir características tales como género y número (y las restricciones semánticas en su caso)

Dependencias de larga distancia. Ejemplo “wh-” pueden servir como sintagma nominal

Page 24: Procesamiento Automático del Lenguaje Natural

Aplicaciones de PALN

Comprensión del lenguaje Ayuda en preparación de texto Búsqueda y minería de texto Interfaces en LN Traducción automática Procesamiento de voz Generación de texto Conducción del diálogo

Page 25: Procesamiento Automático del Lenguaje Natural

Comprensión del Lenguaje

Tarea final de la ciencia del análisis del texto

Comprensión del texto: transformación del mismo a una representación formal.

Resultados prácticos relativamente modestos

Avance en los sistemas del laboratorio, debido al esfuerzo principal que le dirige la lingüística computacional

Page 26: Procesamiento Automático del Lenguaje Natural

Ayuda en Preparación de Texto

Ejemplo: herramientas de Microsoft Word Guiones Ortografía Gramática Estilo Hechos y coherencia lógica

Page 27: Procesamiento Automático del Lenguaje Natural

Búsqueda y Minería de Texto

Desde encontrar documentos concretos, hasta descubrir conocimiento nuevo no escrito en ninguno de ellos

TIPOS: Búsqueda de documentos Responder preguntas Extracción de información Minería de texto

Page 28: Procesamiento Automático del Lenguaje Natural

Interfaces en LN

El único modo de comunicarse con los computadores es mediante los lenguajes de programación

La educación computacional cuesta mucho dinero, y no es fácil de aprender

Alternativa: enseñar a un computador nuestro idioma y copiar el programa a los demás

Ejemplo sistema TRAINS de J.Allen

Page 29: Procesamiento Automático del Lenguaje Natural

Traducción Automática

Traducir un texto consiste en “entender” ese texto y luego generarlo en otro idioma

Los traductores automáticos entienden algunas partes del texto y las traducen en el orden en que aparecen en el texto fuente

Ejemplo: “Juan le dio a María un pastel. Lo comió”

Page 30: Procesamiento Automático del Lenguaje Natural

Procesamiento de Voz

El modo más natural para un ser humano es hablar y escuchar

La voz representa más información que el texto escrito

Existen grandes problemas técnicos de convertir los sonidos de la voz a las palabras

Existen grandes avances: sistemas capaces de hablar con los usuarios (ej. por teléfono)

Page 31: Procesamiento Automático del Lenguaje Natural

Generación de Texto

El segundo componente de la comunicación es la capacidad de producir el texto o el habla

Es una tarea más simple que la comprensión

Dificultad: no hacer el texto aburrido, incoherente y a veces no entendible:

expresiones que se usan en un contexto dado (métodos de planificación contextual)

Page 32: Procesamiento Automático del Lenguaje Natural

Conducción de Diálogo

La computadora aprende a entender y producir texto, ¿puede conversar con las personas?

Problemas: el contexto y el conocimiento general sobre los tipos de situaciones

Page 33: Procesamiento Automático del Lenguaje Natural

El Futuro del PALN

Semántica y pragmática Lingüística de texto Hablar = saber + pensar Los computadores hablan con nosotros Los computadores hablan entre sí

(paradigma de programación orientada a agentes)

Page 34: Procesamiento Automático del Lenguaje Natural

Conclusiones

El PLN es fácil de entender, posible y tiene gran importancia en nuestra época de información

Presenta dificultades, pero se desarrolla dinámicamente con grandes inversiones

Page 35: Procesamiento Automático del Lenguaje Natural

Bibliografía

PROLOG for Natural Language Processing. Annie Gal, Guy Lapalme, Patrick Saint-Dizier and Harold Somers.

Avances y perspectivas de procesamiento automático de lenguaje natural (Cuento de una Máquina Parlante). Alexander Gelbukh, Igor Bolshakov. Laboratorio de Lenguaje Natural, Centro de Investigación  en Computación, Instituto Politécnico Nacional (México). No responden.http://www.gelbukh.com/CV/Publications/2000/IPN-Proc-Leng-Nat.htm

Procesamiento de Lenguaje Natural. Lourdes Araujo.Universidad Complutense de Madrid.

http://www.fdi.ucm.es/profesor/lurdes/nlp/cap1.pdf