mirror of
https://github.com/GrammaticalFramework/comp-syntax-gu-mlt.git
synced 2026-05-04 15:22:50 -06:00
lecture 6 code
This commit is contained in:
@@ -20,8 +20,7 @@ abstract Foods = {
|
||||
Mod : Quality -> Kind -> Kind ; -- (Italian) (pizza)
|
||||
Very : Quality -> Quality ; -- very (Italian)
|
||||
|
||||
Wine, Cheese, Fish, Pizza : Kind ;
|
||||
Wine, SparklingWine, Cheese, Fish, Pizza : Kind ;
|
||||
|
||||
Fresh, Warm, Italian,
|
||||
Expensive, Delicious, Boring : Quality ;
|
||||
Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
|
||||
}
|
||||
BIN
lectures/lecture06/Foods.pgf
Normal file
BIN
lectures/lecture06/Foods.pgf
Normal file
Binary file not shown.
31
lectures/lecture06/FoodsEng.gf
Normal file
31
lectures/lecture06/FoodsEng.gf
Normal file
@@ -0,0 +1,31 @@
|
||||
concrete FoodsEng of Foods = open ParadigmsEng, SyntaxEng, LexiconEng in {
|
||||
lincat
|
||||
Quality = AP;
|
||||
Kind = CN;
|
||||
Item = NP ;
|
||||
Comment = S ;
|
||||
|
||||
lin
|
||||
Pred item quality = mkS presentTense positivePol (mkCl item quality);
|
||||
PredNeg item quality = mkS presentTense negativePol (mkCl item quality);
|
||||
That kind = mkNP that_Det kind ;
|
||||
Those kind = mkNP those_Det kind ;
|
||||
These kind = mkNP these_Det kind ;
|
||||
This kind = mkNP this_Det kind ;
|
||||
Mod quality kind = mkCN quality kind ;
|
||||
Very quality = mkAP very_AdA quality ;
|
||||
|
||||
Wine = mkCN wine_N;
|
||||
SparklingWine = mkCN (mkA "sparkling") wine_N ;
|
||||
Cheese = mkCN cheese_N ;
|
||||
Fish = mkCN fish_N ;
|
||||
Pizza = mkCN (mkN "pizza") ;
|
||||
|
||||
Fresh = mkAP (mkA "fresh");
|
||||
Warm = mkAP warm_A;
|
||||
Italian = mkAP (mkA "Italian");
|
||||
Expensive = mkAP (mkA "expensive");
|
||||
Delicious = mkAP (mkA "delicious");
|
||||
Boring = mkAP (mkA "boring");
|
||||
|
||||
}
|
||||
31
lectures/lecture06/FoodsIta.gf
Normal file
31
lectures/lecture06/FoodsIta.gf
Normal file
@@ -0,0 +1,31 @@
|
||||
concrete FoodsIta of Foods = open ParadigmsIta, SyntaxIta, LexiconIta in {
|
||||
lincat
|
||||
Quality = AP;
|
||||
Kind = CN;
|
||||
Item = NP ;
|
||||
Comment = S ;
|
||||
|
||||
lin
|
||||
Pred item quality = mkS presentTense positivePol (mkCl item quality);
|
||||
PredNeg item quality = mkS presentTense negativePol (mkCl item quality);
|
||||
That kind = mkNP that_Det kind ;
|
||||
Those kind = mkNP those_Det kind ;
|
||||
These kind = mkNP these_Det kind ;
|
||||
This kind = mkNP this_Det kind ;
|
||||
Mod quality kind = mkCN quality kind ;
|
||||
Very quality = mkAP very_AdA quality ;
|
||||
|
||||
Wine = mkCN wine_N;
|
||||
SparklingWine = mkCN (mkA "effervescente") wine_N ;
|
||||
Cheese = mkCN cheese_N ;
|
||||
Fish = mkCN fish_N ;
|
||||
Pizza = mkCN (mkN "pizza") ;
|
||||
|
||||
Fresh = mkAP (mkA "fresco");
|
||||
Warm = mkAP warm_A;
|
||||
Italian = mkAP (mkA "Italiano");
|
||||
Expensive = mkAP (mkA "caro");
|
||||
Delicious = mkAP (mkA "delizioso");
|
||||
Boring = mkAP (mkA "noioso");
|
||||
|
||||
}
|
||||
19
lectures/lecture06/comments.py
Normal file
19
lectures/lecture06/comments.py
Normal file
@@ -0,0 +1,19 @@
|
||||
import pgf
|
||||
|
||||
grammar = pgf.readPGF("Foods.pgf")
|
||||
parse_lang = grammar.languages["FoodsEng"]
|
||||
|
||||
with open("data.csv") as data:
|
||||
lines = data.readlines()
|
||||
|
||||
for line in lines:
|
||||
[polarity, kind, quality] = line.split(",")
|
||||
k = [e for (_,e) in parse_lang.parse(kind, cat=pgf.readType("Kind"))][0]
|
||||
q = [e for (_,e) in parse_lang.parse(quality, cat=pgf.readType("Quality"))][0]
|
||||
expr_string = "{} (This ({})) ({})".format("Pred" if polarity == "+" else "PredNeg", k, q)
|
||||
print(expr_string)
|
||||
expr = pgf.readExpr(expr_string)
|
||||
|
||||
for lin_lang in grammar.languages.values():
|
||||
print(lin_lang.linearize(expr))
|
||||
print()
|
||||
4
lectures/lecture06/data.csv
Normal file
4
lectures/lecture06/data.csv
Normal file
@@ -0,0 +1,4 @@
|
||||
+,boring cheese,expensive
|
||||
+,expensive wine,very boring
|
||||
-,pizza,Italian
|
||||
+,fish,delicious
|
||||
|
Reference in New Issue
Block a user