2011-01-05 10 views
6

Sono riuscito a creare il riconoscimento Earley, tutto funziona correttamente. Ho tutti i corretti set di situazione. Ma posso solo usarlo per decidere se la parola è accettata dalla grammatica. Come farlo analizzare? Ho bisogno di qualche articolo o spiegazione, sembra che ho bisogno di creare associazioni a situazioni che hanno creato nuove situazioni. Qualsiasi aiuto sarebbe apprezzato.Earley recognizer per parser Earley

mia implementazione si basa esattamente su: http://www.cs.uvic.ca/~nigelh/Publications/PracticalEarleyParsing.pdf

+1

ci può dire su quale articolo si basa il sistema di riconoscimento, altrimenti è difficile sapere che cosa in più è necessario fare. –

+0

Ho aggiunto il link al pdf – dfens

+0

Si potrebbe voler guardare [Marpa] (https://metacpan.org/pod/Marpa::2). È un parser di Earlery open source che ha un back end C e un front end Perl. – hippietrail

risposta

1

Ogni volta che fate un'inferenza, tenere traccia di dove sei venuto, vale a dire. quali oggetti sono stati usati per formare il nuovo oggetto. Quindi la foresta di analisi può essere trovata esplorando l'elemento superiore che copre l'intero input. Se stai analizzando con grammatiche ambigue, dovresti anche considerare l'imballaggio di ambiguità, es. non ricombinare insieme (localmente) analisi equivalenti.

Consiglio vivamente l'eccellente libro di Klaas Sikkel "Parsing Schemata" per il lato teorico delle cose.

2

La generazione di una foresta di pepite dai riconoscimenti di Earley è complicata. C'è questo documento "Il riconoscimento non sta analizzando - l'analisi in stile SPPF dai riconoscitori cubici" che spiega che la versione parser di Earley non è corretta e quindi mostra come generare le foreste di analisi dai riconoscimenti Earley.

http://www.sciencedirect.com/science/article/pii/S0167642309000951