Teoria delle categorie e parser - riferimenti ricercati


13

Dato che sono interessato ai parser (principalmente alle grammatiche delle espressioni dei parser), mi chiedo se ci sia del lavoro che offra un trattamento categorico dell'analisi. Ogni riferimento alle applicazioni della teoria delle categorie per l'analisi è molto apprezzato.

Migliore,

Risposte:


9

Una delle primissime applicazioni della teoria delle categorie a un argomento al di fuori della geometria algebrica è stata l'analisi! Le parole chiave che si desidera guidare la ricerca sono "calcolo di Lambek" e "grammatica categoriale".

In termini moderni, Joachim Lambek ha inventato la logica lineare non commutativa per modellare la struttura delle frasi. L'idea di base è che puoi dare parti base del discorso come aventi dei tipi, e quindi (dire) attribuire agli aggettivi inglesi un tipo di funzione prendendo frasi di nome in frasi di nome. (ad esempio, "verde" è visto come una funzione che porta i nomi ai nomi, il che significa che "uova verdi" è ben tipizzato, poiché "uova" è un sostantivo).

La linearità deriva dal fatto che un aggettivo prende esattamente una frase sostantivo come argomento, e la non comunicatività deriva dal fatto che l'ordine delle parole nelle frasi è importante. Ad esempio, l'argomento del sostantivo di un aggettivo viene dopo l'aggettivo ("uova verdi"), mentre la frase del nome di una frase preposizionale viene prima delle frasi preposizionali ("uova verdi con ketchup"). In termini categorici, si desidera una categoria monoidale (non simmetrica) che è chiusa a sinistra e a destra. Quindi il tipo è il tipo di una frase che ha il tipo , quando è preceduto da una A a sinistra, e B / A è il tipo di una frase che ha il tipo BUNBBUNB/UNBquando successe . a destra e il tipo A B è il tipo di una frase creata concatenando qualcosa di tipo A con qualcosa di tipo BUNUN*BUNB

Si scopre che le grammatiche di Lambek sono equivalenti a linguaggi liberi dal contesto, sebbene apparentemente questo sia un risultato abbastanza difficile - mostrare che i CFG sono un sottoinsieme delle grammatiche di Lambek è facile, ma l'altra direzione è stata stabilita solo nel 1991 da Pentus.

Un buon esercizio ^ H ^ H ^ Pubblicazione per il lettore (cioè, non l'ho provato, ma penso che sarebbe bello provarlo) è usare il calcolo di Lambek per riformulare la presentazione di Valiant dell'analisi CYK tramite la moltiplicazione della matrice booleana , in categorico termini. Come motivazione, cito dal documento di Lambek del 1958 The Mathematics of Frase Structure :

Il calcolo presentato qui è formalmente identico a un calcolo costruito da GD Findlay e dal presente autore per una discussione di mappature canoniche in algebra lineare e multilineare.


1
Ridefinire la resa di moltiplicazione di matrice di CFG da parte di Vailant nell'analisi della lingua delle grammatiche di Lambek è probabilmente più di un semplice esercizio ...
Martin Berger

1
@MartinBerger: è meglio? :)
Neel Krishnaswami,

C'è solo un modo per scoprirlo!
Martin Berger,

2
Umm, ma "grammatica categoriale" si riferisce alla nozione linguistica di categoria ( en.wikipedia.org/wiki/Syntactic_category ), non coinvolge la teoria delle categorie dei matematici. Quindi la risposta non ha nulla a che fare con la domanda.
Emil Jeřábek 3.0

2
Il calcolo di Lambek (che è uno dei principali formalismi per la grammatica categoriale) è effettivamente categorico nel senso della teoria delle categorie - è la teoria sintattica delle categorie monoidali ciclose, e Lambek era abbastanza consapevole di questo fatto. Nel linguaggio della teoria della dimostrazione, le categorie della linguistica danno le "proposizioni atomiche" del calcolo di Lambek.
Neel Krishnaswami,

4

Sembrerebbe che l'analisi (senza contesto) a la Parsec sia naturalmente espressa in termini di classe di tipo Applicativo . A sua volta, questa classe è descritta bene dai cosiddetti potenti funzioni monoidali rilassate , che sono menzionati in questa bella domanda cstheory e in questa bella domanda stackoverflow .

Più in generale, i parser Parsec sono monadi , che sono così ben noti sia nella teoria CS che nella teoria delle categorie che non darò riferimenti se non richiesto.


3
Dice molto che un concetto nel calcolo è una monade? Quasi tutto può essere espresso come una monade.
Martin Berger,

Non molto, sono d'accordo, ma dà una risposta alla richiesta originale.
cody
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.