PLN parsing charts1 Métodos basados en Charts Extensiones a partir de Charts Métodos Tabulares CKY Earley.

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico.
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Compiladores e intérpretes
Compiladores e intérpretes Análisis Sintáctico III
Gramáticas, lenguajes y reconocedores
Analizador Sintáctico
Gramáticas Libres de Contexto
Gramáticas.
ALGORITMOS.
Tema 2.- Gramáticas independientes de contexto.
¿Cómo hacer para que una máquina comprenda el LN?
Organización de Lenguajes y Compiladores 1
ANALIZADOR SINTACTICO
Analizadores Sintácticos Descendentes Predictivos
1 Parsing Un parser podría ser definido como un programa que analiza una porción de texto para determinar su estructura lógica: la fase de parsing en un.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Traducción dirigida por la Sintaxis
ANALISIS SINTACTICO DESCENDENTE
Teoría de lenguajes y compiladores
CAPITULO 2 La Representación del Conocimiento
Algebra Booleana y Compuertas Lógicas
El análisis sintáctico
Tema 3. Optimización de Código
La estructura de la oración Sintaxix Luis Villaseñor Pineda Laboratorio de Tecnologías del Lenguaje Coordinación de Ciencias Computacionales, Instituto.
2.1 Recursividad El hecho de que una función pueda llamarse a sí misma.
Teoría de lenguajes y compiladores
Sistemas Evolutivos Introduccion.
Tema 2 Lenguajes Formales.
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Introducción a la Teoría de Lenguajes Preparado por Manuel E. Bermúdez, Ph.D. Profesor Asociado University of Florida Curso de Compiladores.
Análisis Sintáctico (Parsing)
Análisis sintáctico LR: SLR (LR simple)
Informática empresarial
Programación en Matlab
Lenguajes Independientes del Contexto
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Análisis de Algoritmos
ANALISIS SINTACTICO Parte I
Procesamiento Práctico del lenguaje Natural Capítulo XXIII.
PLN parsing unificación1 Análisis de gramáticas lógicas Introducción El Prolog como analizador Análisis con gramáticas de rasgos abiertas Schöter Análisis.
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
Teoría de lenguajes y compiladores
Introducción al Análisis Sintáctico
Una introducción a los algoritmos del Parsing. Pregunta inicial… ¿Cómo se puede determinar si un código escrito en un lenguaje de programación tiene sintaxis.
Pasos de un estudio de simulacion (repaso).
Teoría de lenguajes y compiladores Analizadores lexicográficos
Programación de Sistemas
Compiladores e intérpretes
Describiendo las reglas del Lenguaje
Tema 1. Introducción y Conceptos Básicos
Teoría de lenguajes y compiladores
Gramáticas Formales Cadenas y Lenguajes.
Una aproximación a la visión
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 2: Divide y Vencerás Unidad 1: Nociones básicas.
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
UNIVERSIDAD LATINA (UNILA)
Teoría de lenguajes y compiladores
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Teoría de lenguajes y compiladores
Taller: Inteligencia Computacional
Unidad 3 Analizador Sintáctico
Investigación cualitativa e Investigación cuantitativa
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
Autómatas y Compiladores Semana 13. Ricardo Vargas Del Valle A35469.
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
Modelos Formales No Transformacionales MFNT Clase 16. Gramáticas Estructuradas por Rasgos (Feature Structured Grammars) – Head-driven Phrase Structured.
1 MÁS QUE PALABRAS. 2 Más que palabras ¿Qué han de aprender a manipular mentalmente los niños para ser competentes gramaticalmente hablando?
Modelos Formales No Transformacionales MFNT Parsers tradicionales con Gramáticas Independientes de Contexto (Context Free Grammar CFG) : Top-down, bottom-up,
Transcripción de la presentación:

PLN parsing charts1 Métodos basados en Charts Extensiones a partir de Charts Métodos Tabulares CKY Earley

PLN parsing charts2 Extensiones a partir de Charts Desarrollo de las técnicas básicas de Charts (Kay) y de sus implementaciones tabulares (CKY, Earley) Problemas: El tamaño del Chart aumenta con el tamaño de la gramática (número de reglas, longitud) Se crean arcos activos e inactivos inútiles. Se dice que la técnica de los Charts aporta mayor flexibilidad a la estrategia de análisis pero realmente se utiliza casi siempre una estrategia ascendente, eventualmente corregida con predicciones descendentes

PLN parsing charts3 Posibles soluciones Propagación de Restricciones CSP (Quesada) Análisis bidireccionales Dirigidos por el núcleo (Head driven) Dirigidos por functores Dirigidos por islas (Island driven) Uso de Charts para formalismos de unificación Utilización de restrictores Backbone grammars para predecir

PLN parsing charts4 CSP 1 Ambigüedad de la gramática (externa) vs ambigüedad del analizador (interna) 2 estrategias: Mecanismo básico bidireccional ascendente Predicciones descendentes derivaciones parciales adyacencias Mecanismo horizontal de propagación de las restricciones

PLN parsing charts5 CSP 2 S  A 1 b S  A 2 c A 1  a A 1  a A 1 A 2  a A 2  a A 2 gramática a a a b oración a analizar aa ab A2A2 A1A1 A2A2 A1A1 A2A2 A1A1 A 2  a  A 2  A 1  a  A 1  A 2  a  A 2  A 1  a  A 1  A 2  a  A 2  A 1  a  A 1  S   A 1  b

PLN parsing charts6 CSP aa ab A2A2 A1A1 A2A2 A1A1 A1A1 A 2  a  A 2  A 1  a  A 1  A 2  a  A 2  A 1  a  A 1  S   A 1  b Restricciones en la posición 3

PLN parsing charts7 CSP aa ab A1A1 A 1  a  A 1  S   A 1  b propagación de restricciones a las posiciones 2 y 1

PLN parsing charts8 Head-driven Chart parsing Comenzar la aplicación de la regla por el constituyente más informativo/restrictivo Motivación lingüística: HG, HPSG Adquisición automática Generalización de parsing LC Generalización de estrategias izquierda/derecha Extended Head Grammar

PLN parsing charts9 Island-driven parsing Se comienza el análisis por algunas posiciones de la oración determinadas dinámicamente (islas) Cómo seleccionarlas palabras no ambiguas base NPs Segmentos detectados con alta precisión (speech) Cómo extenderlas aproximación local aproximación neighbouring

PLN parsing charts10 Métodos tabulares Programación dinámica Aplicables a Gramáticas independientes del contexto (sin limitaciones) CKI (Cocke, Kasami, Younger,1967) Earley 1969 Extensibles a unificación, probabilísticas, etc...

PLN parsing charts11 Esquemas de análisis Mecanismo unificado de descripción de analizadores proceso constructivo Parser (esquema): dada una oración, se construye un conjunto inicial de items. dada una gramática, existe un conjunto de reglas que permite construir nuevos items a partir de los antiguos. Parser (algoritmo): Esquema de parsing + estructuras de datos + estructuras de control (+ estructuras de comunicación) Sikkel, 1997

PLN parsing charts12 Esquema CKY G =, G  CNF, w = a 1... a n X = {[A, i, j] | 0  i < j  A  N G } H = {[A, j-1, j] | A  a j  P G  1  j  n } D = {[B, i, j], [C, j, k]  [A, i, k] | A  BC  P G  0  i < k < j} V (D) = {[A, i, j] | A  * a i+1... a j } dominio, conjunto de items conjunto de hipótesis conjunto de pasos deductivos conjunto entidades válidas

PLN parsing charts13 CKY 1 Complejidad espacial n 2 temporal n 3 Exigencia de Forma Normal de Chomsky Construcción de la tabla de análisis t ij 1  i  w  1  j  w  i + 1 donde w = a 1,... a n es la frase a analizar

PLN parsing charts14 CKY 2 a 1 a 2... a i... a n A  t i,j j BC

PLN parsing charts15 CKY 3 Que el símbolo A esté en la posición t ij de la tabla significa que desde el símbolo A se puede derivar el fragmento del texto a i,... a i+j-1 (cadena de longitud j que comienza en la posición i-ésima) La condición de gramaticalidad es obviamente que el símbolo inicial de la gramática (F) cumpla que f  t 1|w|

PLN parsing charts16 CKY 4 La forma de construcción es ascendente Se construye la fila 1 utilizando las reglas unarias de la gramática: fila j=1 t i1 = {A| [A --> a i ]  P} A continuación se construyen las filas j=2,... La base del algoritmo es que al construir la fila j ya han sido construidas las anteriores: fila jt ij = {A|  k, 1  k  j, [A --> BC]  P, B  t ik,C  t i+k,j-k }

PLN parsing charts17 CKY 5 1.Add the lexical edges 2.for w = 2 to N: for i = 0 to N-w: for k = 1 to w-1: if: A  BC and B   chart[i,i+k] and C   chart[i+k,i+w] then: add A  BC to chart[i,i+w] 3.If S  chart[0,N], return the corresponding parse tomada de Loper

PLN parsing charts18 Gramática en CNF G 2

PLN parsing charts19 CKY 6 el gato come pescado oracion el gato come oracion el gato GN el (det) A gato come pescado oracion gato come oracion gato (n) B, GN come pescado GV come (vt, vi) C, GV pescado (n) B, GN

PLN parsing charts20 Esquema Earley scanning P earley = I = {[A  , i, j] | A    P G  0  i  j} D = D init  D scan  D compl  D pred H = { [a 1, 0, 1],..., [a n, n-1, n]} D init = {  [S  , 0, 0]} D scan = {[A   a , i, j], [a, j, j+1]  [A   a , i, j+1]} D compl = {[A   B , i, j], [B  , j, k]  [A  B , i, k]} D pred = {[A   B , i, j]  [B , j, j]} V = {[A  , i, j] |   * a i+1... a j  S  * a 1... a i A  } F = {[S  , 0, n]} C = {[S  , 0, n] |   * a 1... a n } inicialización compleción predicción

PLN parsing charts21 Earley 1 Complejidad espacial n 2 temporal n 3, n 2 si la gramática no es ambigua No es preciso CNF La estrategia de análisis es descendente F  SN, FV. SN  *N. SN  *DET, *N. FV  *V, SN.

PLN parsing charts22 Earley 2 Cada estado corresponde al consumo de una palabra de la cadena de entrada: I 0, I 1,... I i,... I |w| Los estados son conjuntos de “parse list” que indican grados de aplicación de las reglas para llegar a dicho estado. [A --> , i]  I j quiere decir que S -->  A  donde  --> a 1 a 2... a i  --> a i+1 a i+2... a j La condición de gramaticalidad será [S --> , 0]  I |w|

PLN parsing charts23 Earley 3 a 1 a 2... a i... a j a n     S S -->  A  [A --> , i]  I j

PLN parsing charts24 Earley 4 proceso iterativo: construcción del estado I 0 construcción del resto de estados (extensión) operaciones: predicción descendente scanning (absorción de una palabra) compleción (final de una regla)

PLN parsing charts25 Earley 5 A  wAwAw Scanner ABEABE E  CD Predictor DEADEAD  EA  A  BC  Completer S  AB Initialization tomada de Loper

PLN parsing charts26 Earley 6 Construcción de I 0 : 1) si [S-->  ]  P entonces [S-->  ]  I 0 2) si [B-->  ]  I 0 (lo cual sólo es posible si [B-->  ]  I 0 ) y [A-->  ]  I 0 entonces [A-->  ]  I 0 3) si [A-->  ]  I 0 y [B-->  ]  P entonces [B-->  ]  I 0

PLN parsing charts27 Earley 7 Extensión: 4) si [B-->  a , i]  I j-1 y a = a j entonces [B-->  a , i]  I j (scanning) 5) si [A--> , i]  I j y [B--> , k]  I i entonces [B--> , k]  I j (compleción) 6) si [A--> , i]  I j y [B-->  ]  P entonces [B--> , j]  I j (predicción)

PLN parsing charts28 Earley 8 For each rule S  in the grammar: Add S  to chart[0,0] For i = 0 to N: for edge in queue[i]: if edge is incomplete and edge.next is a part of speech: scanner(edge) if edge is incomplete and edge.next is not a POS: predictor(edge) if edge is complete: completer(edge) tomada de Loper

PLN parsing charts29 Earley 9 [F   SN FV  ]  I 0 [SN   *N  ]  I 0 [SN   *DET *N  ]  I 0 ejemplo: elgatocomepescado F  *DET *N SN FV inicialización predicción

PLN parsing charts30 Earley 10 [F-->  SN FV  ] [SN-->  *N  ] [SN-->  *DET *N  ] I0I0 [SN--> *DET  *N  ] I1I1 (4) el [SN--> *DET *N  ] I2I2 (4) gato

PLN parsing charts31 Earley 11 [SN--> *DET *N  ] [F--> SN  FV  ] [FV-->  *V SN  ] I2I2 aplico (4) aplico (5), miro en I 3 aplico (5), miro en I 2 [FV--> *V  SN  ] [SN-->  *DET *N  ] [SN-->  *N  ] I3I3 aplico (4) aplico (6) dos veces (4) come [SN--> *N   ] [FV--> *V SN  ] [F--> SN FV  ] (4) pescado aplico (5), miro en I 0 añado el 2º item aplico (6) añado el 3º