Algoritmo de Earley

28
Introducción El Algoritmo de Earley constituye un método universal para la realización del Análisis Sintáctico, proceso consistente en determinar si una cadena constituida por una serie de componentes léxicos puede ser generada por una determinada gramática. El proceso se realiza de acuerdo a una estrategia ascendente con filtrado descendente, en base a la cual se efectúa el contraste entre las reglas de producción definidas para la gramática y la frase de entrada considerada, comenzando por la regla de producción de nivel superior, es decir, aquella que describe al símbolo raíz de la gramática, y aplicando de manera recursiva aquellas reglas más específicas. El análisis sintáctico finaliza con éxito en caso de que resulte posible construir una representación de la frase de entrada considerada. Las estrategias simples de análisis sintáctico se encuentran afectadas por tres tipos de ineficiencia computacional: Recursividad por la izquierda La utilización de una gramática recursiva por la izquierda impide la realización de un proceso de análisis sintáctico descendente, por lo que se requiere la aplicación de una transformación previa para poder efectuar un procedimiento de estas características. Ambigüedad estructural

Transcript of Algoritmo de Earley

Page 1: Algoritmo de Earley

Introduccioacuten

El Algoritmo de Earley constituye un meacutetodo universal para la realizacioacuten delAnaacutelisis Sintaacutectico proceso consistente en determinar si una cadena constituida por unaserie de componentes leacutexicos puede ser generada por una determinada gramaacutetica

El proceso se realiza de acuerdo a una estrategia ascendente con filtradodescendente en base a la cual se efectuacutea el contraste entre las reglas de produccioacutendefinidas para la gramaacutetica y la frase de entrada considerada comenzando por la reglade produccioacuten de nivel superior es decir aquella que describe al siacutembolo raiacutez de lagramaacutetica y aplicando de manera recursiva aquellas reglas maacutes especiacuteficas El anaacutelisissintaacutectico finaliza con eacutexito en caso de que resulte posible construir una representacioacutende la frase de entrada considerada

Las estrategias simples de anaacutelisis sintaacutectico se encuentran afectadas por trestipos de ineficiencia computacional

bull Recursividad por la izquierda

La utilizacioacuten de una gramaacutetica recursiva por la izquierda impide larealizacioacuten de un proceso de anaacutelisis sintaacutectico descendente por lo que serequiere la aplicacioacuten de una transformacioacuten previa para poder efectuar unprocedimiento de estas caracteriacutesticas

bull Ambiguumledad estructural

Una gramaacutetica ambigua es aquella que genera maacutes de un aacuterbol sintaacutecticopara una determinada frase de entrada Algunos tipos de analizadores sintaacutecticosutilizan preferentemente gramaacuteticas no ambiguas con lo que la supresioacuten de esta

caracteriacutestica de la gramaacutetica suele ser conveniente para eliminar laincertidumbre

bull Anaacutelisis repetido de subestructuras

Este inconveniente se genera como consecuencia de la aplicacioacuten delprocedimiento denominado retroceso o backtracking durante la realizacioacuten delanaacutelisis sintaacutectico

La teacutecnica de backtracking consiste en efectuar durante el desarrollo del anaacutelisissintaacutectico el regreso a un estado anterior como consecuencia del cual se produce lapeacuterdida de determinadas estructuras generadas en la opcioacuten rechazada Una solucioacuten aeste problema radica en elaborar una tabla dinaacutemica globalmente accesible en la cualalmacenar aquellas estructuras parciales obtenidas durante el proceso de anaacutelisissintaacutectico Esto permite que cada una de estas subestructuras sea analizada y generadasolamente en una ocasioacuten siendo posible que el analizador sintaacutectico efectuacutee sureutilizacioacuten en el momento en que resulte necesario volver a analizar un determinadoelemento constituyente

Los algoritmos de anaacutelisis sintaacutectico que utilizan esta teacutecnica son tres

bull Algoritmo de Earleybull Algoritmo de Cocke-Younger-Kasami (CYK)bull Algoritmo de Graham-Harrison-Ruzzo (GHR)

El Algoritmo de Earley se define como un meacutetodo universal de anaacutelisissintaacutectico que resulta aplicable a cualquier Gramaacutetica de Contexto Libre Se caracterizapor la utilizacioacuten de teacutecnicas de programacioacuten dinaacutemica mediante las cuales elproblema original se descompone en una serie de subproblemas que son abordados demanera independiente los resultados intermedios obtenidos para los diferentessubproblemas se almacenan en una tabla con el objetivo de que puedan ser reutilizadosen tantas ocasiones como resulte necesario sin necesidad de volverlos a calcular Las

soluciones a dichos subproblemas individuales se combinan de forma adecuada paragenerar la solucioacuten al problema propuesto inicialmente

Algoritmo de Earley

El Algoritmo de Earley desarrollado en el antildeo 1970 como resultado de la TesisDoctoral elaborada por su autor Jay Clark Earley en la Universidad de CarnegieMellon realiza un Anaacutelisis Sintaacutectico Descendente que se caracteriza porque todos losanaacutelisis parciales efectuados se almacenan en una tabla con el fin de no repetir elproceso de estudio de dichos elementos constituyentes en fases posteriores de laderivacioacuten Una solucioacuten parcial previamente analizada se puede localizar raacutepidamenteen una tabla construida dinaacutemicamente lo cual permite la reutilizacioacuten evitando lareconstruccioacuten de las diferentes soluciones parciales en el momento en que eacutestas senecesitan de nuevo Esto permite reducir el tiempo de ejecucioacuten del algoritmoincrementando considerablemente su velocidad y eficiencia

El Algoritmo de Earley reduce la complejidad exponencial del proceso deanaacutelisis a una complejidad polinomial dependiente de la longitud de la cadena deentrada Para una longitud de oracioacuten igual a n su complejidad en el peor de los casoses cuacutebica O(n3) si bien en numerosas circunstancias es lineal O(n) La reduccioacuten de lacomplejidad exponencial caracteriacutestica de los algoritmos basados en backtracking seobtiene eliminando la repeticioacuten de los caacutelculos mediante la utilizacioacuten de la tabladinaacutemica dedicada al almacenamiento de las estructuras parciales

Un analizador sintaacutectico Earley construye para una gramaacutetica G y una cadena de entrada constituida por n palabras representada por a1 hellip an una secuencia de n+1conjuntos de elementos denominados itemsets los cuales se almacenan como entradasen una tabla dinaacutemica que recibe el nombre de chart Este array se completa deizquierda a derecha avanzaacutendose en el mismo a medida que se obtienen nuevoscomponentes de la frase de entrada En cada una de las entradas de la tabla se registra

una lista de estados los cuales representan las subestructuras derivadas hasta elmomento actual del proceso de anaacutelisis es decir los aacuterboles de anaacutelisis parcial que esposible construir hasta la correspondiente posicioacuten de la frase de entrada En elmomento en que se produce la finalizacioacuten de la frase de entrada es decir el proceso dederivacioacuten el chart codifica de manera compacta todos los posibles anaacutelisis efectuadossobre la misma asiacute como los diferentes subaacuterboles parciales generados

La informacioacuten almacenada en cada uno de los estados recogidos en lasdiferentes entradas del chart constituye una hipoacutetesis sobre una determinada subcadenaparticular existente en la cadena de entrada al proceso de anaacutelisis sintaacutectico Estahipoacutetesis presenta la forma de una regla o produccioacuten de la gramaacutetica incluyendo ademaacutes una anotacioacuten que especifica el fragmento de dicha hipoacutetesis que se encuentraconfirmado hasta el momento La estructura de estos estados registrados en la tabladinaacutemica se puede considerar por tanto como un par de la forma lsaquoRegla GramaticalPosicioacutenrsaquo

bull El elemento Regla Gramatical estaacute constituido a su vez por un parconstituido por los elementos lsaquoLIG LDGrsaquo los cuales representan un siacutembolo noterminal de la gramaacutetica (LIG) y una secuencia de siacutembolos terminales y noterminales (LDG) Generalmente el par lsaquoLIG LDGrsaquo se escribe de la formaLIG1048764LDG La secuencia de categoriacuteas recogidas en el elemento LDG seencuentra dividida en dos fragmentos por medio de un punto (bull) Los elementossituados a la derecha de este siacutembolo representan la secuencia de siacutembolos quetodaviacutea debe ser verificada en dicho estado la cual se conoce con el nombre de resto

La utilizacioacuten de esta categoriacutea de reglas permite representar elreconocimiento parcial de producciones mediante la utilizacioacuten de reglas con

punto a diferencia de lo que ocurre en otros algoritmos como por ejemploCYK en los cuales uacutenicamente estaacute permitido representar reglas de produccioacutencompletas y ademaacutes resulta necesario generar elementos a partir de otroselementos mediante la aplicacioacuten de un solo paso deductivo predictivo

bull El elemento Posicioacuten tambieacuten representa un par de la forma lsaquoInicio Finrsaquo enel cual se registra la posicioacuten inicial y final correspondiente al fragmento en quese encuentra cubierto dicho estado en relacioacuten con los elementos constituyentesde la cadena de entrada

El significado asociado a un estado es el siguiente la subcadena de la oracioacuten deentrada que se encuentra abarcada por el par Posicioacuten podriacutea considerarse comoequivalente a la produccioacuten LIG en el caso de que la secuencia de siacutembolos situada acontinuacioacuten del punto (el resto) se localizara a la derecha de la misma

La notacioacuten utilizada en el Algoritmo de Earley para la representacioacuten de cadauno de los diferentes estados individuales recogidos en el chart consiste en una tupla dela forma [A 1048764 α bull β i j] donde

bull El elemento A 1048764 α bull β representa la regla de produccioacuten de la gramaacuteticaaplicada para realizar la derivacioacuten de la subestructura

Estas reglas de produccioacuten se conocen con el nombre de dotted rules reglasen las que aparece un punto (bull) en la parte derecha indicando el fragmentoreconocido hasta un determinado momento La notacioacuten utilizada indica que laparte α de la regla de produccioacuten A 1048764 α β Є P ya ha sido reconocida durante elproceso de anaacutelisis

Este componente del estado proporciona informacioacuten relativa al subaacuterbol

asociado a una determinada regla de la gramaacutetica asiacute como informacioacuten sobre elprogreso realizado en la construccioacuten del mismo

bull Los elementos i j representan la posicioacuten de inicio y la posicioacuten de fin de lasubestructura

Estos iacutendices expresan en queacute entradas de la tabla dinaacutemica o posiciones dela frase de entrada comienza y termina el fragmento del subaacuterbol construidohasta el momento

El elemento i representa un puntero de retroceso o backpointer que indicael itemset en el cual se inicioacute el reconocimiento de la produccioacuten A 1048764 α β

El elemento j representa el iacutendice de terminacioacuten que indica que el iacutetemconsiderado pertenece al itemset es decir a la entrada de la tabla dinaacutemica especificada por el valor correspondiente

Los estados siempre verifican la siguiente propiedad

rArr α ai+1hellipaj y j i le le 0

Los estados recogidos en la tabla dinaacutemica se organizan en dos categoriacuteasestados activos y estados inactivos

bull Los estados inactivos se corresponden con reglas que se han aplicado hastael final generando una subestructura completa por lo tanto el elemento restosituado a la derecha del punto (bull) se encuentra vaciacuteo Los estados inactivos seconocen tambieacuten con el nombre de hipoacutetesis pasivas

bull Los estados activos se corresponden con reglas que se han aplicado soacutelo demanera parcial Aquel fragmento de la regla no aplicado es decir el resto serepresenta precedido por un punto (bull) Los estados activos se conocen tambieacutencon el nombre de hipoacutetesis activas

El proceso de anaacutelisis sintaacutectico comienza con la creacioacuten del elemento

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 2: Algoritmo de Earley

caracteriacutestica de la gramaacutetica suele ser conveniente para eliminar laincertidumbre

bull Anaacutelisis repetido de subestructuras

Este inconveniente se genera como consecuencia de la aplicacioacuten delprocedimiento denominado retroceso o backtracking durante la realizacioacuten delanaacutelisis sintaacutectico

La teacutecnica de backtracking consiste en efectuar durante el desarrollo del anaacutelisissintaacutectico el regreso a un estado anterior como consecuencia del cual se produce lapeacuterdida de determinadas estructuras generadas en la opcioacuten rechazada Una solucioacuten aeste problema radica en elaborar una tabla dinaacutemica globalmente accesible en la cualalmacenar aquellas estructuras parciales obtenidas durante el proceso de anaacutelisissintaacutectico Esto permite que cada una de estas subestructuras sea analizada y generadasolamente en una ocasioacuten siendo posible que el analizador sintaacutectico efectuacutee sureutilizacioacuten en el momento en que resulte necesario volver a analizar un determinadoelemento constituyente

Los algoritmos de anaacutelisis sintaacutectico que utilizan esta teacutecnica son tres

bull Algoritmo de Earleybull Algoritmo de Cocke-Younger-Kasami (CYK)bull Algoritmo de Graham-Harrison-Ruzzo (GHR)

El Algoritmo de Earley se define como un meacutetodo universal de anaacutelisissintaacutectico que resulta aplicable a cualquier Gramaacutetica de Contexto Libre Se caracterizapor la utilizacioacuten de teacutecnicas de programacioacuten dinaacutemica mediante las cuales elproblema original se descompone en una serie de subproblemas que son abordados demanera independiente los resultados intermedios obtenidos para los diferentessubproblemas se almacenan en una tabla con el objetivo de que puedan ser reutilizadosen tantas ocasiones como resulte necesario sin necesidad de volverlos a calcular Las

soluciones a dichos subproblemas individuales se combinan de forma adecuada paragenerar la solucioacuten al problema propuesto inicialmente

Algoritmo de Earley

El Algoritmo de Earley desarrollado en el antildeo 1970 como resultado de la TesisDoctoral elaborada por su autor Jay Clark Earley en la Universidad de CarnegieMellon realiza un Anaacutelisis Sintaacutectico Descendente que se caracteriza porque todos losanaacutelisis parciales efectuados se almacenan en una tabla con el fin de no repetir elproceso de estudio de dichos elementos constituyentes en fases posteriores de laderivacioacuten Una solucioacuten parcial previamente analizada se puede localizar raacutepidamenteen una tabla construida dinaacutemicamente lo cual permite la reutilizacioacuten evitando lareconstruccioacuten de las diferentes soluciones parciales en el momento en que eacutestas senecesitan de nuevo Esto permite reducir el tiempo de ejecucioacuten del algoritmoincrementando considerablemente su velocidad y eficiencia

El Algoritmo de Earley reduce la complejidad exponencial del proceso deanaacutelisis a una complejidad polinomial dependiente de la longitud de la cadena deentrada Para una longitud de oracioacuten igual a n su complejidad en el peor de los casoses cuacutebica O(n3) si bien en numerosas circunstancias es lineal O(n) La reduccioacuten de lacomplejidad exponencial caracteriacutestica de los algoritmos basados en backtracking seobtiene eliminando la repeticioacuten de los caacutelculos mediante la utilizacioacuten de la tabladinaacutemica dedicada al almacenamiento de las estructuras parciales

Un analizador sintaacutectico Earley construye para una gramaacutetica G y una cadena de entrada constituida por n palabras representada por a1 hellip an una secuencia de n+1conjuntos de elementos denominados itemsets los cuales se almacenan como entradasen una tabla dinaacutemica que recibe el nombre de chart Este array se completa deizquierda a derecha avanzaacutendose en el mismo a medida que se obtienen nuevoscomponentes de la frase de entrada En cada una de las entradas de la tabla se registra

una lista de estados los cuales representan las subestructuras derivadas hasta elmomento actual del proceso de anaacutelisis es decir los aacuterboles de anaacutelisis parcial que esposible construir hasta la correspondiente posicioacuten de la frase de entrada En elmomento en que se produce la finalizacioacuten de la frase de entrada es decir el proceso dederivacioacuten el chart codifica de manera compacta todos los posibles anaacutelisis efectuadossobre la misma asiacute como los diferentes subaacuterboles parciales generados

La informacioacuten almacenada en cada uno de los estados recogidos en lasdiferentes entradas del chart constituye una hipoacutetesis sobre una determinada subcadenaparticular existente en la cadena de entrada al proceso de anaacutelisis sintaacutectico Estahipoacutetesis presenta la forma de una regla o produccioacuten de la gramaacutetica incluyendo ademaacutes una anotacioacuten que especifica el fragmento de dicha hipoacutetesis que se encuentraconfirmado hasta el momento La estructura de estos estados registrados en la tabladinaacutemica se puede considerar por tanto como un par de la forma lsaquoRegla GramaticalPosicioacutenrsaquo

bull El elemento Regla Gramatical estaacute constituido a su vez por un parconstituido por los elementos lsaquoLIG LDGrsaquo los cuales representan un siacutembolo noterminal de la gramaacutetica (LIG) y una secuencia de siacutembolos terminales y noterminales (LDG) Generalmente el par lsaquoLIG LDGrsaquo se escribe de la formaLIG1048764LDG La secuencia de categoriacuteas recogidas en el elemento LDG seencuentra dividida en dos fragmentos por medio de un punto (bull) Los elementossituados a la derecha de este siacutembolo representan la secuencia de siacutembolos quetodaviacutea debe ser verificada en dicho estado la cual se conoce con el nombre de resto

La utilizacioacuten de esta categoriacutea de reglas permite representar elreconocimiento parcial de producciones mediante la utilizacioacuten de reglas con

punto a diferencia de lo que ocurre en otros algoritmos como por ejemploCYK en los cuales uacutenicamente estaacute permitido representar reglas de produccioacutencompletas y ademaacutes resulta necesario generar elementos a partir de otroselementos mediante la aplicacioacuten de un solo paso deductivo predictivo

bull El elemento Posicioacuten tambieacuten representa un par de la forma lsaquoInicio Finrsaquo enel cual se registra la posicioacuten inicial y final correspondiente al fragmento en quese encuentra cubierto dicho estado en relacioacuten con los elementos constituyentesde la cadena de entrada

El significado asociado a un estado es el siguiente la subcadena de la oracioacuten deentrada que se encuentra abarcada por el par Posicioacuten podriacutea considerarse comoequivalente a la produccioacuten LIG en el caso de que la secuencia de siacutembolos situada acontinuacioacuten del punto (el resto) se localizara a la derecha de la misma

La notacioacuten utilizada en el Algoritmo de Earley para la representacioacuten de cadauno de los diferentes estados individuales recogidos en el chart consiste en una tupla dela forma [A 1048764 α bull β i j] donde

bull El elemento A 1048764 α bull β representa la regla de produccioacuten de la gramaacuteticaaplicada para realizar la derivacioacuten de la subestructura

Estas reglas de produccioacuten se conocen con el nombre de dotted rules reglasen las que aparece un punto (bull) en la parte derecha indicando el fragmentoreconocido hasta un determinado momento La notacioacuten utilizada indica que laparte α de la regla de produccioacuten A 1048764 α β Є P ya ha sido reconocida durante elproceso de anaacutelisis

Este componente del estado proporciona informacioacuten relativa al subaacuterbol

asociado a una determinada regla de la gramaacutetica asiacute como informacioacuten sobre elprogreso realizado en la construccioacuten del mismo

bull Los elementos i j representan la posicioacuten de inicio y la posicioacuten de fin de lasubestructura

Estos iacutendices expresan en queacute entradas de la tabla dinaacutemica o posiciones dela frase de entrada comienza y termina el fragmento del subaacuterbol construidohasta el momento

El elemento i representa un puntero de retroceso o backpointer que indicael itemset en el cual se inicioacute el reconocimiento de la produccioacuten A 1048764 α β

El elemento j representa el iacutendice de terminacioacuten que indica que el iacutetemconsiderado pertenece al itemset es decir a la entrada de la tabla dinaacutemica especificada por el valor correspondiente

Los estados siempre verifican la siguiente propiedad

rArr α ai+1hellipaj y j i le le 0

Los estados recogidos en la tabla dinaacutemica se organizan en dos categoriacuteasestados activos y estados inactivos

bull Los estados inactivos se corresponden con reglas que se han aplicado hastael final generando una subestructura completa por lo tanto el elemento restosituado a la derecha del punto (bull) se encuentra vaciacuteo Los estados inactivos seconocen tambieacuten con el nombre de hipoacutetesis pasivas

bull Los estados activos se corresponden con reglas que se han aplicado soacutelo demanera parcial Aquel fragmento de la regla no aplicado es decir el resto serepresenta precedido por un punto (bull) Los estados activos se conocen tambieacutencon el nombre de hipoacutetesis activas

El proceso de anaacutelisis sintaacutectico comienza con la creacioacuten del elemento

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 3: Algoritmo de Earley

soluciones a dichos subproblemas individuales se combinan de forma adecuada paragenerar la solucioacuten al problema propuesto inicialmente

Algoritmo de Earley

El Algoritmo de Earley desarrollado en el antildeo 1970 como resultado de la TesisDoctoral elaborada por su autor Jay Clark Earley en la Universidad de CarnegieMellon realiza un Anaacutelisis Sintaacutectico Descendente que se caracteriza porque todos losanaacutelisis parciales efectuados se almacenan en una tabla con el fin de no repetir elproceso de estudio de dichos elementos constituyentes en fases posteriores de laderivacioacuten Una solucioacuten parcial previamente analizada se puede localizar raacutepidamenteen una tabla construida dinaacutemicamente lo cual permite la reutilizacioacuten evitando lareconstruccioacuten de las diferentes soluciones parciales en el momento en que eacutestas senecesitan de nuevo Esto permite reducir el tiempo de ejecucioacuten del algoritmoincrementando considerablemente su velocidad y eficiencia

El Algoritmo de Earley reduce la complejidad exponencial del proceso deanaacutelisis a una complejidad polinomial dependiente de la longitud de la cadena deentrada Para una longitud de oracioacuten igual a n su complejidad en el peor de los casoses cuacutebica O(n3) si bien en numerosas circunstancias es lineal O(n) La reduccioacuten de lacomplejidad exponencial caracteriacutestica de los algoritmos basados en backtracking seobtiene eliminando la repeticioacuten de los caacutelculos mediante la utilizacioacuten de la tabladinaacutemica dedicada al almacenamiento de las estructuras parciales

Un analizador sintaacutectico Earley construye para una gramaacutetica G y una cadena de entrada constituida por n palabras representada por a1 hellip an una secuencia de n+1conjuntos de elementos denominados itemsets los cuales se almacenan como entradasen una tabla dinaacutemica que recibe el nombre de chart Este array se completa deizquierda a derecha avanzaacutendose en el mismo a medida que se obtienen nuevoscomponentes de la frase de entrada En cada una de las entradas de la tabla se registra

una lista de estados los cuales representan las subestructuras derivadas hasta elmomento actual del proceso de anaacutelisis es decir los aacuterboles de anaacutelisis parcial que esposible construir hasta la correspondiente posicioacuten de la frase de entrada En elmomento en que se produce la finalizacioacuten de la frase de entrada es decir el proceso dederivacioacuten el chart codifica de manera compacta todos los posibles anaacutelisis efectuadossobre la misma asiacute como los diferentes subaacuterboles parciales generados

La informacioacuten almacenada en cada uno de los estados recogidos en lasdiferentes entradas del chart constituye una hipoacutetesis sobre una determinada subcadenaparticular existente en la cadena de entrada al proceso de anaacutelisis sintaacutectico Estahipoacutetesis presenta la forma de una regla o produccioacuten de la gramaacutetica incluyendo ademaacutes una anotacioacuten que especifica el fragmento de dicha hipoacutetesis que se encuentraconfirmado hasta el momento La estructura de estos estados registrados en la tabladinaacutemica se puede considerar por tanto como un par de la forma lsaquoRegla GramaticalPosicioacutenrsaquo

bull El elemento Regla Gramatical estaacute constituido a su vez por un parconstituido por los elementos lsaquoLIG LDGrsaquo los cuales representan un siacutembolo noterminal de la gramaacutetica (LIG) y una secuencia de siacutembolos terminales y noterminales (LDG) Generalmente el par lsaquoLIG LDGrsaquo se escribe de la formaLIG1048764LDG La secuencia de categoriacuteas recogidas en el elemento LDG seencuentra dividida en dos fragmentos por medio de un punto (bull) Los elementossituados a la derecha de este siacutembolo representan la secuencia de siacutembolos quetodaviacutea debe ser verificada en dicho estado la cual se conoce con el nombre de resto

La utilizacioacuten de esta categoriacutea de reglas permite representar elreconocimiento parcial de producciones mediante la utilizacioacuten de reglas con

punto a diferencia de lo que ocurre en otros algoritmos como por ejemploCYK en los cuales uacutenicamente estaacute permitido representar reglas de produccioacutencompletas y ademaacutes resulta necesario generar elementos a partir de otroselementos mediante la aplicacioacuten de un solo paso deductivo predictivo

bull El elemento Posicioacuten tambieacuten representa un par de la forma lsaquoInicio Finrsaquo enel cual se registra la posicioacuten inicial y final correspondiente al fragmento en quese encuentra cubierto dicho estado en relacioacuten con los elementos constituyentesde la cadena de entrada

El significado asociado a un estado es el siguiente la subcadena de la oracioacuten deentrada que se encuentra abarcada por el par Posicioacuten podriacutea considerarse comoequivalente a la produccioacuten LIG en el caso de que la secuencia de siacutembolos situada acontinuacioacuten del punto (el resto) se localizara a la derecha de la misma

La notacioacuten utilizada en el Algoritmo de Earley para la representacioacuten de cadauno de los diferentes estados individuales recogidos en el chart consiste en una tupla dela forma [A 1048764 α bull β i j] donde

bull El elemento A 1048764 α bull β representa la regla de produccioacuten de la gramaacuteticaaplicada para realizar la derivacioacuten de la subestructura

Estas reglas de produccioacuten se conocen con el nombre de dotted rules reglasen las que aparece un punto (bull) en la parte derecha indicando el fragmentoreconocido hasta un determinado momento La notacioacuten utilizada indica que laparte α de la regla de produccioacuten A 1048764 α β Є P ya ha sido reconocida durante elproceso de anaacutelisis

Este componente del estado proporciona informacioacuten relativa al subaacuterbol

asociado a una determinada regla de la gramaacutetica asiacute como informacioacuten sobre elprogreso realizado en la construccioacuten del mismo

bull Los elementos i j representan la posicioacuten de inicio y la posicioacuten de fin de lasubestructura

Estos iacutendices expresan en queacute entradas de la tabla dinaacutemica o posiciones dela frase de entrada comienza y termina el fragmento del subaacuterbol construidohasta el momento

El elemento i representa un puntero de retroceso o backpointer que indicael itemset en el cual se inicioacute el reconocimiento de la produccioacuten A 1048764 α β

El elemento j representa el iacutendice de terminacioacuten que indica que el iacutetemconsiderado pertenece al itemset es decir a la entrada de la tabla dinaacutemica especificada por el valor correspondiente

Los estados siempre verifican la siguiente propiedad

rArr α ai+1hellipaj y j i le le 0

Los estados recogidos en la tabla dinaacutemica se organizan en dos categoriacuteasestados activos y estados inactivos

bull Los estados inactivos se corresponden con reglas que se han aplicado hastael final generando una subestructura completa por lo tanto el elemento restosituado a la derecha del punto (bull) se encuentra vaciacuteo Los estados inactivos seconocen tambieacuten con el nombre de hipoacutetesis pasivas

bull Los estados activos se corresponden con reglas que se han aplicado soacutelo demanera parcial Aquel fragmento de la regla no aplicado es decir el resto serepresenta precedido por un punto (bull) Los estados activos se conocen tambieacutencon el nombre de hipoacutetesis activas

El proceso de anaacutelisis sintaacutectico comienza con la creacioacuten del elemento

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 4: Algoritmo de Earley

Algoritmo de Earley

El Algoritmo de Earley desarrollado en el antildeo 1970 como resultado de la TesisDoctoral elaborada por su autor Jay Clark Earley en la Universidad de CarnegieMellon realiza un Anaacutelisis Sintaacutectico Descendente que se caracteriza porque todos losanaacutelisis parciales efectuados se almacenan en una tabla con el fin de no repetir elproceso de estudio de dichos elementos constituyentes en fases posteriores de laderivacioacuten Una solucioacuten parcial previamente analizada se puede localizar raacutepidamenteen una tabla construida dinaacutemicamente lo cual permite la reutilizacioacuten evitando lareconstruccioacuten de las diferentes soluciones parciales en el momento en que eacutestas senecesitan de nuevo Esto permite reducir el tiempo de ejecucioacuten del algoritmoincrementando considerablemente su velocidad y eficiencia

El Algoritmo de Earley reduce la complejidad exponencial del proceso deanaacutelisis a una complejidad polinomial dependiente de la longitud de la cadena deentrada Para una longitud de oracioacuten igual a n su complejidad en el peor de los casoses cuacutebica O(n3) si bien en numerosas circunstancias es lineal O(n) La reduccioacuten de lacomplejidad exponencial caracteriacutestica de los algoritmos basados en backtracking seobtiene eliminando la repeticioacuten de los caacutelculos mediante la utilizacioacuten de la tabladinaacutemica dedicada al almacenamiento de las estructuras parciales

Un analizador sintaacutectico Earley construye para una gramaacutetica G y una cadena de entrada constituida por n palabras representada por a1 hellip an una secuencia de n+1conjuntos de elementos denominados itemsets los cuales se almacenan como entradasen una tabla dinaacutemica que recibe el nombre de chart Este array se completa deizquierda a derecha avanzaacutendose en el mismo a medida que se obtienen nuevoscomponentes de la frase de entrada En cada una de las entradas de la tabla se registra

una lista de estados los cuales representan las subestructuras derivadas hasta elmomento actual del proceso de anaacutelisis es decir los aacuterboles de anaacutelisis parcial que esposible construir hasta la correspondiente posicioacuten de la frase de entrada En elmomento en que se produce la finalizacioacuten de la frase de entrada es decir el proceso dederivacioacuten el chart codifica de manera compacta todos los posibles anaacutelisis efectuadossobre la misma asiacute como los diferentes subaacuterboles parciales generados

La informacioacuten almacenada en cada uno de los estados recogidos en lasdiferentes entradas del chart constituye una hipoacutetesis sobre una determinada subcadenaparticular existente en la cadena de entrada al proceso de anaacutelisis sintaacutectico Estahipoacutetesis presenta la forma de una regla o produccioacuten de la gramaacutetica incluyendo ademaacutes una anotacioacuten que especifica el fragmento de dicha hipoacutetesis que se encuentraconfirmado hasta el momento La estructura de estos estados registrados en la tabladinaacutemica se puede considerar por tanto como un par de la forma lsaquoRegla GramaticalPosicioacutenrsaquo

bull El elemento Regla Gramatical estaacute constituido a su vez por un parconstituido por los elementos lsaquoLIG LDGrsaquo los cuales representan un siacutembolo noterminal de la gramaacutetica (LIG) y una secuencia de siacutembolos terminales y noterminales (LDG) Generalmente el par lsaquoLIG LDGrsaquo se escribe de la formaLIG1048764LDG La secuencia de categoriacuteas recogidas en el elemento LDG seencuentra dividida en dos fragmentos por medio de un punto (bull) Los elementossituados a la derecha de este siacutembolo representan la secuencia de siacutembolos quetodaviacutea debe ser verificada en dicho estado la cual se conoce con el nombre de resto

La utilizacioacuten de esta categoriacutea de reglas permite representar elreconocimiento parcial de producciones mediante la utilizacioacuten de reglas con

punto a diferencia de lo que ocurre en otros algoritmos como por ejemploCYK en los cuales uacutenicamente estaacute permitido representar reglas de produccioacutencompletas y ademaacutes resulta necesario generar elementos a partir de otroselementos mediante la aplicacioacuten de un solo paso deductivo predictivo

bull El elemento Posicioacuten tambieacuten representa un par de la forma lsaquoInicio Finrsaquo enel cual se registra la posicioacuten inicial y final correspondiente al fragmento en quese encuentra cubierto dicho estado en relacioacuten con los elementos constituyentesde la cadena de entrada

El significado asociado a un estado es el siguiente la subcadena de la oracioacuten deentrada que se encuentra abarcada por el par Posicioacuten podriacutea considerarse comoequivalente a la produccioacuten LIG en el caso de que la secuencia de siacutembolos situada acontinuacioacuten del punto (el resto) se localizara a la derecha de la misma

La notacioacuten utilizada en el Algoritmo de Earley para la representacioacuten de cadauno de los diferentes estados individuales recogidos en el chart consiste en una tupla dela forma [A 1048764 α bull β i j] donde

bull El elemento A 1048764 α bull β representa la regla de produccioacuten de la gramaacuteticaaplicada para realizar la derivacioacuten de la subestructura

Estas reglas de produccioacuten se conocen con el nombre de dotted rules reglasen las que aparece un punto (bull) en la parte derecha indicando el fragmentoreconocido hasta un determinado momento La notacioacuten utilizada indica que laparte α de la regla de produccioacuten A 1048764 α β Є P ya ha sido reconocida durante elproceso de anaacutelisis

Este componente del estado proporciona informacioacuten relativa al subaacuterbol

asociado a una determinada regla de la gramaacutetica asiacute como informacioacuten sobre elprogreso realizado en la construccioacuten del mismo

bull Los elementos i j representan la posicioacuten de inicio y la posicioacuten de fin de lasubestructura

Estos iacutendices expresan en queacute entradas de la tabla dinaacutemica o posiciones dela frase de entrada comienza y termina el fragmento del subaacuterbol construidohasta el momento

El elemento i representa un puntero de retroceso o backpointer que indicael itemset en el cual se inicioacute el reconocimiento de la produccioacuten A 1048764 α β

El elemento j representa el iacutendice de terminacioacuten que indica que el iacutetemconsiderado pertenece al itemset es decir a la entrada de la tabla dinaacutemica especificada por el valor correspondiente

Los estados siempre verifican la siguiente propiedad

rArr α ai+1hellipaj y j i le le 0

Los estados recogidos en la tabla dinaacutemica se organizan en dos categoriacuteasestados activos y estados inactivos

bull Los estados inactivos se corresponden con reglas que se han aplicado hastael final generando una subestructura completa por lo tanto el elemento restosituado a la derecha del punto (bull) se encuentra vaciacuteo Los estados inactivos seconocen tambieacuten con el nombre de hipoacutetesis pasivas

bull Los estados activos se corresponden con reglas que se han aplicado soacutelo demanera parcial Aquel fragmento de la regla no aplicado es decir el resto serepresenta precedido por un punto (bull) Los estados activos se conocen tambieacutencon el nombre de hipoacutetesis activas

El proceso de anaacutelisis sintaacutectico comienza con la creacioacuten del elemento

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 5: Algoritmo de Earley

una lista de estados los cuales representan las subestructuras derivadas hasta elmomento actual del proceso de anaacutelisis es decir los aacuterboles de anaacutelisis parcial que esposible construir hasta la correspondiente posicioacuten de la frase de entrada En elmomento en que se produce la finalizacioacuten de la frase de entrada es decir el proceso dederivacioacuten el chart codifica de manera compacta todos los posibles anaacutelisis efectuadossobre la misma asiacute como los diferentes subaacuterboles parciales generados

La informacioacuten almacenada en cada uno de los estados recogidos en lasdiferentes entradas del chart constituye una hipoacutetesis sobre una determinada subcadenaparticular existente en la cadena de entrada al proceso de anaacutelisis sintaacutectico Estahipoacutetesis presenta la forma de una regla o produccioacuten de la gramaacutetica incluyendo ademaacutes una anotacioacuten que especifica el fragmento de dicha hipoacutetesis que se encuentraconfirmado hasta el momento La estructura de estos estados registrados en la tabladinaacutemica se puede considerar por tanto como un par de la forma lsaquoRegla GramaticalPosicioacutenrsaquo

bull El elemento Regla Gramatical estaacute constituido a su vez por un parconstituido por los elementos lsaquoLIG LDGrsaquo los cuales representan un siacutembolo noterminal de la gramaacutetica (LIG) y una secuencia de siacutembolos terminales y noterminales (LDG) Generalmente el par lsaquoLIG LDGrsaquo se escribe de la formaLIG1048764LDG La secuencia de categoriacuteas recogidas en el elemento LDG seencuentra dividida en dos fragmentos por medio de un punto (bull) Los elementossituados a la derecha de este siacutembolo representan la secuencia de siacutembolos quetodaviacutea debe ser verificada en dicho estado la cual se conoce con el nombre de resto

La utilizacioacuten de esta categoriacutea de reglas permite representar elreconocimiento parcial de producciones mediante la utilizacioacuten de reglas con

punto a diferencia de lo que ocurre en otros algoritmos como por ejemploCYK en los cuales uacutenicamente estaacute permitido representar reglas de produccioacutencompletas y ademaacutes resulta necesario generar elementos a partir de otroselementos mediante la aplicacioacuten de un solo paso deductivo predictivo

bull El elemento Posicioacuten tambieacuten representa un par de la forma lsaquoInicio Finrsaquo enel cual se registra la posicioacuten inicial y final correspondiente al fragmento en quese encuentra cubierto dicho estado en relacioacuten con los elementos constituyentesde la cadena de entrada

El significado asociado a un estado es el siguiente la subcadena de la oracioacuten deentrada que se encuentra abarcada por el par Posicioacuten podriacutea considerarse comoequivalente a la produccioacuten LIG en el caso de que la secuencia de siacutembolos situada acontinuacioacuten del punto (el resto) se localizara a la derecha de la misma

La notacioacuten utilizada en el Algoritmo de Earley para la representacioacuten de cadauno de los diferentes estados individuales recogidos en el chart consiste en una tupla dela forma [A 1048764 α bull β i j] donde

bull El elemento A 1048764 α bull β representa la regla de produccioacuten de la gramaacuteticaaplicada para realizar la derivacioacuten de la subestructura

Estas reglas de produccioacuten se conocen con el nombre de dotted rules reglasen las que aparece un punto (bull) en la parte derecha indicando el fragmentoreconocido hasta un determinado momento La notacioacuten utilizada indica que laparte α de la regla de produccioacuten A 1048764 α β Є P ya ha sido reconocida durante elproceso de anaacutelisis

Este componente del estado proporciona informacioacuten relativa al subaacuterbol

asociado a una determinada regla de la gramaacutetica asiacute como informacioacuten sobre elprogreso realizado en la construccioacuten del mismo

bull Los elementos i j representan la posicioacuten de inicio y la posicioacuten de fin de lasubestructura

Estos iacutendices expresan en queacute entradas de la tabla dinaacutemica o posiciones dela frase de entrada comienza y termina el fragmento del subaacuterbol construidohasta el momento

El elemento i representa un puntero de retroceso o backpointer que indicael itemset en el cual se inicioacute el reconocimiento de la produccioacuten A 1048764 α β

El elemento j representa el iacutendice de terminacioacuten que indica que el iacutetemconsiderado pertenece al itemset es decir a la entrada de la tabla dinaacutemica especificada por el valor correspondiente

Los estados siempre verifican la siguiente propiedad

rArr α ai+1hellipaj y j i le le 0

Los estados recogidos en la tabla dinaacutemica se organizan en dos categoriacuteasestados activos y estados inactivos

bull Los estados inactivos se corresponden con reglas que se han aplicado hastael final generando una subestructura completa por lo tanto el elemento restosituado a la derecha del punto (bull) se encuentra vaciacuteo Los estados inactivos seconocen tambieacuten con el nombre de hipoacutetesis pasivas

bull Los estados activos se corresponden con reglas que se han aplicado soacutelo demanera parcial Aquel fragmento de la regla no aplicado es decir el resto serepresenta precedido por un punto (bull) Los estados activos se conocen tambieacutencon el nombre de hipoacutetesis activas

El proceso de anaacutelisis sintaacutectico comienza con la creacioacuten del elemento

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 6: Algoritmo de Earley

punto a diferencia de lo que ocurre en otros algoritmos como por ejemploCYK en los cuales uacutenicamente estaacute permitido representar reglas de produccioacutencompletas y ademaacutes resulta necesario generar elementos a partir de otroselementos mediante la aplicacioacuten de un solo paso deductivo predictivo

bull El elemento Posicioacuten tambieacuten representa un par de la forma lsaquoInicio Finrsaquo enel cual se registra la posicioacuten inicial y final correspondiente al fragmento en quese encuentra cubierto dicho estado en relacioacuten con los elementos constituyentesde la cadena de entrada

El significado asociado a un estado es el siguiente la subcadena de la oracioacuten deentrada que se encuentra abarcada por el par Posicioacuten podriacutea considerarse comoequivalente a la produccioacuten LIG en el caso de que la secuencia de siacutembolos situada acontinuacioacuten del punto (el resto) se localizara a la derecha de la misma

La notacioacuten utilizada en el Algoritmo de Earley para la representacioacuten de cadauno de los diferentes estados individuales recogidos en el chart consiste en una tupla dela forma [A 1048764 α bull β i j] donde

bull El elemento A 1048764 α bull β representa la regla de produccioacuten de la gramaacuteticaaplicada para realizar la derivacioacuten de la subestructura

Estas reglas de produccioacuten se conocen con el nombre de dotted rules reglasen las que aparece un punto (bull) en la parte derecha indicando el fragmentoreconocido hasta un determinado momento La notacioacuten utilizada indica que laparte α de la regla de produccioacuten A 1048764 α β Є P ya ha sido reconocida durante elproceso de anaacutelisis

Este componente del estado proporciona informacioacuten relativa al subaacuterbol

asociado a una determinada regla de la gramaacutetica asiacute como informacioacuten sobre elprogreso realizado en la construccioacuten del mismo

bull Los elementos i j representan la posicioacuten de inicio y la posicioacuten de fin de lasubestructura

Estos iacutendices expresan en queacute entradas de la tabla dinaacutemica o posiciones dela frase de entrada comienza y termina el fragmento del subaacuterbol construidohasta el momento

El elemento i representa un puntero de retroceso o backpointer que indicael itemset en el cual se inicioacute el reconocimiento de la produccioacuten A 1048764 α β

El elemento j representa el iacutendice de terminacioacuten que indica que el iacutetemconsiderado pertenece al itemset es decir a la entrada de la tabla dinaacutemica especificada por el valor correspondiente

Los estados siempre verifican la siguiente propiedad

rArr α ai+1hellipaj y j i le le 0

Los estados recogidos en la tabla dinaacutemica se organizan en dos categoriacuteasestados activos y estados inactivos

bull Los estados inactivos se corresponden con reglas que se han aplicado hastael final generando una subestructura completa por lo tanto el elemento restosituado a la derecha del punto (bull) se encuentra vaciacuteo Los estados inactivos seconocen tambieacuten con el nombre de hipoacutetesis pasivas

bull Los estados activos se corresponden con reglas que se han aplicado soacutelo demanera parcial Aquel fragmento de la regla no aplicado es decir el resto serepresenta precedido por un punto (bull) Los estados activos se conocen tambieacutencon el nombre de hipoacutetesis activas

El proceso de anaacutelisis sintaacutectico comienza con la creacioacuten del elemento

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 7: Algoritmo de Earley

asociado a una determinada regla de la gramaacutetica asiacute como informacioacuten sobre elprogreso realizado en la construccioacuten del mismo

bull Los elementos i j representan la posicioacuten de inicio y la posicioacuten de fin de lasubestructura

Estos iacutendices expresan en queacute entradas de la tabla dinaacutemica o posiciones dela frase de entrada comienza y termina el fragmento del subaacuterbol construidohasta el momento

El elemento i representa un puntero de retroceso o backpointer que indicael itemset en el cual se inicioacute el reconocimiento de la produccioacuten A 1048764 α β

El elemento j representa el iacutendice de terminacioacuten que indica que el iacutetemconsiderado pertenece al itemset es decir a la entrada de la tabla dinaacutemica especificada por el valor correspondiente

Los estados siempre verifican la siguiente propiedad

rArr α ai+1hellipaj y j i le le 0

Los estados recogidos en la tabla dinaacutemica se organizan en dos categoriacuteasestados activos y estados inactivos

bull Los estados inactivos se corresponden con reglas que se han aplicado hastael final generando una subestructura completa por lo tanto el elemento restosituado a la derecha del punto (bull) se encuentra vaciacuteo Los estados inactivos seconocen tambieacuten con el nombre de hipoacutetesis pasivas

bull Los estados activos se corresponden con reglas que se han aplicado soacutelo demanera parcial Aquel fragmento de la regla no aplicado es decir el resto serepresenta precedido por un punto (bull) Los estados activos se conocen tambieacutencon el nombre de hipoacutetesis activas

El proceso de anaacutelisis sintaacutectico comienza con la creacioacuten del elemento

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 8: Algoritmo de Earley

[S 1048764 bull α 0 0] perteneciente al itemset 0 donde S 1048764 α Є P representa una regla deproduccioacuten perteneciente a la gramaacutetica Este estado se conoce con el nombre desemilla A partir de este momento el Algoritmo de Earley realiza baacutesicamente lassiguientes operaciones sobre el chart

bull Recorrido de izquierda a derecha de los n+1 estados del chartbull Procesamiento en orden de los diferentes estados correspondientes a cadaentrada

El procesamiento de los estados registrados en el chart conlleva la agregacioacuten denuevos estados al final de la tabla dinaacutemica construida El procesamiento a realizarsobre los diferentes estados consiste en la aplicacioacuten de alguno de los tres operadoresdefinidos en el algoritmo los cuales se denominan Predecir (Predictor) Explorar(Scanner) y Completar (Completer) Estos operadores se encargan de incorporar nuevosestados a la entrada actual del chart o bien a la entrada siguiente su aplicacioacuten serealiza de manera sucesiva hasta que ya no resulte posible generar maacutes iacutetems

Las condiciones para la seleccioacuten de estos operadores son mutuamenteexcluyentes y por lo tanto a un determinado estado solamente es posible aplicarle unade estas acciones La funcioacuten correspondiente a cada estado consiste en crear nuevashipoacutetesis a partir de la operacioacuten aplicada El resultado de la aplicacioacuten de unadeterminada operacioacuten puede derivar en la generacioacuten de una o maacutes hipoacutetesis nuevasagregadas al final de la lista de estados con la condicioacuten de que la hipoacutetesis no exista yaen la tabla a fin de evitar la repeticioacuten de caacutelculos En caso de que alguno de los estadosno sea agregado a la lista durante el proceso de derivacioacuten como consecuencia de suexistencia previa se dice que la derivacioacuten ha sido bloqueada

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 9: Algoritmo de Earley

Los criterios utilizados para seleccionar la aplicacioacuten de un determinadooperador son los siguientes

bull Si en la regla de produccioacuten asociada al estado no existe ninguacuten siacutembolo a laderecha del punto (bull) se aplica el operador Completar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es terminal se aplica el operador Explorar

bull Si en la regla de produccioacuten asociada al estado existe un siacutembolo despueacutes delpunto (bull) y eacuteste es no terminal se aplica el operador Predecir

Durante la aplicacioacuten del algoritmo es necesario tener en cuenta que en ninguacutenmomento debe realizarse un retroceso a una entrada anterior del chart de la mismamanera que en ninguacuten caso se efectuacutea la eliminacioacuten de los estados previamenteinsertados

La finalizacioacuten del proceso de anaacutelisis descrito para el Algoritmo de Earley seproduce en el momento en que no existan en la tabla dinaacutemica maacutes estados a los queresulte posible aplicar alguacuten operador En este momento se efectuacutea la revisioacuten de dichalista de estados para intentar localizar en la misma aquellos elementos que representenanaacutelisis completos de la cadena de entrada

Un estado recogido en la lista de estados representa un estado de anaacutelisiscompleto de la cadena de entrada si verifica las siguientes condiciones

bull El lado izquierdo de la regla de produccioacuten asociada al estado se correspondecon el siacutembolo inicial de la gramaacutetica

bull El punto (bull) se encuentra situado al final del lado derecho de la regla deproduccioacuten asociada al estado

bull Los dos elementos de posicioacuten presentes en el estado son 0 y n donde nrepresenta la longitud de la cadena de entrada

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 10: Algoritmo de Earley

Es decir este estado presentaraacute la forma general [S 1048764 α bull 0 n] y se encontraraacutesituado en la uacuteltima entrada del chart Su presencia indica que la cadena de entradapertenece al lenguaje generado por la gramaacutetica considerada

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 11: Algoritmo de Earley

La expresioacuten en pseudocoacutedigo del Algoritmo de Earley se proporciona acontinuacioacuten

para cada entrada x Є chart

para cada estado Є chart[x]

si estado es INACTIVO entonces

COMPLETAR (estado)

fin_si

si estado es ACTIVO entonces

cat Categoriacutea despueacutes de bull

si cat es LEacuteXICA entonces

EXPLORAR (estado)

fin_si

si cat no es LEacuteXICA entonces

PREDECIR (estado)

fin_si

fin_si

fin_para

fin_para

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 12: Algoritmo de Earley

21 Definicioacuten de los operadores

Los tres operadores funcionales definidos en el Algoritmo de Earleydenominados Predecir Explorar y Completar se explican detalladamente acontinuacioacuten

bull Funcioacuten Predecir

La funcioacuten Predecir representa la fase descendente predictiva del algoritmoSu objetivo consiste en la generacioacuten de hipoacutetesis a partir de una determinadaprediccioacuten realizada anteriormente mediante la buacutesqueda de reglas deproduccioacuten definidas en la gramaacutetica en las cuales el siacutembolo no terminalsituado en la parte izquierda coincida con el siacutembolo no terminal situadodespueacutes del punto en el estado Para cada una de las reglas localizadas deacuerdo a este criterio se inserta un nuevo estado en la tabla dinaacutemica

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten resulta aplicable a un determinado estado cuando existe unsiacutembolo no terminal inmediatamente a la derecha del punto (bull) La aplicacioacuten deeste operador provoca la incorporacioacuten de un nuevo estado a la entrada actualpor cada una de las reglas de produccioacuten de la gramaacutetica en las que aparezcacomo parte izquierda dicho siacutembolo no terminal

Para un estado [A α bull Bβ i j] y para cada regla B γ Є P se construyeun nuevo estado [Bi bull γ j j] con las siguientes caracteriacutesticas

1048764 La regla de produccioacuten tiene como parte izquierda el siacutembolo no terminalB que se estaacute considerando

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 13: Algoritmo de Earley

1048764 El punto (bull) aparece al comienzo de la parte derecha de la produccioacuten

1048764 El puntero de retroceso es decir el primer iacutendice del estado apuntaraacute a laentrada actual del chart que seraacute ademaacutes aquella a la que se incorpore elnuevo estado con lo que el segundo iacutendice del estado presentaraacute el mismovalor que el primero

La aplicacioacuten de esta funcioacuten equivale a predecir todas las producciones quepotencialmente pueden resultar uacutetiles en el reconocimiento de la cadena deentrada Es decir los nuevos estados incorporados a la entrada actual del chartcomo consecuencia de la aplicacioacuten de esta regla representan predicciones defuturos pasos de anaacutelisis

bull Funcioacuten Explorar

La funcioacuten Explorar se encarga de realizar la creacioacuten de nuevos estados querepresentan el anaacutelisis posterior al reconocimiento del siacutembolo de entrada actual

Es decir el operador efectuacutea una comparacioacuten de un determinado siacutemboloterminal con la siguiente palabra recogida en la cadena de entrada Si amboselementos son iguales se construye un nuevo estado desplazando el punto a laderecha e incrementando el valor del iacutendice j para representar el hecho de que lapalabra recogida de la entrada ha sido procesada con eacutexito

El funcionamiento de este operador puede representarse de la manerasiguiente

Esta funcioacuten se aplica sobre aquellos estados que presentan siacutembolos

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 14: Algoritmo de Earley

terminales (categoriacuteas leacutexicas) situados a la derecha del punto (bull) En particularse considera la categoriacutea leacutexica correspondiente a la palabra de entrada actual esdecir el siguiente siacutembolo de la cadena de entrada se compara con el elementoterminal situado a la derecha del punto y para cada uno de los estados en los quese detecte coincidencia se inserta un nuevo estado en la siguiente entrada delchart con el punto (bull) desplazado un lugar a la derecha y el puntero deretroceso indicando la entrada actual De esta manera para un estado[A 1048764 α bull aβ i j] se obtiene [A 1048764 αa bull β i j+1] Por lo tanto se ha reconocidoel siacutembolo terminal situado en la posicioacuten exactamente a la derecha del punto(bull)

Este operador permite realizar un filtrado aunque no demasiado eficiente delas ambiguumledades leacutexicas puesto que solamente avanza en el reconocimiento dela frase de entrada si alguna de las posibles categoriacuteas leacutexicas de la palabra seencuentra inmediatamente a la derecha del punto en alguno de los estadosconsiderados

bull Funcioacuten Completar

La funcioacuten Completar permite crear nuevos estados que representan elproceso de anaacutelisis posterior al reconocimiento de un siacutembolo no terminal de lagramaacutetica Este operador se encarga de completar una prediccioacuten previa que hasido soportada totalmente por determinados anaacutelisis subsecuentes representadosen el estado actual Para ello se realiza una buacutesqueda en la lista de estados paraencontrar hipoacutetesis que se encuentren en espera de un elemento constituyenteque presente el mismo tipo que aquel que acaba de ser completado en laposicioacuten en que eacuteste fue encontrado

El funcionamiento de este operador puede representarse de la manera

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 15: Algoritmo de Earley

siguiente

Esta funcioacuten se aplica a aquellos estados en los cuales aparece un siacutembolo noterminal a la derecha del punto (bull) Se consideran todos aquellos estadospreviamente generados en los cuales dicho siacutembolo no terminal se encuentrasituado en la parte izquierda de la regla de produccioacuten y la parte derecha dedicha regla se encuentra reconocida por completo con lo que el punto (bull)aparece al final de la misma Para cada uno de ellos se inserta un nuevo estadoen la misma entrada del chart en el cual el punto (bull) se ha desplazado unaposicioacuten a la derecha lo que implica el reconocimiento del correspondientesiacutembolo no terminal De esta manera para una pareja de estados de la forma[A 1048764 α bull Bβ i k] y [B 1048764 γ bull k j] se genera un nuevo estado representado por[A 1048764 α B bull β i j]

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 16: Algoritmo de Earley

22 Representacioacuten graacutefica

El funcionamiento del Algoritmo de Earley puede representarse graacuteficamentepara facilitar su comprensioacuten Para ello se consideraraacute una gramaacutetica constituida pordos reglas de produccioacuten de la forma en que se indica a continuacioacutenP =

A α B γB abc

Se consideraraacute la existencia en la tabla dinaacutemica de un elemento de la forma[A 1048764 α bull B γ i k] generado como consecuencia de la aplicacioacuten de una serie de pasosdel algoritmo Este elemento indica que el componente α perteneciente a la regla deproduccioacuten ya ha sido reconocido en la cadena de entrada representando el contenidode la subcadena ai hellip ak-1 como puede observarse a partir del puntero de retroceso y deliacutendice correspondiente al itemset al cual pertenece el estado considerado Esta situacioacutense encuentra representada en la Figura 1 por la liacutenea fina de trazo continuo situada porencima del siacutembolo α abarcando las posiciones comprendidas entre i y k

A partir de este iacutetem seraacute necesario continuar el reconocimiento de la cadena deentrada para lo cual se utilizaraacuten las reglas de produccioacuten asociadas al siacutembolo noterminal B como se indica en la representacioacuten graacutefica mediante un arco de liacuteneadiscontinua En este caso existe uacutenicamente una liacutenea de produccioacuten asociada a B conlo cual se generaraacute automaacuteticamente el iacutetem [B 1048764 bull abc k k] La aplicacioacuten sucesivade tres operaciones de tipo Explorar orientadas al reconocimiento de los siacutembolosterminales a b y c generaraacute los siguientes elementos [B 1048764 a bull bc k k+1][B 1048764 ab bull c k k+2] y [B 1048764 abc bull k j] los cuales se corresponden con los tres arcosde liacutenea continua representados a la derecha de la imagen La combinacioacuten del uacuteltimo

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 17: Algoritmo de Earley

de los iacutetems generados con el elemento [A 1048764 α bull B γ i k] previamente existente mediante la aplicacioacuten de una operacioacuten Completar generaraacute el elemento[A 1048764 α B bull γ i j] presente en la representacioacuten graacutefica en forma de liacutenea continua detrazo grueso

La representacioacuten graacutefica correspondiente al Algoritmo de Earley se proporcionaa continuacioacuten Como puede observarse cada uno de los arcos dibujados en la Figura 1representa el fragmento de la cadena de entrada abarcado por un

determinado iacutetem

Figura 1 Representacioacuten graacutefica del Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 18: Algoritmo de Earley

23 Representacioacuten formal

El Algoritmo de Earley se puede especificar por medio de un esquema deanaacutelisis sintaacutectico estructura desarrollada por Klaas Sikkel para realizar descripcionesde alto nivel de algoritmos de anaacutelisis

Un sistema de anaacutelisis sintaacutectico para una determinada Gramaacutetica de ContextoLibre G y una cadena de entrada a0 hellip an-1 es una tripleta de la forma P=ltIHDgtcuyos elementos presentan para el Algoritmo de Earley los siguientes valores

bull I representa el conjunto de elementos que constituyen resultadosintermedios dentro del proceso de anaacutelisis

bullH representa el conjunto de elementos iniciales denominados hipoacutetesis loscuales constituyen la cadena que va a ser analizada No es necesario que severifique la propiedad HcI Lo habitual es que ambos conjuntos sean

disjuntos

bull representa un conjunto1 de reglas de inferenciadenominadas pasos deductivos mediante las cuales se realiza la derivacioacuten denuevos elementos a partir de los ya existentes Estos pasos deductivos presentanla forma ltn1n2hellipnkgt y su significado es el siguiente si todos losantecedentes de un paso deductivo ya existen entonces elconsecuente deberaacute ser generado por el analizador sintaacutectico

Los pasos deductivos se suponen cuantificados universalmente para todas lasposibles variables que aparezcan en los elementos a menos que se indiqueexpliacutecitamente lo contrario

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 19: Algoritmo de Earley

bull Un conjunto de elementos finales cuya presencia en el proceso deanaacutelisis indica el reconocimiento de la cadena de entrada

24 Caracteriacutesticas adicionales

El Algoritmo de Earley presenta numerosas ventajas que justifican su utilizacioacutenen el anaacutelisis sintaacutectico Las principales caracteriacutesticas que resulta conveniente destacarse enumeran a continuacioacuten

bull El Algoritmo de Earley presenta una eficiencia razonablemente buena

El Algoritmo de Earley se puede aplicar para el reconocimiento de oracionespor medio de una Gramaacutetica de Contexto Libre sin restricciones de formato oeliminacioacuten de la cadena vaciacutea En el caso de que la gramaacutetica utilizada resulteambigua el tiempo de reconocimiento seraacute proporcional al cubo de la longitudde la cadena de entrada si bien para ciertas gramaacuteticas resulta posible reducir eltiempo medio a una expresioacuten cuadraacutetica o incluso lineal

1Un conjunto es una coleccioacuten definida y distinguible de objetos de percepcioacuten o pensamiento concebidocomo un todo de acuerdo a la definicioacuten de George Cantor fundador de la teoriacutea de conjuntos Elsiacutembolo P significa powerset y representa un conjunto de elementos en el que no existen duplicados Elsiacutembolo Pfin introduce ademaacutes el requisito de que el conjunto sea finito

bull El Algoritmo de Earley proporciona una gran flexibilidad y facilidad para laincorporacioacuten nuevas caracteriacutesticas entre las que destacan las siguientes

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 20: Algoritmo de Earley

1048764 Modificacioacuten de la orientacioacuten del proceso de anaacutelisis sintaacutectico paradesarrollar un proceso ascendente o bidireccional

1048764 Posibilidad de incorporar soporte para probabilidades aplicadas a las reglasde produccioacuten

1048764 Definicioacuten de extensiones para la construccioacuten de representacionessemaacutenticas

bull El Algoritmo de Earley puede ser utilizado como punto de partida para eldesarrollo de nuevos procedimientos de anaacutelisis sintaacutectico En particular resultaposible la obtencioacuten de un analizador LR generalizado aplicable a Gramaacuteticas deContexto Libre sin restricciones

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 21: Algoritmo de Earley

25 Ejemplo de aplicacioacuten

En este apartado se proporcionaraacute un sencillo ejemplo mediante el cual seexplicaraacute de manera praacutectica el funcionamiento del Algoritmo de Earley para larealizacioacuten del proceso de anaacutelisis sintaacutectico sobre una determinada cadena de entrada

El conjunto de producciones de la gramaacutetica considerada es el siguiente

P =

S NP VP

NP DET N

NP PROP

VP V SN

VP V A

PROP Juan

V es

A alto

La aplicacioacuten del Algoritmo de Earley sobre la frase de entrada Juan es altocomenzariacutea con la inicializacioacuten del chart constituido por cuatro entradas es decir elnuacutemero de palabras de la frase a analizar incrementado en una unidad La entradachart[0] se inicializariacutea con el estado (Oslash 1048764 S 0 0) mediante la aplicacioacuten de unapseudoregla para la insercioacuten del siacutembolo raiacutez de la gramaacutetica representado por S

La evolucioacuten de la tabla dinaacutemica como consecuencia de la aplicacioacuten de losdiferentes operadores que resultan necesarios durante el proceso de anaacutelisis seproduciriacutea de la manera en que se expresa a continuacioacuten

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 22: Algoritmo de Earley

ENTRADA CONTENIDO FUNCIOacuteN APLICADA

Oslash S 0 0

0 S bull NP VP 0 0 Predecir

NP bull DET N 0 0 Predecir

NP bull PROP 0 0 Predecir

PROP Juan bull 0 1 Explorar

1 NP PROP bull 0 1 Completar

S NP bull VP 0 1 Completar

VP bull V SN 1 1 Predecir

VP bull V A 1 1 Predecir

V es bull 1 2 Explorar

2 VP V bull SN 1 2 Completar

VP V bull A 1 2 Completar----------------------------------------------------------------------------------------------------------

A alto bull 2 3 Explorar

3 VP V A bull 1 3 Completar

S NP VP bull 0 3 CompletarLa finalizacioacuten del proceso de anaacutelisis sintaacutectico se detecta por la aparicioacuten deun estado que abarca el primer iacutendice y el uacuteltimo iacutendice del chart en el ejemplorepresentados mediante los valores 0 y 3 respectivamente La aparicioacuten del siacutemboloinicial de la gramaacutetica S como categoriacutea permite concluir que el anaacutelisis ha producidouna derivacioacuten completa

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 23: Algoritmo de Earley

Conclusioacuten

El procedimiento descrito para el Algoritmo de Earley actuacutea simplemente comoreconocedor es decir permite comprobar que un determinado texto de entrada essintaacutecticamente correcto Sin embargo es posible introducir ciertas modificaciones paratransformarlo en un analizador capaz de explicitar las relaciones sintaacutecticas oestructuras que aparecen en el texto Para ello resulta necesario almacenar informacioacutenadicional en los estados recogidos en la tabla dinaacutemica a fin de mantener punteros a losestados anteriores durante el proceso de anaacutelisis

bull La realizacioacuten de una operacioacuten de tipo Explorar incorporariacutea elalmacenamiento en el nuevo estado de los punteros almacenados en aquellosestados antiguos sobre los cuales se aplicoacute la funcioacuten para la obtencioacuten delestado generado

bull La realizacioacuten de una operacioacuten de tipo Completar conllevariacutea elalmacenamiento en el nuevo estado de un puntero al estado final sobre el cual seaplicoacute la funcioacuten

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf

Page 24: Algoritmo de Earley

Bibliografiacutea

httpwwwtradujiesasignaturaobtenerphpletra=Hampcodigo=70ampfichero=1049101443H70

httpcciaeiuvigoesdocenciaLN

httpcolewebdcfiudcescolelibrarypsAlo2000apdf