diff --git a/lib/src/experimental/Chunk.gf b/lib/src/experimental/Chunk.gf index cea0b5611..239a3a810 100644 --- a/lib/src/experimental/Chunk.gf +++ b/lib/src/experimental/Chunk.gf @@ -17,6 +17,7 @@ fun Adv_Chunk : Adv -> Chunk ; AdV_Chunk : AdV -> Chunk ; AdN_Chunk : AdN -> Chunk ; + Cl_Chunk : PrCl_none -> Chunk ; CN_Pl_Chunk : CN -> Chunk ; CN_Sg_Chunk : CN -> Chunk ; CN_Pl_Gen_Chunk : CN -> Chunk ; @@ -24,25 +25,37 @@ fun Conj_Chunk : Conj -> Chunk ; IAdv_Chunk : IAdv -> Chunk ; IP_Chunk : IP -> Chunk ; - NP_Chunk : NP -> Chunk ; + NP_Nom_Chunk : NP -> Chunk ; + NP_Acc_Chunk : NP -> Chunk ; NP_Gen_Chunk : NP -> Chunk ; - Numeral_Chunk : Numeral -> Chunk ; - Ord_Chunk : Ord -> 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_Chunk : RP -> Chunk ; + RP_Nom_Chunk : RP -> Chunk ; + RP_Gen_Chunk : RP -> Chunk ; + RP_Acc_Chunk : RP -> Chunk ; Subj_Chunk : Subj -> Chunk ; - VP_Chunk : VP -> Chunk ; VP_np_Chunk : PrVP_np -> Chunk ; VP_none_Chunk : PrVP_none -> Chunk ; VP_s_Chunk : PrVP_s -> Chunk ; + VP_v_Chunk : PrVP_v -> Chunk ; + refl_SgP3_Chunk : Chunk ; neg_Chunk : Chunk ; copula_Chunk : Chunk ; + copula_neg_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 ; } \ No newline at end of file diff --git a/lib/src/experimental/ChunkEng.gf b/lib/src/experimental/ChunkEng.gf index 997376204..882fb8d9c 100644 --- a/lib/src/experimental/ChunkEng.gf +++ b/lib/src/experimental/ChunkEng.gf @@ -12,7 +12,7 @@ lin OneChunk c = c ; PlusChunk c cs = cc2 c cs ; ----- ChunkPhr c = c ; + ChunkPhr c = c ; lin @@ -22,6 +22,7 @@ lin Adv_Chunk adv = adv ; AdV_Chunk adv = adv ; AdN_Chunk adn = adn ; + Cl_Chunk cl = ss (PI.declCl cl) ; CN_Pl_Chunk cn = ss (cn.s ! Pl ! Nom) ; CN_Sg_Chunk cn = ss (cn.s ! Sg ! Nom) ; CN_Pl_Gen_Chunk cn = ss (cn.s ! Pl ! Gen) ; @@ -29,28 +30,41 @@ lin Conj_Chunk conj = ss conj.s2 ; IAdv_Chunk iadv = iadv ; IP_Chunk ip = ss (ip.s ! NCase Nom) ; - NP_Chunk np = ss (np.s ! NCase Nom) | ss (np.s ! NPAcc) ; + NP_Nom_Chunk np = ss (np.s ! NCase Nom) ; + NP_Acc_Chunk np = ss (np.s ! NPAcc) ; NP_Gen_Chunk np = ss (np.s ! NCase Gen) | ss (np.s ! NPNomPoss) ; - Numeral_Chunk num = ss (num.s ! NCard ! Nom) | ss (num.s ! NCard ! Gen) ; - Ord_Chunk ord = ss (ord.s ! Nom) | ss (ord.s ! Gen) ; + Numeral_Nom_Chunk num = ss (num.s ! NCard ! Nom) ; + 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 = predet ; Prep_Chunk prep = prep ; - RP_Chunk rp = ss (rp.s ! RC Neutr (NCase Nom)) | ss (rp.s ! RPrep Masc) ; ---- + 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 ; - VP_none_Chunk, VP_np_Chunk, VP_s_Chunk = \vp -> + VP_none_Chunk, VP_np_Chunk, VP_s_Chunk, VP_v_VChunk = \vp -> let verb = vp.v ! (PI.VASgP1 | PI.VASgP3 | PI.VAPl) in allAgrSS (\a -> verb.p1 ++ verb.p2 ++ vp.adV ++ verb.p3 ++ vp.part ++ vp.adj ! a ++ vp.c1 ++ vp.obj1.p1 ! a ++ vp.c2 ++ vp.obj2.p1 ! a ++ vp.adv ++ vp.ext ) ; + + refl_SgP3_Chunk = ss "himself" | ss "herself" | ss "itself" ; 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" ; oper diff --git a/lib/src/experimental/ChunkSwe.gf b/lib/src/experimental/ChunkSwe.gf new file mode 100644 index 000000000..808bd43ba --- /dev/null +++ b/lib/src/experimental/ChunkSwe.gf @@ -0,0 +1,78 @@ +concrete ChunkSwe of Chunk = + RGLBaseSwe - [Pol,Tense], + NDPredSwe + + ** open (PI=PredInstanceSwe), CommonScand, ResSwe, Prelude in { + +lincat + Chunks = {s : Str} ; + Chunk = {s : Str}; + +lin + OneChunk c = c ; + PlusChunk c cs = cc2 c cs ; + + ChunkPhr c = c ; + +lin + + + AP_Chunk ap = ss (ap.s ! (Strong (GSg Utr))) ; ---- other agr + AdA_Chunk ada = ada ; + Adv_Chunk adv = adv ; + AdV_Chunk adv = adv ; + AdN_Chunk adn = adn ; + Cl_Chunk cl = ss (PI.declCl cl) ; + CN_Pl_Chunk cn = ss (cn.s ! Pl ! DIndef ! Nom) ; + CN_Sg_Chunk cn = ss (cn.s ! Sg ! DIndef ! Nom) ; + CN_Pl_Gen_Chunk cn = ss (cn.s ! Pl ! DIndef ! Gen) ; + CN_Sg_Gen_Chunk cn = ss (cn.s ! Sg ! DIndef ! Gen) ; + Conj_Chunk conj = ss conj.s2 ; + IAdv_Chunk iadv = iadv ; + IP_Chunk ip = ss (ip.s ! NPNom) ; + NP_Nom_Chunk np = ss (np.s ! NPNom) ; + NP_Acc_Chunk np = ss (np.s ! NPAcc) ; + NP_Gen_Chunk np = ss (np.s ! NPPoss (GSg Utr) Nom) ; + Numeral_Nom_Chunk num = ss (num.s ! NCard Utr) ; + Numeral_Gen_Chunk num = ss (num.s ! NCard Utr) ; + Ord_Nom_Chunk ord = ord ; + Ord_Gen_Chunk ord = ord ; + Predet_Chunk predet = ss (predet.s ! Utr ! Sg) ; + Prep_Chunk prep = prep ; + RP_Nom_Chunk rp = ss (rp.s ! Utr ! Sg ! RNom) ; + RP_Acc_Chunk rp = ss (rp.s ! Utr ! Sg ! RNom) ; + RP_Gen_Chunk rp = ss (rp.s ! Utr ! Sg ! RGen) ; + Subj_Chunk subj = subj ; + VP_none_Chunk, VP_np_Chunk, VP_s_Chunk, VP_v_VChunk = \vp -> + let verb = vp.v ! PI.UUnit + in + allAgrSS (\a -> + verb.p1 ++ verb.p2 ++ vp.adV ++ verb.p3 ++ vp.part ++ + vp.adj ! a ++ vp.c1 ++ vp.obj1.p1 ! a ++ vp.c2 ++ vp.obj2.p1 ! a ++ vp.adv ++ vp.ext + ) ; + + refl_SgP3_Chunk = ss "sig" | ss "själv" ; + 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" ; + + +oper + allAgrSS : (Agr -> Str) -> SS = \f -> + ss (f PI.defaultAgr) ; +---- | ss (f (AgP3Sg Fem)) | ss (f (AgP3Sg Neutr)) | +---- ss (f (AgP1 Sg)) | ss (f (AgP1 Pl)) | ss (f (AgP2 Sg)) | ss (f (AgP2 Pl)) | +---- ss (f (AgP3Pl)) ; + + +} \ No newline at end of file diff --git a/lib/src/experimental/NDPredTrans.probs b/lib/src/experimental/NDPredTrans.probs index 959ded144..18f50db5f 100644 --- a/lib/src/experimental/NDPredTrans.probs +++ b/lib/src/experimental/NDPredTrans.probs @@ -65217,28 +65217,47 @@ AP_Chunk 3.030247037335075e-3 AdA_Chunk 9.109495956621799e-4 AdV_Chunk 4.7404486565341235e-3 Adv_Chunk 5.328685581035249e-3 -CN_Chunk 0.12420511332822734 +Cl_Chunk 0.12420511332822734 +CN_Pl_Chunk 0.012420511332822734 +CN_Sg_Chunk 0.012420511332822734 +CN_Pl_Gen_Chunk 0.0012420511332822734 +CN_Sg_Gen_Chunk 0.0012420511332822734 Conj_Chunk 1.153607720713571e-2 IAdv_Chunk 2.5406809209644978e-5 IP_Chunk 7.206294975826576e-5 -NP_Chunk 0.16918717612092532 -Num_Chunk 7.879021089499412e-2 -Ord_Chunk 7.825297236570654e-4 +NP_Nom_Chunk 0.16918717612092532 +NP_Acc_Chunk 0.16918717612092532 +NP_Gen_Chunk 0.016918717612092532 +Num_Nom_Chunk 7.879021089499412e-2 +Num_Gen_Chunk 7.879021089499412e-3 +Ord_Nom_Chunk 7.825297236570654e-4 +Ord_Gen_Chunk 7.825297236570654e-5 Predet_Chunk 2.7716519137794524e-4 Prep_Chunk 4.62935160899013e-2 -RP_Chunk 3.649803628461909e-3 +RP_Nom_Chunk 3.649803628461909e-3 +RP_Gen_Chunk 3.649803628461909e-4 +RP_Acc_Chunk 3.649803628461909e-4 Subj_Chunk 5.751177721092363e-4 -VP_Chunk 0.1 +VP_none_Chunk 0.1 +VP_np_Chunk 0.01 +VP_s_Chunk 0.01 +VP_v_Chunk 0.1 PhrUtt 0.99 PhrChunk 0.01 OneChunk 0.8 PlusChunk 0.2 - +refl_SgP3_Chunk 5.751177721092363e-4 neg_Chunk 5.751177721092363e-4 copula_Chunk 5.751177721092363e-4 +copula_neg_Chunk 5.751177721092363e-4 past_copula_Chunk 5.751177721092363e-4 +past_copula_neg_Chunk 5.751177721092363e-4 future_Chunk 5.751177721092363e-4 +future_neg_Chunk 5.751177721092363e-4 cond_Chunk 5.751177721092363e-4 +cond_neg_Chunk 5.751177721092363e-4 perfect_Chunk 5.751177721092363e-4 +perfect_neg_Chunk 5.751177721092363e-4 past_perfect_Chunk 5.751177721092363e-4 +past_perfect_neg_Chunk 5.751177721092363e-4 diff --git a/lib/src/experimental/NDTrans.gf b/lib/src/experimental/NDTrans.gf index e841cd374..fda2d838a 100644 --- a/lib/src/experimental/NDTrans.gf +++ b/lib/src/experimental/NDTrans.gf @@ -8,8 +8,8 @@ abstract NDTrans = ** { flags startcat=Phr; - heuristic_search_factor=0.60; - meta_prob=1.0e-5; - meta_token_prob=1.1965149246222233e-9; +-- heuristic_search_factor=0.60; +-- meta_prob=1.0e-5; +-- meta_token_prob=1.1965149246222233e-9; } diff --git a/lib/src/experimental/NDTransSwe.gf b/lib/src/experimental/NDTransSwe.gf index b82f34b6b..fe8ff2e03 100644 --- a/lib/src/experimental/NDTransSwe.gf +++ b/lib/src/experimental/NDTransSwe.gf @@ -4,7 +4,7 @@ concrete NDTransSwe of NDTrans = NDLiftSwe ,ExtensionsSwe [CN,NP,AdA,AdV,CompoundCN,AdAdV,UttAdV,ApposNP] ,DictionarySwe - [Pol,Tense] - + ,ChunkSwe ** open CommonScand, ResSwe, PredInstanceSwe, (Pr=PredSwe), Prelude in { flags