Differenza tra grammatica regolare e grammatica libera dal contesto
Grammatica significa qualcosa di molto diverso per linguisti e programmatori di computer rispetto alla maggior parte delle persone. Mentre la maggior parte di noi pensa alla grammatica come a un insieme di regole di etichetta per l'uso del linguaggio socialmente accettabile, linguisti e programmatori pensano alla grammatica come a qualcosa di molto più potente: l'insieme di regole che possono generare tutte le possibili espressioni in un dato reale o artificiale lingua o frammento di una lingua. Le grammatiche regolari e libere dal contesto sono i due tipi logicamente possibili di grammatica e differiscono l'una dall'altra per i tipi di regole che consentono e per i tipi di espressioni che possono produrre.
Origini
Il linguista Noam Chomsky ha sviluppato le nozioni di grammatiche regolari e libere dal contesto nel suo lavoro del 1959 "Su certe proprietà formali delle grammatiche". Ha postulato l'esistenza di diversi tipi grammaticali di base, che differiscono l'uno dall'altro in termini di complessità delle espressioni linguistiche che possono produrre. Le grammatiche regolari sono più semplici e meno produttive delle grammatiche context-free.
Differenza tra le regole
Le grammatiche regolari e libere dal contesto differiscono per i tipi di regole che consentono. Le regole delle grammatiche context-free consentono possibili frasi come combinazioni di singole parole non correlate (che Chomsky chiama "terminali") e gruppi di parole (frasi, o ciò che Chomsky chiama "non terminali"). Le grammatiche senza contesto consentono singole parole e frasi in qualsiasi ordine e consentono frasi con qualsiasi numero di singole parole e frasi. Le grammatiche regolari, d'altra parte, consentono solo singole parole insieme a una singola frase per frase. Inoltre, le frasi nelle grammatiche regolari devono apparire nella stessa posizione in ogni frase o frase, generata dalla grammatica.
Strutture
Poiché le grammatiche context-free consentono una gamma più ampia di regole rispetto alle grammatiche regolari, possono generare una gamma più ampia di strutture rispetto alle grammatiche regolari. Ad esempio, possono coinvolgere varie possibili strutture di frasi, come "una ragazza di città con problemi di soldi" (qui, le strutture varieranno a seconda che "con problemi di soldi" descriva la città o la ragazza). Le grammatiche regolari non possono farlo. Piuttosto, possono generare solo semplici espressioni costituite da stringhe di singole parole strutturalmente indipendenti e possibilmente una singola frase più grande (come "persone molto, molto intelligenti").
Usi
Le grammatiche senza contesto vengono utilizzate nell'elaborazione del linguaggio naturale per generare e analizzare i dati del linguaggio perché possono catturare molte delle caratteristiche che definiscono il linguaggio umano, come il loro potenziale per strutture infinitamente ricorsive. Le grammatiche regolari, che generano solo un sottoinsieme delle espressioni delle grammatiche context-free, vengono utilizzate anche per l'elaborazione del linguaggio naturale. Tuttavia, possono solo replicare o elaborare espressioni linguistiche brevi e grammaticalmente semplici, come le brevi espressioni tipiche dei dialoghi informali.