Tema 8: Procesamiento de lenguaje natural

Documentos relacionados
Programación lógica ( )

Tema 5: Procesamiento de lenguaje natural

Tema 9: Procesamiento de lenguaje natural

Tema 10: Procesamiento de lenguaje natural

Tema 5: Procesamiento de lenguaje natural

Tema 8: Razonamiento con lenguaje natural

Introducción a las Gramáticas de Cláusulas Definidas (DCGs) Procesamiento del. Lenguaje Natural. Índice. Gramáticas de cláusulas definidas

Tema 3: Sistema inicial de representación y razonamiento

Apellidos:... Nombre:...

Tema 3: Introducción a Prolog

Tema 4: Redes semánticas y marcos

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Tema 4: Resolución de problemas de espacios de estados

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Programación declarativa ( )

Programación declarativa ( )

Programación lógica ( )

Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars)

Tema 6: Programación lógica de segundo orden

Secretaría de Docencia Dirección de Estudios Profesionales

Tema 2: Un poco de Historia

Tema 6: Representación lógica del conocimiento

INSTITUTO POLITECNICO NACIONAL SECRETARIA ACADEMICA DIRECCION DE ESTUDIOS PROFESIONALES EN INGENIERIA Y CIENCIAS FISICO MATEMATICAS

Tema 7: Razonamiento por defecto y razonamiento abductivo

Tema 2: Un poco de Historia

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012


Tema 3: Demostraciones proposicionales

Tema 2: Un poco de Historia

Presentación Asignatura

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

Tema 6: Razonamiento con información incompleta

Tema 13: Introducción a la Programación Lógica Inductiva

Se pueden agrupar las reglas que tienen la misma parte izquierda:

Conceptos básicos sobre gramáticas

LENGUAJES Y GRAMÁTICAS

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS. NOMBRE DEL CURSO: Lenguajes Formales y de Programación

Horas teóricas: Horas practicas: Área de conocimiento a la que pertenece

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación

Lógica y Programación

Análisis sintáctico. Procesamiento del. Lenguaje Natural. Índice. José María Gómez Hidalgo. del contexto *

Inteligencia Artificial II: Conocimiento, Razonamiento y Planeación. Presentación del Curso.

Tema 1: Agentes inteligentes: Representación y razonamiento

Tema 2: Lógica proposicional: Sintaxis y semántica

Introducción a la lingüística computacional

Tema 3: Representación del conocimiento estructurado

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación

Tema 1: El sistema deductivo de Prolog

Tema 5: Razonamiento por defecto y razonamiento explicativo

Presentación Asignatura

TITULACIÓN Ingeniero Técnico en Informática de Sistemas ASIGNATURAS DE SEGUNDO CURSO DEL PLAN 1999 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES PROGRAMA:

14 Lenguajes y gramáticas II

Introducción a la Lógica y la Computación

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación

Pontificia Universidad Católica del Ecuador

Universidad Fermín Toro. Cabudare Lara

Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis

UNIVERSIDAD DE GUADALAJARA

Segunda Práctica. Teoría de Autómatas y Lenguajes Formales I. Escuela Politécnica Superior Universidad Autónoma de Madrid.

Introducción a la Lógica y la Computación

Tema 2: Deducción natural proposicional

Programación Declarativa Curso

Más sobre gramáticas independientes de contexto o incontextuales

Proyecto: Programación Declarativa: Lenguaje Prolog

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil

Lógica y Programación

PROGRAMACIÓN LÓGICA INTRODUCCIÓN. Juan Juárez Fuentes

Programación Declarativa: Lógica y restricciones

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

16 Análisis sintáctico I

PROGRAMA DE LABORATORIO POS-REQUISITO: Primer Semestre 2019 Ing. Mario José Bautista Fuentes AUXILIAR: Nery Galvez

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura: Carrera: Clave de la asignatura: (Créditos) SATCA PRESENTACIÓN

Tema 2: Inteligencia computacional y conocimiento

ANX-PR/CL/ GUÍA DE APRENDIZAJE

Cátedra Sintaxis y Semántica del Lenguaje

Tema 2: Listas, aritmética y operadores

Tema 1. Introducción

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

Metodología de la Programación (12016)

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3.

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Traductores de lenguajes de programacion. CURSO ACADÉMICO - SEMESTRE Segundo semestre

Profesor de Español para Extranjeros ELE

Benemérita Universidad Autónoma de Puebla Vicerrectoría de Docencia Dirección General de Educación Superior Facultad deciencias de la Computación

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas

LP - Lenguajes de Programación

Campos Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

LOGICA Y ALGEBRA DISCRETA

Tema 1: Introducción a la Inteligencia Artificial

Guía Docente. Tipo: Obligatoria Créditos ECTS: 6. Curso: 4 Código: 3639

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

TRADUCTORES E INTERPRETADORES

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas

Transcripción:

Introducción a la Inteligencia Artificial Curso 2005 2006 Tema 8: Procesamiento de lenguaje natural Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla IIA 2005 06 Procesamiento... 1

Lenguaje natural El lenguaje natural es el utilizado por los seres humanos para comunicarse Se le llama natural en contraposición a los lenguajes formales (programación, lógica,... ) Procesamiento: comprensión y generación Comprensión: a partir de una frase escrita o hablada, obtener una representacion formal que permita efectuar las acciones adecuadas a la información recibida Generación: transformación de una representación formal de algo que se quiere comunicar, a una expresión en algún lenguaje natural, escrita o hablada IIA 2005 06 Procesamiento... 2

Comprensión del lenguaje natural Fases en el proceso de comprensión: Percepción: reconocimiento del habla y/o escritura Análisis: sintáctico (obtener la estructura de una frase a partir de la secuencia de palabras) y semántico (obtener un signicado a partir de la estructura sintáctica) Eliminación de ambigüedades Incorporación a la base de conocimiento En lo que sigue, nos centraremos en el análisis sintáctico y semántico de frases escritas IIA 2005 06 Procesamiento... 3

Gramáticas formales Gramáticas formales: G = (N, T, P, S) N: símbolos no terminales (categorías sintácticas) T : símbolos terminales (palabras del idioma) con N T = P : conjunto de reglas de producción l r, donde l, r (N T ) S N: símbolo inicial En una gramática independiente del contexto (GIC) las reglas son de la forma A r con A N y r (N T ) Derivación xay xwy mediante la regla A w IIA 2005 06 Procesamiento... 4

Gramáticas formales Lenguaje definido por una gramática: L(G) = {x T : S x} El problema del reconocimiento de frases y del análisis sintáctico: Dado x T y una gramática G, decidir si x L(G), encontrando una derivación (árbol de análisis sintáctico) que conecta S con x. IIA 2005 06 Procesamiento... 5

Notación Prolog para gramáticas formales Ejemplo de gramática: oracion --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> articulo, nombre. sintagma_verbal --> verbo, sintagma_nominal. articulo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. Uso de > Punto al final de cada regla Símbolos terminales entre corchetes IIA 2005 06 Procesamiento... 6

Por que escribir las gramáticas en notación Prolog? Porque pueden ser cargadas directamente en Prolog disponiendo de un analizador sintáctico ejecutable de manera inmediata e incluso de un generador de frases del lenguaje.?- [g1]....?- phrase(oracion,[el,gato,come,carne]). Yes?- phrase(oracion,[gato,come,pescado,carne]). No?- phrase(sintagma_verbal,[come,pescado]). Yes?- phrase(oracion,x). X = [gato, come, gato] ; X = [gato, come, perro] ;... IIA 2005 06 Procesamiento... 7

Reglas recursivas I Extender el ejemplo de GCD para aceptar oraciones como [el,gato,come,pescado,o,el,perro,come,pescado] Primera propuesta oracion --> oracion, conjuncion, oracion. oracion --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> articulo, nombre. sintagma_verbal --> verbo, sintagma_nominal. articulo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. conjuncion --> [y]. conjuncion --> [o]. IIA 2005 06 Procesamiento... 8

Reglas recursivas I Pero...?- phrase(oracion,[el,gato,come,pescado, o,el,perro,come,pescado]). ERROR: Out of local stack Exception: (26,461) oracion([el, gato, come, pescado, o, el, perro, come...], _L502750)? Por qué? IIA 2005 06 Procesamiento... 9

Reglas recursivas II Segunda propuesta oracion --> sintagma_nominal, sintagma_verbal. oracion --> oracion, conjuncion, oracion. sintagma_nominal --> nombre. sintagma_nominal --> articulo, nombre. sintagma_verbal --> verbo, sintagma_nominal. articulo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. conjuncion --> [y]. conjuncion --> [o]. IIA 2005 06 Procesamiento... 10

Reglas recursivas II Pero...?- phrase(oracion,[el,gato,come,pescado, o,el,perro,come,pescado]). Yes?- phrase(oracion,[un,gato,come]). ERROR: Out of local stack Exception: (41,634) oracion([un, gato, come], _L499657)? Por qué? IIA 2005 06 Procesamiento... 11

Reglas recursivas III Tercera propuesta oracion --> oracion_simple. oracion --> oracion_simple, conjuncion, oracion. oracion_simple --> sintagma_nominal,sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> articulo, nombre. sintagma_verbal --> verbo, sintagma_nominal. articulo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. conjuncion --> [y]. conjuncion --> [o]. IIA 2005 06 Procesamiento... 12

Reglas recursivas III Ahora...?- phrase(oracion,[el,gato,come,pescado, o,el,perro,come,pescado]). Yes?- phrase(oracion,[un,gato,come]). No IIA 2005 06 Procesamiento... 13

Arbol de análisis oracion sintagma_nominal sintagma_verbal articulo nombre verbo sintagma_nomimal nombre el gato come pescado IIA 2005 06 Procesamiento... 14

Arbol de análisis Definición oracion(o(sn,sv)) --> sintagma_nominal(sn),sintagma_verbal(sv). sintagma_nominal(sn(n)) --> nombre(n). sintagma_nominal(sn(art,n)) --> articulo(art),nombre(n). sintagma_verbal(sv(v,sn)) --> verbo(v),sintagma_nominal(sn). articulo(art(el)) --> [el]. nombre(n(gato)) --> [gato]. nombre(n(perro)) --> [perro]. nombre(n(pescado)) --> [pescado]. nombre(n(carne)) --> [carne]. verbo(v(come)) --> [come]. Sesión:?- phrase(oracion(a),[el,gato,come,pescado]). A = o(sn(art(el), n(gato)), sv(v(come), sn(n(pescado)))) IIA 2005 06 Procesamiento... 15

Concordancia en género Definición: oracion --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre(_). sintagma_nominal --> articulo(g), nombre(g). sintagma_verbal --> verbo, sintagma_nominal. articulo(masculino) --> [el]. articulo(femenino) --> [la]. nombre(masculino) --> [gato]. nombre(femenino) --> [gata]. nombre(masculino) --> [pescado]. verbo --> [come]. Sesión:?- phrase(oracion,[el,gato,come,pescado]). ====> Yes?- phrase(oracion,[la,gato,come,pescado]). ====> No IIA 2005 06 Procesamiento... 16

Concordancia en número Definición: oracion --> sintagma_nominal(n), sintagma_verbal(n). sintagma_nominal(n) --> nombre(n). sintagma_nominal(n) --> articulo(n), nombre(n). sintagma_verbal(n) --> verbo(n), sintagma_nominal(_). articulo(singular) --> [el]. articulo(plural) --> [los]. nombre(singular) --> [gato]. nombre(plural) --> [gatos]. nombre(singular) --> [perro]. nombre(plural) --> [perros]. nombre(singular) --> [pescado]. nombre(singular) --> [carne]. verbo(singular) --> [come]. verbo(plural) --> [comen]. IIA 2005 06 Procesamiento... 17

Concordancia en número Sesión:?- phrase(oracion,[el,gato,come,pescado]). Yes?- phrase(oracion,[los,gato,come,pescado]). No IIA 2005 06 Procesamiento... 18

Gramática para lenguaje formal Lenguaje formal {a n b n ; n N} s --> []. s --> i,s,d. i --> [a]. d --> [b]. Sesión:?- phrase(s,[a,a,b,b]). Yes?- phrase(s,[a,a,b,b,b]). No?- phrase(s,x). X = [] ; X = [a, b] ; X = [a, a, b, b] ;... IIA 2005 06 Procesamiento... 19

Gramática para lenguaje formal Lenguaje formal {a n b n c n ; n N} s --> bloque_a(n), bloque_b(n), bloque_c(n). bloque_a(0) --> []. bloque_a(suc(n)) --> [a], bloque_a(n). bloque_b(0) --> []. bloque_b(suc(n)) --> [b], bloque_b(n). bloque_c(0) --> []. bloque_c(suc(n)) --> [c], bloque_c(n). Sesión:?- phrase(s,[a,a,b,b,c,c]). Yes?- phrase(s,x). X = []; X = [a,b,c];... IIA 2005 06 Procesamiento... 20

Gramática con llamadas a Prolog Lenguaje formal {a 2n b 2n c 2n ; n N} s --> bloque_a(n), bloque_b(n), bloque_c(n),{par(n)}. bloque_a(0) --> []. bloque_a(s(n)) --> [a],bloque_a(n). bloque_b(0) --> []. bloque_b(s(n)) --> [b],bloque_b(n). bloque_c(0) --> []. bloque_c(s(n)) --> [c],bloque_c(n). par(0). par(s(s(n))) :-par(n). IIA 2005 06 Procesamiento... 21

Gramática con llamadas a Prolog Sesión:?- phrase(s,[a,a,b,b,c,c]). Yes?- phrase(s,[a,b,c]). No?- phrase(s,x). X = [] ; X = [a,a,b,b,c,c] ; X = [a,a,a,a,b,b,b,b,c,c,c,c] ; X = [a,a,a,a,a,a,b,b,b,b,b,b,c,c,c,c,c,c] Yes IIA 2005 06 Procesamiento... 22

Separación de reglas y lexicón Reglas: oracion --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> articulo, nombre. sintagma_verbal --> verbo, sintagma_nominal. articulo --> [Palabra], {lex(palabra,articulo)}. nombre --> [Palabra], {lex(palabra,nombre)}. verbo --> [Palabra], {lex(palabra,verbo)}. Lexicón: lex(el,articulo). lex(perro,nombre). lex(carne,nombre). lex(gato,nombre). lex(pescado,nombre). lex(come,verbo). IIA 2005 06 Procesamiento... 23

Lexicón con concordancia Reglas: oracion --> sintagma_nominal(n),sintagma_verbal(n). sintagma_nominal(n) --> nombre(n). sintagma_nominal(n) --> art~a?culo(n), nombre(n). sintagma_verbal(n) --> verbo(n),sintagma_nominal(_). articulo(n) --> [Palabra],{lex(Palabra,art~A?culo,N)}. nombre(n) --> [Palabra],{lex(Palabra,nombre,N)}. verbo(n) --> [Palabra],{lex(Palabra,verbo,N)}. IIA 2005 06 Procesamiento... 24

Lexicón con concordancia Lexicón: lex(el,articulo,singular). lex(los,articulo,plural). lex(gato,nombre,singular). lex(gatos,nombre,plural). lex(perro,nombre,singular). lex(perros,nombre,plural). lex(pescado,nombre,singular). lex(pescados,nombre,plural). lex(carne,nombre,singular). lex(carnes,nombre,plural). lex(come,verbo,singular). IIA 2005 06 Procesamiento... 25

Lexicón con género y número Reglas: oracion --> sintagma_nominal(n),verbo(n),complemento. complemento --> []. complemento --> sintagma_nominal(_). sintagma_nominal(n) --> nombre(_,n). sintagma_nominal(n) --> determinante(g,n),nombre(g,n). determinante(g,n) --> [P],{lex(P,determinante,G,N)}. nombre(g,n) --> [P],{lex(P,nombre,G,N)}. verbo(n) --> [P],{lex(P,verbo,N)}. IIA 2005 06 Procesamiento... 26

Lexicón con género y número Lexicón: lex(el,determinante,masculino,singular). lex(los,determinante,masculino,plural). lex(la,determinante,femenino,singular). lex(las,determinante,femenino,plural). lex(un,determinante,masculino,singular). lex(una,determinante,femenino,singular). lex(unos,determinante,masculino,plural). lex(unas,determinante,femenino,plural). lex(profesor,nombre,masculino,singular). lex(profesores,nombre,masculino,plural). lex(profesora,nombre,femenino,singular). lex(profesoras,nombre,femenino,plural). lex(libro,nombre,masculino,singular). lex(libros,nombre,masculino,plural). lex(lee,verbo,singular). IIA 2005 06 Procesamiento... 27

Bibliografía P. Blackburn, J. Bos y K. Striegnitz Learn Prolog Now! [http://www.coli.uni-sb.de/ kris/learn-prolog-now] I. Bratko Prolog Programming for Artificial Intelligence (Third ed.) (Prentice Hall, 2001) P. Flach Simply Logical (Intelligent Reasoning by Example) (John Wiley 1994) U. Nilsson y J. Maluszynski Logic, Programming and Prolog (2nd ed.) (Autores, 2000) [http://www.ida.liu.se/ ulfni/lpp] IIA 2005 06 Procesamiento... 28