Metodo di forma normale Chomsky: implicazioni sulle prestazioni del parser CYK?


9

I parser di grafici possono essere implementati in base alla forma normale di Chomsky o direttamente in base alle regole di produzione. Supponiamo per il momento che abbiamo un parser grafico CYK che utilizza la forma normale di Chomsky. La binarizzazione non è definita in modo univoco. Questo influisce sulle prestazioni dell'analisi del grafico CYK. Questo può essere sfruttato per migliorare le prestazioni di un parser grafico CYK?


Gli approcci creano grammatiche della stessa dimensione, no? CYK riempie sempre la tabella completa, quindi puoi solo accelerare selezionando "Esiste una regola adatta?". Pertanto, mi aspetto che solo il conteggio delle regole abbia un'influenza, non una struttura grammaticale.
Raffaello,

Il metodo utilizzato per la binarizzazione influisce anche sulla dimensione della grammatica, che influenza le prestazioni del CYK: informatica-didactica.de/cmsmadesimple/… discute alcune alternative al CNF
Max

Risposte:


6

Mentre la risposta ovvia è che la complessità fondamentale non può cambiare, potrebbero esserci algoritmi migliori o peggiori per analizzare le stringhe che effettivamente incontrerai. Tuttavia, sembra che il problema sia meno la frequenza relativa delle singole produzioni grammaticali (le A, le B e le C nella domanda) e più un problema dei vicoli ciechi non utilizzati che analizza una binarizzazione rispetto a un'altra.

Con un po 'di ricerca ho trovato una migliore binarizzazione per il CKY Parsing (Song, Ding e Lin, EMNLP 2008), che sembra concludere definitivamente che puoi scegliere una binarizzazione "migliore" o "peggiore" rispetto alle stringhe che ti aspetti effettivamente dover analizzare. Il loro nome per "analisi dei vicoli ciechi" che si spera di minimizzare in pratica sembra essere componenti incompleti , e c'è un buon esempio nella prima pagina.


Considera la grammatica comprese le produzioni (S -> ABC) (T -> ABD). Se "BC" è sempre preceduto da "A", ma a volte "AB" non è seguito da "C", ci saranno meno vicoli ciechi se si combinano B e C e la frequenza relativa è irrilevante. Il tuo punto su "pochi" e "molti" ha senso se le parole appaiono casualmente, ma quello che penso che Song, Ding e Lin stiano facendo è sfruttare la frequenza di ngram, che è un po 'più sofisticata. Sottolineano anche che, nel mio esempio, potresti ancora vincere con la binarizzazione "AB" sfruttando la condivisione!
Rob Simmons,

4

In realtà, la forma normale di Chomsky (CNF) non è necessaria per eseguire CYK, ma solo la binarizzazione. La binarizzazione è essenziale per preservare la complessità cubica dell'analisi, sebbene essenziale solo rispetto ai non terminali (NT). Ma poi, se hai regole che includono solo 2 non terminali e alcuni terminali, l'algoritmo CYK diventa più complesso da programmare e spiegare.

Come dici tu, ci sono molti modi per fare la binarizzazione. Alcuni produrranno grammatiche più piccole rispetto ad altri. Per esempio

X -> B C D
Y -> B C E 

può essere binarizzato come

X -> Z D
Y -> Z E
Z -> B C

salvando così una regola per fattorizzazione, che può risparmiare sul calcolo e sulla dimensione del risultato.

Ma con altre regole, potresti voler fattorizzare la fine delle regole piuttosto che l'inizio.

Non ho familiarità con il lavoro di Song, Ding e Lin , citato dalla risposta di Rob Simmons . L'idea è interessante ma mi chiedo quanto possa essere efficace rispetto ad altri modi per ottimizzare il calcolo. Non temo molto.

Il punto è che analizzare i problemi solo rispetto ad un algoritmo CKY puro sembra un po 'un esercizio accademico ma costoso poiché esistono altri tipi di ottimizzazione che possono migliorare significativamente l'eliminazione degli analisi dei vicoli ciechi.

CYK è solo una delle variazioni più semplici in una famiglia di algoritmi che sono tutti costruiti sullo stesso modello di programmazione dinamica, a quanto pare. Sto dicendo apparentemente perché la versione più semplice di questi algoritmi non è conosciuta come programmazione dinamica, ma come prodotto incrociato. È la vecchia costruzione di una grammatica CF G che genera l'intersezione della lingua della grammatica CF F e la lingua regolare di una FSA A., dovuta a Bar Hillel, Perles e Shamir (1961) , come osservato da Lang nel 1995 .

Tutti i parser di grafici o generatori di CF generici basati sulla programmazione dinamica possono essere visti come una variante "ottimizzata" di quella costruzione tra prodotti, l'ottimizzazione viene utilizzata principalmente per evitare calcoli inutili del parser. Ma il problema è sottile in quanto evitare il calcolo inutile può comportare la duplicazione di quelli utili, il che potrebbe essere peggio.

Essendo bottom-up, l'algoritmo CKY produce calcoli inutili di analisi parziali che non possono derivare dall'assioma della grammatica.

Algoritmi come il parser GLR (per nominare uno dei più noti, sebbene sia stata pubblicata una versione difettosa), hanno alcune conoscenze top-down che eviteranno molti calcoli così inutili, possibilmente a costo. E ci sono molte altre varianti con comportamenti diversi rispetto al risparmio su calcoli inutili ..

È con queste strategie di ottimizzazione che si deve analizzare la strategia di binarizzazione. Qual è il punto di ottimizzare quello che potrebbe essere un problema minore e ignorare tecniche più potenti.

L'ottimizzazione del processo di analisi è anche strettamente legata alla "qualità" della struttura di analisi ottenuta, che rappresenta tutti i possibili analisi, ed è spesso chiamata foresta di analisi (condivisa). Ne discuto in un'altra risposta .

Alcuni di questi problemi sono discussi in letteratura. Ad esempio, Billot e Lang analizzano alcuni aspetti della binarizzazione rispetto alle strategie di analisi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.