Sunteți pe pagina 1din 23

Modelos Formales

No Transformacionales MFNT

Parsers tradicionales con Gramáticas


Independientes de Contexto (Context
Free Grammar CFG) : Top-down,
bottom-up, depth first, breadth first
MFNT - Parsers tradicionales con CFG

Definición formal de Gramática CFG


 Una cuádrupla G = ( V , T , S , P)

Siendo:
V = conjunto de símbolos no terminales o categoriales
T = conjunto de símbolos terminales o lexicales
S = símbolo inicial
P = conjunto de reglas de producción de la forma X  y con único
símbolo X ∈ V y set y ∈ (V ∪ T)

Una gramática CFG es un formalismo matemático para generar


oraciones o bien para asignar estructura sintáctica a oraciones,
procesos ambos conocidos como derivación. El mecanismo práctico
que implementa una derivación se conoce como parser (analizador
sintáctico) 2
MFNT - Parsers tradicionales con CFG

Gramáticas subtipo lineales


Subtipo de gramáticas 2 y 3 a izquierda y derecha, ya que todavía
pueden ser expresadas como autómatas de gramáticas regulares

 G = ( {X ,Y} , {a,b} , S = X , P)

Siendo:
P1 =
X  aX
X  aY
Yb
Y  bY

Siendo:
P2 =
X  Xb
X  Yb
Ya 3
Y  Ya
MFNT - Parsers tradicionales con CFG

Definición formal de Gramática CFG


(ejemplo)
 G = ( {X ,Y} , {a,b} , S = X , P)
Siendo:
P=
X  aXb
X  ab

Qué tipo de oraciones genera esta gramática? (centered-embedded


clauses = “the mouse the cat chased ate the cheese”

Podría ser “reducida” a una gramática regular o autómata? Hay alguna


expresión regular que genere el mismo set de oraciones?

Todas las gramáticas regulares pueden ser expresadas como CFG pero
no toda CFG es regular

4
MFNT - Parsers tradicionales con CFG

Ejemplo de CFG con constituyentes


sintácticos (1)
G = ( {O,SN,SV,SP,N,V,P,D} , {Juan,el,globo,parque,en,compró,corrió, Ø} , S = O , P)
Siendo:
P=
O  SN SV
SN  N
Categorías sintácticas primitivas y
SN  D N derivadas vs. terminales
SV  V SN SP
SV  V SN
SV  V SP
SV  V
SP  P SN
P  en
V  compró
V  corrió
N  Juan
N  parque
N  globo
NØ
D  el

Qué oraciones genera esta gramática de 16 reglas. Cuántas gramaticales?

5
MFNT - Parsers tradicionales con CFG

Ejemplo de CFG con constituyentes


sintácticos (1) notación simplificada
G = ( {O,SN,SV,SP,N,V,P,D} , {Juan,el,globo,parque,en,compró,corrió, Ø} , S = O , P)
Siendo:
P=
O  SN SV
SN  (D) N
SV  V (SN) (SP)
No distinguimos aquí entre Sintagmas o Frases
SP  P SN
Preposicionales como adjuntos (lo que obligaría a
P  en un nivel adicional N’ ) o complementos. En inglés es
V  compró ¦ corrió muy importante la diferencia entre
N  Juan ¦ parque ¦ globo ¦ Ø
The hunter of red deers vs. The hunter from Europe
D  el

Ahora son sólo 8 reglas (Para los tests de adyacencia y substitucion por one
en caso de complemento, véase Radford)

6
Ejemplo de CFG con constituyentes
MFNT - Parsers tradicionales con CFG

sintácticos (2) recursividad por


coordinación
G = ( {O,SN,SV,SP,N,V,P,D, Adj, Conj} , {Juan,el,globo,parque,en,compró,corrió, Europa, y, rojo, alto, de, Ø} ,
S = O , P)
Siendo:
P=
O  SN SV
O  O Conj O
SN  (D) N (Adj) (SP)
SV  V (SN) (SP)
SP  P SN
Adj  Adj Conj Adj
V  V Conj V
V  compró ¦ corrió
N  N Conj N
N  Juan ¦ parque ¦ globo ¦ Ø ¦ Europa
P  en ¦ de
D  el
Conj  y
Adj  rojo ¦ alto

Ahora? Cuantas oraciones (algunas muy gramaticales con apenas 14 reglas)

7
Ejemplo de CFG con constituyentes
MFNT - Parsers tradicionales con CFG

sintácticos (2) recursividad por


claúsula relativa
G = ( {O,SN,SV,SP,N,V,P,D, Conj, Adj, Orel, PROrel} , {Juan,el,globo,parque,en,compró,corrió, explotó, Ø, y,
que, Europa, de, rojo, alto} , S = O , P)
Siendo:
P=
O  SN SV
O  O Conj O
Orel  PROrel O
SN  (D) N (Adj) (SP) (Orel)
SV  V (SN) (SP)
SP  P SN
Adj  Adj Conj Adj
V  V Conj V
V  compró ¦ corrió ¦ explotó
N  N Conj N
N  Juan ¦ parque ¦ globo ¦ Ø ¦ Europa
P  en ¦ de
D  el
Conj  y
Adj  rojo ¦ alto
PROrel  que

8
MFNT - Parsers tradicionales con CFG

Primeros problemas para CFG:


concordancia
Osing  SNsing SVsing
Obviamente, la gran mayoría de las
oraciones agramaticales se genera por no Oplu  SNplu SVplu
contemplar la concordancia externa S-V ni la
interna a nivel de la Frase o Sintagma SVsing  Vsing SNsing ¦ Vsing SNplu
nominal. Las CFG podrían solucionar
SVplu  Vplu SNplu ¦ Vplu SNsing
esto, pero a costa de una proliferación
excesiva de reglas y duplicación de SNplu  Dplu Nplu Adjplu
categorías (en el mejor de los casos).
Algo muy engorroso para cubrir todas las SNsing  Dsing Nsingu Adjsing
concardancias del español (y qué hay del
posesivo francés en concordancia además Vsing  inventó
con la cosa poseída?). Sencillamente
impensable!!!! Vplu  inventaron

Nplu  hombres ¦ corbatas

Nsing  hombre ¦ corbata

Adjsing  blanco

Adjplu  blancos

Dsing  el ¦ la 9

Dplu  los ¦ las


Otros problemas para CFG:
MFNT - Parsers tradicionales con CFG

subcategorización verbal y casos


raros
Más allá de la distinción verbo transitivo vs. verbo intransitivo, en inglés (por
ejemplo) existen:
• los verbos DITRANSITIVOS = “I give John a ball” “
• estructuras de Ac+Inf =“I consider him [Orac to be….]”

• y verbos de tres argumentos obligatorios = “I bet John 5 dollars [Orac that…]”

El problema 1 se soluciona creando Verbal Dative Phrase (VD phrase)

VIP  VI
VTP  VT NP
VDP  VD NP NP
VP  VIP PP
VP  VTP PP
VP  VDP PP

10
Y más problemas para CFG:
MFNT - Parsers tradicionales con CFG

Dependencias estructurales a larga


distancia
El español es bastante flexible en la sintaxis como para generar constituyentes
discontinuos
2. “I think him his friend is gonna forgive”
3. “Las cosas que César creía que Cicerón dijo” (construcción trabada)

Pero aún peor es el caso del Sánscrito o del Latín clásicos . Aunque,
después de todo, a quién le interesa hacer parsers de lingüística
computacional para esos dos malditos idiomas 

Veremos más adelante (clase 13) que la primera solución a algunos


de estos problemas es la Gramática de Claúsulas Definidas
(Definite Clause Grammar, DCG) que empieza a trabajar con
lógica de primer orden (un antecedente para lo que luego serían
los rasgos) para solucionar el tema de concordancia y
subcategorización. Este tipo de gramáticas ya se consideran
Gramáticas Sintagmáticas Aumentadas (estarían entre los tipos 1
y 2), aunque guardan una estrecha relación con las CFGs 11
MFNT - Parsers tradicionales con CFG

Ventajas de CFG respecto de Finite State


Automata

1. Da cuenta de recursividad mucho mejor para claúsulas embebidas

[OEl hombre [Orel1que está en la esquina [Orel2que queda a dos cuadras de la casa [Orel3que hoy se vendió]Orel3 es(?) Juan]Orel2]Orel1]O

2. Notación simplificada en reglas para símbolos terminales evita proliferacion de arcos


y estados de transición

3. Entienden la lógica de constituyentes (salvo para constituyentes discontinuos)


4. De esta forma estamos codificando conocimiento sintáctico para la máquina

El gran problema de las CFG es que escala (pero no resuelve) el problema de la


dependencia del estado actual (categoría sintáctica) que tenían los autómatas a una
dependencia del constituyente sintáctico actual. Por eso falla miserablemente en
fenomneos de dependencia a larga distancia
12
MFNT - Parsers tradicionales con CFG

Qué es parsing? Reconocedores y


Analizadores

Un parser es un algoritmo computacional que procesa


sintácticamente una oración en dos sentidos: o bien sólo
decide si es o no gramatical (parser reconocedor) , o bien
asigna una estructura sintáctica mediante árboles o
estructuras corcheteadas cuando es la oración es gramatical
(parser analizador)

Los parsers ocupan un lugar en cualquier modelo integral de NLP, ya que la sintaxis
sigue teniendo una gran preminencia en cómo procesamos lenguaje

Las implementaciones de parser implican, además del algoritmo en sí mismo, una


gramática y un corpus de oraciones como input

13
MFNT - Parsers tradicionales con CFG

Estrategia de parsing y estrategias de


procesamiento

2 estrategias de parsing: top-down y


combinables
bottom-up

2 estrategias de procesamiento:
depth first y breadth first

14
MFNT - Parsers tradicionales con CFG

Estrategia de parsing y estrategias de


procesamiento
Top-Down: Empezás con el símbolo
de inicio O y vas aplicando las
reglas de escritura de frase hasta
que logras una lista de símbolos
idéntica a la oración input

15
MFNT - Parsers tradicionales con CFG

Estrategia de parsing y estrategias de


procesamiento

Bottom-up: Empezás con los


símbolos de tu oración input y vas
aplicando las reglas de rescritura de
frase hasta que lográs el símbolo
meta O.

(Primero aplicás todas las reglas lexicales para


evitar que constituyentes completos se eleven
sin seguir la oración- tagging the input) 16
MFNT - Parsers tradicionales con CFG

Estrategia de parsing y estrategias de


procesamiento

Depth first: concentrarse al máximo


en derivar una categoría antes de
pasar a la siguiente
O  SN SV
SN  D N
D  el
N  hombre
SV  V SN
V  come
SN  N
N  pan

17
MFNT - Parsers tradicionales con CFG

Estrategia de parsing y estrategias de


procesamiento

Breadth first: Concentrarse en


desarrollar todas las categorías de
una misma línea de la derivación
O  SN SV
SN  D N
SV  V SN
D  el
N  hombre
V  come
SN  N
N  pan

18
MFNT - Parsers tradicionales con CFG

Parsers en acción: qué estrategia de


parsing y cuál de procesamiento?
O

SN SV

D N V SN

el hombre come N

pan

19
MFNT - Parsers tradicionales con CFG

Parsers en acción: qué estrategia de


parsing y cuál de procesamiento?
O

SN SV

D N V SN

el hombre come N

pan

20
MFNT - Parsers tradicionales con CFG

Parsers en acción: qué estrategia de


parsing y cuál de procesamiento?
O

SN SV

D N V SN

el hombre come N

pan

21
MFNT - Parsers tradicionales con CFG

Parsers en acción (laboratorio)

El top-down es más
psicolingüísticamente intuitivo pero
el bottom-up parece ser más
eficiente en cuanto a evitar falsos
caminos
TDAParser es depth first con agenda FIFO. Usa PSGparser.py y
PSG1.txt

22
MFNT - Parsers tradicionales con CFG

Limitaciones de Parsers tradicionales

 No hay backtracking con inteligencia para saber en qué


punto de la derivación se equivocó. La agenda es una lista
con todas las REF para una misma categoría que no fueron
usadas (to do list) NP->N NP->Art N
 Procesamiento no incremental sino exhaustivo(no genera
hipótesis). Los humanos no parseamos en forma exhaustiva
todos los caminos. Por ejemplo, si sabemos que nos queda un solo
símbolo para SV podemos intuir que no es transitivo y no haría falta testear
el camino SV -> V SN SP
 No dan cuenta de ambigüedad estructural “Juan vio al
hombre con el telescopio”
La solución a algunos problemas es Chart parser a.k.a.
Earley Parser (lo veremos en clase 10) 23

S-ar putea să vă placă și