310 likes | 430 Views
Métodos basados en Charts. Extensiones a partir de Charts Métodos Tabulares CKY Earley. Extensiones a partir de Charts. Desarrollo de las técnicas básicas de Charts (Kay) y de sus implementaciones tabulares (CKY, Earley) Problemas:
E N D
Métodos basados en Charts • Extensiones a partir de Charts • Métodos Tabulares • CKY • Earley
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
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
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
CSP 2 S A1 b S A2 c A1 a A1 a A1 A2 a A2 a A2 a a a b oración a analizar A2 A2 A2 A1 A1 A1 a b a a gramática 0 1 2 3 4 S A1 b A2 a A2 A2 a A2 A2 a A2 A1 a A1 A1 a A1 A1 a A1
CSP 3 Restricciones en la posición 3 A2 A2 A1 A1 A1 a b a a 0 1 2 3 4 S A1 b A2 a A2 A2 a A2 A1 a A1 A1 a A1
CSP 4 propagación de restricciones a las posiciones 2 y 1 A1 a b a a 0 1 2 3 4 S A1 b A1 a A1 A1 a A1
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
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
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...
Esquemas de análisis Sikkel, 1997 • 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)
Esquema CKY • G = <N, , P,S >, G CNF, w = a1 ... an • <X, H, D> • X = {[A, i, j] | 0 i < j A NG } • H = {[A, j-1, j] | A aj PG 1 j n } • D = {[B, i, j], [C, j, k] [A, i, k] | A BC PG 0 i < k < j} • V (D) = {[A, i, j] | A * ai+1 ... aj} dominio, conjunto de items conjunto entidades válidas conjunto de hipótesis conjunto de pasos deductivos
CKY 1 Complejidad espacial n2 temporal n3 Exigencia de Forma Normal de Chomsky Construcción de la tabla de análisis tij 1 i w1 j wi + 1 donde w = a1, ... an es la frase a analizar
CKY 2 A ti,j B C a1 a2 ... ai ... an j
CKY 3 Que el símbolo A esté en la posición tij de la tabla significa que desde el símbolo A se puede derivar el fragmento del texto ai, ... ai+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 t1|w|
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 ti1 = {A| [A --> ai] 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 j tij = {A| k, 1 k j, [A --> BC] P, B tik,C ti+k,j-k}
CKY 5 • Add the lexical edges • for w = 2 to N: • for i = 0 to N-w: • for k = 1 to w-1: • if: • ABC and • B chart[i,i+k] and • C chart[i+k,i+w] • then: • add ABC to chart[i,i+w] • If Schart[0,N], return the corresponding parse tomada de Loper
el gato come pescado oracion el gato come oracion gato come pescado oracion el gato GN gato come oracion come pescado GV el (det) A gato (n) B, GN come (vt, vi) C, GV pescado (n) B, GN CKY 6
Esquema Earley Pearley = <I, H, D> I = {[A , i, j] | A PG 0 i j} D = Dinit Dscan Dcompl Dpred H = { [a1, 0, 1],..., [an, n-1, n]} inicialización scanning Dinit = {[S , 0, 0]} Dscan = {[A a, i, j], [a, j, j+1] [A a, i, j+1]} Dcompl = {[A B, i, j], [B , j, k] [AB, i, k]} Dpred = {[A B, i, j] [B, j, j]} compleción predicción V = {[A , i, j] | * ai+1 ... aj S * a1 ... ai A } F = {[S , 0, n]} C = {[S , 0, n] | * a1 ... an}
Earley 1 Complejidad espacial n2 temporal n3, n2 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.
Earley 2 Cada estado corresponde al consumo de una palabra de la cadena de entrada: I0, I1, ... Ii, ... 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] Ij quiere decir que S --> Adonde --> a1 a2 ... ai --> ai+1 ai+2 ... aj La condición de gramaticalidad será [S --> , 0] I|w|
Earley 3 S a1 a2 ... ai ... aj an S --> A [A --> , i] Ij
Earley 4 proceso iterativo: construcción del estado I0 construcción del resto de estados (extensión) operaciones: predicción descendente scanning (absorción de una palabra) compleción (final de una regla)
Earley 5 Initialization Predictor Scanner Completer tomada de Loper
Earley 6 Construcción de I0: 1) si [S--> ] P entonces [S--> ] I0 2) si [B--> ] I0 (lo cual sólo es posible si [B--> ] I0) y [A--> ] I0entonces [A--> ] I0 3) si [A--> ] I0 y [B--> ] P entonces [B--> ] I0
Earley 7 Extensión: 4) si [B--> a, i] Ij-1y a = ajentonces [B--> a, i] Ij (scanning) 5) si [A--> , i] Ijy [B--> , k] Iientonces [B--> , k] Ij (compleción) 6) si [A--> , i] Ij y [B--> ] P entonces [B--> , j] Ij (predicción)
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
ejemplo: el gato come pescado SN FV *DET *N [F SN FV] I0 [SN *N] I0 [SN *DET *N] I0 F Earley 9 inicialización predicción predicción
Earley 10 [F--> SN FV] [SN--> *N] [SN--> *DET *N] I0 (4) el [SN--> *DET *N] I1 (4) gato [SN--> *DET *N ] I2
Earley 11 [SN--> *DET *N ] [F--> SNFV] [FV--> *V SN] I2 aplico (5), miro en I0 añado el 2º item aplico (6) añado el 3º (4) come aplico (4) aplico (6) dos veces [FV--> *V SN] [SN--> *DET *N ] [SN--> *N ] I3 [SN--> *N ] [FV--> *V SN ] [F--> SN FV ] (4) pescado aplico (4) aplico (5), miro en I3 aplico (5), miro en I2