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 a ? ß, a ? 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 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
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 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
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 :-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
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