¿Cuál es una explicación simple del algoritmo Earley?

Steve Engels tiene una explicación bastante buena aquí: Explicación de Steve de CKY y Earley Parsing

El algoritmo de análisis de Earley es similar en el sentido de que intenta usar reglas gramaticales para construir no terminales a partir de subcadenas. Sin embargo, en lugar de aplicar reglas gramaticales para subcadenas de longitud creciente, lee las palabras de una en una y aplica las reglas gramaticales permitidas por estas palabras de entrada. Para hacer esto, el analizador almacena una lista de reglas gramaticales parcialmente completadas. A medida que las palabras se toman desde la posición más a la izquierda, el analizador primero determina qué nuevas reglas gramaticales podrían comenzar con una palabra de ese tipo, y esas reglas se colocan en la lista. El analizador determina si una regla parcialmente completada que ya está en la lista necesita una palabra de ese tipo en esa posición para completarse aún más. Si es así, la regla se elimina y se reemplaza con la versión más completa de sí misma. Cuando una palabra completa por completo una regla, se saca, se reemplaza con el no terminal correspondiente a esa regla, y el proceso de finalización de la regla se repite, usando el no terminal para completar las reglas en lugar de la palabra. Cuando se completa, cualquier oración no terminal que abarque toda la cadena se trata como un análisis válido para la oración.

More Interesting

Si todo en Unix se ve como archivos (incluidos los directorios) y luego cuando decimos 'Los archivos se almacenan en directorios', ¿podemos decir 'Los archivos se almacenan en Archivos'?

Si una dirección RAM contiene 8 bits, ¿contiene códigos de operación y operandos en la misma dirección? Si una dirección de memoria es de 8 bits y tiene un tipo de datos de 32 bits, ¿cargará la CPU los 4 bytes automáticamente?

¿Qué documentos abordan Cloud Computing, NoSQL y Database as a Service desde una perspectiva científica?

Cómo inventar nuevos algoritmos

En teoría, ¿podría una máquina Turing de inteligencia sobrehumana no ser un desarrollo de un solo hombre? ¿Podría ser construido solo por varias personas juntas?

¿Qué idioma entiende la computadora?

¿Cómo es la informática en NITW? ¿Debería preferirlo a TI en NITK?

¿En qué se diferencian las caras propias de las caras de Fisher?

¿Cómo se puede resolver la enfermedad de la realidad virtual?

¿Qué tipo de sistema operativo se instalará en una computadora biológica usando orgánulos celulares para computación paralela?

¿El fragmentación no es tan popular o más difícil con las bases de datos relacionales / SQL?

¿Qué tan grande es un yottabyte, una unidad de medida como un gigabyte? ¿Hay suficientes datos en el mundo para almacenar en un yottabyte?

¿Qué puede hacer un graduado en informática para mejorar su currículum, ya que los proyectos realizados por la mayoría de los estudiantes son más o menos proyectos académicos con estándares comunes en diferentes universidades?

¿Cuáles son algunos de los temas más importantes de la visión por computadora que se están investigando actualmente en las principales empresas de tecnología como Google o Microsoft?

¿Los principales programadores utilizan principalmente editores de consola como Vim o Emacs?