forked from GitHub/gf-core
chunks for ordinary RGL, defined with a functor
This commit is contained in:
@@ -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
101
lib/src/chunk/Chunk.gf
Normal 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
33
lib/src/chunk/ChunkEng.gf
Normal 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" ;
|
||||
|
||||
|
||||
}
|
||||
82
lib/src/chunk/ChunkFunctor.gf
Normal file
82
lib/src/chunk/ChunkFunctor.gf
Normal 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
32
lib/src/chunk/ChunkSwe.gf
Normal 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" ;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
65112
lib/src/translator/translate.probs
Normal file
65112
lib/src/translator/translate.probs
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user