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
|
RUNMAKE=$(RUNGHC) Make.hs
|
||||||
|
|
||||||
PROBSFILE=../../treebanks/PennTreebank/ParseEngAbs.probs
|
PROBSFILE=../../treebanks/PennTreebank/ParseEngAbs.probs
|
||||||
|
TPROBSFILE=translator/translate.probs
|
||||||
|
|
||||||
#GF_LIB_PATH=..
|
#GF_LIB_PATH=..
|
||||||
|
|
||||||
@@ -138,7 +139,7 @@ TranslateFin: TranslateFin.pgf
|
|||||||
TranslateFre: TranslateFre.pgf
|
TranslateFre: TranslateFre.pgf
|
||||||
|
|
||||||
S=-s
|
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
|
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?
|
Symbol [PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP], ---- why only these?
|
||||||
|
|
||||||
|
Chunk - [VPS,VPI],
|
||||||
|
|
||||||
Construction,
|
Construction,
|
||||||
Extensions,
|
Extensions,
|
||||||
Dictionary,
|
Dictionary,
|
||||||
@@ -27,8 +29,9 @@ abstract Translate =
|
|||||||
** {
|
** {
|
||||||
flags
|
flags
|
||||||
startcat=Phr;
|
startcat=Phr;
|
||||||
heuristic_search_factor=0.60;
|
---- robustness by Chunk now
|
||||||
meta_prob=1.0e-5;
|
---- heuristic_search_factor=0.60;
|
||||||
meta_token_prob=1.1965149246222233e-9;
|
---- 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 =
|
concrete TranslateEng of Translate =
|
||||||
TenseX - [Pol, PNeg, PPos],
|
TenseX - [Pol, PNeg, PPos],
|
||||||
@@ -27,6 +27,8 @@ concrete TranslateEng of Translate =
|
|||||||
ConstructionEng,
|
ConstructionEng,
|
||||||
DocumentationEng,
|
DocumentationEng,
|
||||||
|
|
||||||
|
ChunkEng - [VPS,VPI],
|
||||||
|
|
||||||
ExtensionsEng,
|
ExtensionsEng,
|
||||||
DictionaryEng **
|
DictionaryEng **
|
||||||
open MorphoEng, ResEng, ParadigmsEng, (G = GrammarEng), (E = ExtraEng), Prelude in {
|
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 =
|
concrete TranslateSwe of Translate =
|
||||||
TenseSwe,
|
TenseSwe,
|
||||||
NounSwe - [PPartNP],
|
NounSwe - [PPartNP],
|
||||||
@@ -21,6 +22,8 @@ concrete TranslateSwe of Translate =
|
|||||||
ConstructionSwe,
|
ConstructionSwe,
|
||||||
DocumentationSwe,
|
DocumentationSwe,
|
||||||
|
|
||||||
|
ChunkSwe - [VPS,VPI],
|
||||||
|
|
||||||
ExtensionsSwe,
|
ExtensionsSwe,
|
||||||
DictionarySwe **
|
DictionarySwe **
|
||||||
open MorphoSwe, ResSwe, ParadigmsSwe, SyntaxSwe, CommonScand, (E = ExtraSwe), Prelude in {
|
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