Verschil tussen reguliere grammatica en contextvrije grammatica

Grammatica betekent voor taalkundigen en computerprogrammeurs iets heel anders dan voor de meeste mensen. Terwijl de meesten van ons grammatica beschouwen als een set etiquetteregels voor sociaal acceptabel taalgebruik, beschouwen taalkundigen en programmeurs grammatica als iets veel krachtigers: de set regels die alle mogelijke uitdrukkingen in een gegeven echte of kunstmatige taal of fragment van een taal. Reguliere en contextvrije grammatica's zijn de twee logisch mogelijke soorten grammatica en verschillen van elkaar in de soorten regels die ze toestaan ​​en de soorten uitdrukkingen die ze kunnen produceren.

Oorsprong

De linguïst Noam Chomsky ontwikkelde de noties van contextvrije en reguliere grammatica's in zijn werk "On Certain Formal Properties of Grammars" uit 1959. Hij poneerde het bestaan ​​van verschillende basisgrammaticatypen, die van elkaar verschillen in termen van de complexiteit van de linguïstische uitdrukkingen die ze kunnen produceren. Reguliere grammatica's zijn eenvoudiger en minder productief dan contextvrije grammatica's.

Verschil tussen regels

Reguliere en contextvrije grammatica's verschillen in de soorten regels die ze toestaan. De regels van contextvrije grammatica's staan ​​mogelijke zinnen toe als combinaties van niet-gerelateerde individuele woorden (die Chomsky 'terminals' noemt) en groepen woorden (zinnen, of wat Chomsky 'non-terminals' noemt). Contextvrije grammatica's laten individuele woorden en zinsdelen in elke volgorde toe en staan ​​zinnen toe met een willekeurig aantal afzonderlijke woorden en zinsdelen. Reguliere grammatica's laten daarentegen alleen individuele woorden toe, samen met een enkele zin per zin. Bovendien moeten zinnen in reguliere grammatica's op dezelfde positie voorkomen in elke door de grammatica gegenereerde zin of zin.

structuren

Omdat contextvrije grammatica's een breder scala aan regels toestaan ​​dan reguliere grammatica's, kunnen ze een breder scala aan structuren genereren dan reguliere grammatica's. Ze kunnen bijvoorbeeld verschillende mogelijke structuren van uitdrukkingen bevatten, zoals "een meisje uit de stad met geldproblemen" (hier zullen de structuren variëren afhankelijk van of "met geldproblemen" de stad of het meisje beschrijft). Reguliere grammatica's kunnen dit niet. In plaats daarvan kunnen ze alleen eenvoudige uitdrukkingen genereren die bestaan ​​uit reeksen van enkele, structureel onafhankelijke woorden en mogelijk een enkele grotere zin (zoals "zeer, zeer slimme mensen").

Toepassingen

Contextvrije grammatica's worden gebruikt in natuurlijke taalverwerking om taalgegevens te genereren en te ontleden, omdat ze veel van de bepalende kenmerken van menselijke taal kunnen vastleggen, zoals hun potentieel voor oneindig recursieve structuren. Reguliere grammatica's, die slechts een subset van de uitdrukkingen van contextvrije grammatica's genereren, worden ook gebruikt voor natuurlijke taalverwerking. Ze kunnen echter alleen korte en grammaticaal eenvoudige linguïstische uitdrukkingen repliceren of verwerken, zoals korte uitdrukkingen die typisch zijn voor informele dialoog.