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.
 Sistemas Expertos, Programas de
Razonamiento […]: realizan operaciones
lógicas sobre esa representación.

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?

El Lenguaje como
Codificador-Descodificador
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ógico
 Módulo morfológico
 Módulo sintáctico
 Módulo semántico y pragmático
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
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)
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)
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
Problemas Generales
Ambigüedad: Léxica, sintáctica, …
 Conocimiento lingüístico: conocimiento
léxico y conocimiento general
 Conocimiento extralingüístico:
información obvia omitida

 Diccionarios
de relaciones entre objetos y de
escenarios de las relaciones típicas
 Métodos de aprendizaje semiautomático
PLN CON PROLOG

Características iniciales:
 Gramática
como Reconocedor
 Entrada: lista de átomos (palabras)
 Diccionario: léxico desplegado
 Sintaxis: Uso de CFG con “difference list”
 Sin uso de Semántica ni Pragmática
Ejemplo I (Inicial) gram1.pl
 Gramática simple
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,[]).
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,[]).

Ejemplo III gram3.pl
Restricciones
de número y transitividad
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,[]).
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).
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 nombres
comible(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).
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) :- !.
…
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)
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).
Aplicacion DC: Traductor

Podemos crear nuevas aplicaciones
sustituyendo la información de la
estructura por otra que queramos
:-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)}.
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].
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

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
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

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

Ayuda en Preparación de Texto
Ejemplo: herramientas de Microsoft Word
 Guiones
 Ortografía
 Gramática
 Estilo
 Hechos y coherencia lógica

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
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
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ó”

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)

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)
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

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)

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

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
Descargar

Procesamiento Automático del Lenguaje Natural