1
0
forked from GitHub/gf-core

chunks for ordinary RGL, defined with a functor

This commit is contained in:
aarne
2014-04-02 13:19:34 +00:00
parent 99c31f406b
commit 086085b9a3
9 changed files with 65375 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ RUNGHC=runghc
RUNMAKE=$(RUNGHC) Make.hs
PROBSFILE=../../treebanks/PennTreebank/ParseEngAbs.probs
TPROBSFILE=translator/translate.probs
#GF_LIB_PATH=..
@@ -138,7 +139,7 @@ TranslateFin: TranslateFin.pgf
TranslateFre: TranslateFre.pgf
S=-s
GFMKT=mkdir -p ../translator && gf $S -make -literal=Symb -probs=$(PROBSFILE) -gfo-dir ../translator
GFMKT=mkdir -p ../translator && gf $S -make -literal=Symb -probs=$(TPROBSFILE) -gfo-dir ../translator
TRANSLATE8=TranslateEng.pgf TranslateBul.pgf TranslateChi.pgf TranslateGer.pgf TranslateSwe.pgf TranslateHin.pgf TranslateFin.pgf TranslateFre.pgf

101
lib/src/chunk/Chunk.gf Normal file
View File

@@ -0,0 +1,101 @@
abstract Chunk = Cat, Extensions [VPS,VPI] ** {
cat
Chunks ;
Chunk ;
VC ;
fun
OneChunk : Chunk -> Chunks ;
PlusChunk : Chunk -> Chunks -> Chunks ;
ChunkPhr : Chunks -> Phr ;
fun
AP_Chunk : AP -> Chunk ;
AdA_Chunk : AdA -> Chunk ;
Adv_Chunk : Adv -> Chunk ;
AdV_Chunk : AdV -> Chunk ;
AdN_Chunk : AdN -> Chunk ;
S_Chunk : S -> Chunk ;
SSlash_Chunk : SSlash -> Chunk ;
QS_Chunk : QS -> Chunk ;
CN_Pl_Chunk : CN -> Chunk ;
CN_Sg_Chunk : CN -> Chunk ;
CN_Pl_Gen_Chunk : CN -> Chunk ;
CN_Sg_Gen_Chunk : CN -> Chunk ;
Conj_Chunk : Conj -> Chunk ;
IAdv_Chunk : IAdv -> Chunk ;
IP_Chunk : IP -> Chunk ;
NP_Nom_Chunk : NP -> Chunk ;
NP_Acc_Chunk : NP -> Chunk ;
NP_Gen_Chunk : NP -> Chunk ;
Numeral_Nom_Chunk : Numeral -> Chunk ;
Numeral_Gen_Chunk : Numeral -> Chunk ;
Ord_Nom_Chunk : Ord -> Chunk ;
Ord_Gen_Chunk : Ord -> Chunk ;
Predet_Chunk : Predet -> Chunk ;
Prep_Chunk : Prep -> Chunk ;
RP_Nom_Chunk : RP -> Chunk ;
RP_Gen_Chunk : RP -> Chunk ;
RP_Acc_Chunk : RP -> Chunk ;
Subj_Chunk : Subj -> Chunk ;
PConj_Chunk : PConj -> Chunk ;
VPS_Chunk : VPS -> Chunk ;
VPI_Chunk : VPI -> Chunk ;
-- verbs lifted to one cat
V2_V : V2 -> VC ;
VA_V : VA -> VC ;
VQ_V : VQ -> VC ;
VS_V : VS -> VC ;
VV_V : VV -> VC ;
V3_V : V3 -> VC ;
V2A_V : V2A -> VC ;
V2Q_V : V2Q -> VC ;
V2S_V : V2S -> VC ;
V2V_V : V2V -> VC ;
UseVC : Temp -> Pol -> VC -> VPS ;
-- syncategorematic chunks
refl_SgP1_Chunk,
refl_SgP2_Chunk,
refl_SgP3_Chunk,
refl_PlP1_Chunk,
refl_PlP2_Chunk,
refl_PlP3_Chunk : Chunk ;
neg_Chunk : Chunk ;
copula_Chunk : Chunk ;
copula_neg_Chunk : Chunk ;
copula_inf_Chunk : Chunk ;
past_copula_Chunk : Chunk ;
past_copula_neg_Chunk : Chunk ;
future_Chunk : Chunk ;
future_neg_Chunk : Chunk ;
cond_Chunk : Chunk ;
cond_neg_Chunk : Chunk ;
perfect_Chunk : Chunk ;
perfect_neg_Chunk : Chunk ;
past_perfect_Chunk : Chunk ;
past_perfect_neg_Chunk : Chunk ;
-- chunks for punctuation marks
fullstop_Chunk : Chunk ;
exclmark_Chunk : Chunk ;
questmark_Chunk : Chunk ;
comma_Chunk : Chunk ;
colon_Chunk : Chunk ;
semicolon_Chunk : Chunk ;
quote_Chunk : Chunk ;
lpar_Chunk : Chunk ;
rpar_Chunk : Chunk ;
dash_Chunk : Chunk ;
}

33
lib/src/chunk/ChunkEng.gf Normal file
View File

@@ -0,0 +1,33 @@
concrete ChunkEng of Chunk = CatEng, ExtensionsEng [VPS,VPI] **
ChunkFunctor with (Syntax = SyntaxEng), (Extensions = ExtensionsEng) **
open
SyntaxEng, (E = ExtensionsEng), Prelude,
(R = ResEng), (P = ParadigmsEng) in {
oper
emptyNP = mkNP (P.mkPN []) ;
lin
copula_inf_Chunk = ss "to be" | ss "be" ;
refl_SgP1_Chunk = ss "myself" ;
refl_SgP2_Chunk = ss "yourself" ;
refl_SgP3_Chunk = ss "himself" | ss "herself" | ss "itself" ;
refl_PlP1_Chunk = ss "ourselves" ;
refl_PlP2_Chunk = ss "yourselves" ;
refl_PlP3_Chunk = ss "themselves" ;
neg_Chunk = ss "not" | ss "doesn't" | ss "don't" ;
copula_Chunk = ss "is" | ss "are" | ss "am" ;
copula_neg_Chunk = ss "isn't" | ss "aren't" ;
past_copula_Chunk = ss "was" | ss "were" ;
past_copula_neg_Chunk = ss "wasn't" | ss "weren't" ;
future_Chunk = ss "will" ;
future_neg_Chunk = ss "won't" ;
cond_Chunk = ss "would" ;
cond_neg_Chunk = ss "wouldn't" ;
perfect_Chunk = ss "has" | ss "have" ;
perfect_neg_Chunk = ss "hasn't" | ss "haven't" ;
past_perfect_Chunk = ss "had" ;
past_perfect_neg_Chunk = ss "hadn't" ;
}

View File

@@ -0,0 +1,82 @@
incomplete concrete ChunkFunctor of Chunk = Cat, Extensions [VPS,VPI] **
open
Syntax, Extensions,
Prelude in {
lincat
Chunks = {s : Str} ;
Chunk = {s : Str};
VC = V ;
lin
OneChunk c = c ;
PlusChunk c cs = cc2 c cs ;
ChunkPhr c = ss ("*" ++ c.s) | c ;
lin
AP_Chunk ap = mkUtt ap ;
AdA_Chunk ada = ada ;
Adv_Chunk adv = adv ;
AdV_Chunk adv = adv ;
AdN_Chunk adn = adn ;
S_Chunk s = mkUtt s ;
SSlash_Chunk s = mkUtt <lin S s : S> ;
QS_Chunk qs = mkUtt qs ;
CN_Pl_Chunk cn = mkUtt (mkNP aPl_Det cn) ;
CN_Sg_Chunk cn = mkUtt cn ;
---- CN_Pl_Gen_Chunk cn = ss (cn.s ! Pl ! Gen) ;
---- CN_Sg_Gen_Chunk cn = ss (cn.s ! Sg ! Gen) ;
Conj_Chunk conj = ss conj.s2 ; ----
IAdv_Chunk iadv = iadv ;
IP_Chunk ip = mkUtt ip ;
NP_Nom_Chunk np = mkUtt np ;
---- NP_Acc_Chunk np = ss (np.s ! NPAcc) ;
---- NP_Gen_Chunk np = ss (np.s ! NCase Gen) | ss (np.s ! NPNomPoss) ;
Numeral_Nom_Chunk num = mkUtt (mkNP (mkDet num)) ;
---- Numeral_Gen_Chunk num = ss (num.s ! NCard ! Gen) ;
---- Ord_Nom_Chunk ord = ss (ord.s ! Nom) ;
---- Ord_Gen_Chunk ord = ss (ord.s ! Gen) ;
Predet_Chunk predet = mkUtt (mkNP predet emptyNP) ;
Prep_Chunk prep = mkAdv prep emptyNP ; ----
---- RP_Nom_Chunk rp = ss (rp.s ! RC Neutr (NCase Nom)) ;
---- RP_Acc_Chunk rp = ss (rp.s ! RPrep Masc) ; ----
---- RP_Gen_Chunk rp = ss (rp.s ! RC Neutr (NCase Gen)) ;
Subj_Chunk subj = subj ;
PConj_Chunk pconj = pconj ;
VPS_Chunk vps = mkUtt (E.PredVPS emptyNP vps) ;
-- VPI_Chunk : VPI -> Chunk ;
V2_V,
VA_V,
VQ_V,
VS_V,
---- VV_V,
V3_V,
V2A_V,
V2Q_V,
V2S_V,
V2V_V
= \v -> <lin V v : V> ;
UseVC t p vc = E.MkVPS t p (mkVP vc) ;
fullstop_Chunk = ss "." ;
exclmark_Chunk = ss "!" ;
questmark_Chunk = ss "?" ;
comma_Chunk = ss "," ;
colon_Chunk = ss ":" ;
semicolon_Chunk = ss ";" ;
quote_Chunk = ss "\"" ;
lpar_Chunk = ss "(" ;
rpar_Chunk = ss ")" ;
dash_Chunk = ss "-" ;
oper
emptyNP : NP = mkNP (P.mkPN []) ;
}

32
lib/src/chunk/ChunkSwe.gf Normal file
View File

@@ -0,0 +1,32 @@
concrete ChunkSwe of Chunk = CatSwe, ExtensionsSwe [VPS,VPI] **
ChunkFunctor with (Syntax = SyntaxSwe), (Extensions = ExtensionsSwe) **
open
SyntaxSwe, (E = ExtensionsSwe), Prelude,
(R = ResSwe), (P = ParadigmsSwe) in {
oper
emptyNP = mkNP (P.mkPN []) ;
lin
copula_inf_Chunk = ss "att vara" | ss "vara" ;
refl_SgP1_Chunk = ss "mig själv" ;
refl_SgP2_Chunk = ss "dig själv" ;
refl_SgP3_Chunk = ss "sig själv" ;
refl_PlP1_Chunk = ss "oss själva" ;
refl_PlP2_Chunk = ss "er själva" ;
refl_PlP3_Chunk = ss "sig själva" ;
neg_Chunk = ss "inte" ;
copula_Chunk = ss "är" ;
copula_neg_Chunk = ss "är inte" ;
past_copula_Chunk = ss "var" ;
past_copula_neg_Chunk = ss "var inte" ;
future_Chunk = ss "ska" | ss "skall" ;
future_neg_Chunk = ss "ska inte" | ss "skall inte" ;
cond_Chunk = ss "skulle" ;
cond_neg_Chunk = ss "skulle inte" ;
perfect_Chunk = ss "har" ;
perfect_neg_Chunk = ss "har inte" ;
past_perfect_Chunk = ss "hade" ;
past_perfect_neg_Chunk = ss "hade inte" ;
}

View File

@@ -19,6 +19,8 @@ abstract Translate =
Symbol [PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP], ---- why only these?
Chunk - [VPS,VPI],
Construction,
Extensions,
Dictionary,
@@ -27,8 +29,9 @@ abstract Translate =
** {
flags
startcat=Phr;
heuristic_search_factor=0.60;
meta_prob=1.0e-5;
meta_token_prob=1.1965149246222233e-9;
---- robustness by Chunk now
---- heuristic_search_factor=0.60;
---- meta_prob=1.0e-5;
---- meta_token_prob=1.1965149246222233e-9;
}

View File

@@ -1,4 +1,4 @@
--# -path=.:../abstract:../english
--# -path=.:src/chunk
concrete TranslateEng of Translate =
TenseX - [Pol, PNeg, PPos],
@@ -27,6 +27,8 @@ concrete TranslateEng of Translate =
ConstructionEng,
DocumentationEng,
ChunkEng - [VPS,VPI],
ExtensionsEng,
DictionaryEng **
open MorphoEng, ResEng, ParadigmsEng, (G = GrammarEng), (E = ExtraEng), Prelude in {

View File

@@ -1,4 +1,5 @@
--# -path=.:../swedish/:../scandinavian:../abstract
--# -path=.:src/chunk:alltenses
concrete TranslateSwe of Translate =
TenseSwe,
NounSwe - [PPartNP],
@@ -21,6 +22,8 @@ concrete TranslateSwe of Translate =
ConstructionSwe,
DocumentationSwe,
ChunkSwe - [VPS,VPI],
ExtensionsSwe,
DictionarySwe **
open MorphoSwe, ResSwe, ParadigmsSwe, SyntaxSwe, CommonScand, (E = ExtraSwe), Prelude in {

File diff suppressed because it is too large Load Diff