forked from GitHub/gf-core
finished the refactoring of Fin with unstemmed (for library use) and stemmed (for large-scale parsing use). All differences are located in the file StemFin.
This commit is contained in:
@@ -279,7 +279,7 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
by = SyntaxFin.mkAdv (casePrep adessive) (mkNP n)
|
by = SyntaxFin.mkAdv (casePrep adessive) (mkNP n)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkSuperl : A -> Det = \a -> mkDet the_Quant (mkOrd a) ;
|
mkSuperl : A -> Det = \a -> SyntaxFin.mkDet the_Quant (mkOrd a) ;
|
||||||
|
|
||||||
far_IAdv = E.IAdvAdv L.far_Adv ;
|
far_IAdv = E.IAdvAdv L.far_Adv ;
|
||||||
|
|
||||||
|
|||||||
@@ -12,10 +12,7 @@ lincat
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
num x = x ;
|
num x = x ;
|
||||||
n2 = co
|
n2 = kaksi_toinenN ;
|
||||||
(nhn (mkSubst "a" "kaksi" "kahde" "kahte" "kahta" "kahteen" "kaksi" "kaksi"
|
|
||||||
"kaksien" "kaksia" "kaksiin"))
|
|
||||||
(ordN "a" "kahdes") ; --- toinen
|
|
||||||
n3 = co
|
n3 = co
|
||||||
(nhn (mkSubst "a" "kolme" "kolme" "kolme" "kolmea" "kolmeen" "kolmi" "kolmi"
|
(nhn (mkSubst "a" "kolme" "kolme" "kolme" "kolmea" "kolmeen" "kolmi" "kolmi"
|
||||||
"kolmien" "kolmia" "kolmiin"))
|
"kolmien" "kolmia" "kolmiin"))
|
||||||
@@ -109,6 +106,10 @@ oper
|
|||||||
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
||||||
"yksien" "yksiä" "yksiin"))
|
"yksien" "yksiä" "yksiin"))
|
||||||
(snoun2nounBind (mkN "ensimmäinen")) ; -- ensimmäinen ---- sadasensimmäinentuhannes
|
(snoun2nounBind (mkN "ensimmäinen")) ; -- ensimmäinen ---- sadasensimmäinentuhannes
|
||||||
|
kaksi_toinenN = co
|
||||||
|
(nhn (mkSubst "a" "kaksi" "kahde" "kahte" "kahta" "kahteen" "kaksi" "kaksi"
|
||||||
|
"kaksien" "kaksia" "kaksiin"))
|
||||||
|
(snoun2nounBind (mkN "toinen")) ;
|
||||||
kymmenenN = co
|
kymmenenN = co
|
||||||
(nhn (mkSubst "ä" "kymmenen" "kymmene" "kymmene" "kymmentä"
|
(nhn (mkSubst "ä" "kymmenen" "kymmene" "kymmene" "kymmentä"
|
||||||
"kymmeneen" "kymmeni" "kymmeni" "kymmenien" "kymmeniä" "kymmeniin"))
|
"kymmeneen" "kymmeni" "kymmeni" "kymmenien" "kymmeniä" "kymmeniin"))
|
||||||
|
|||||||
@@ -701,7 +701,7 @@ mkVS = overload {
|
|||||||
caseV c v = {s = v.s ; sc = NPCase c ; h = v.h ; lock_V = <> ; p = v.p} ;
|
caseV c v = {s = v.s ; sc = NPCase c ; h = v.h ; lock_V = <> ; p = v.p} ;
|
||||||
|
|
||||||
vOlla = {
|
vOlla = {
|
||||||
s = table SVForm ["olla";"ole";"on";"o";"olk";"olla";"oli";"oli";"olisi";"oll";"oltu";"ollu";"liene";"ole"] ;
|
s = ollaSVerbForms ;
|
||||||
sc = NPCase Nom ; h = Back ; lock_V = <> ; p = []} ; ---- lieneekö
|
sc = NPCase Nom ; h = Back ; lock_V = <> ; p = []} ; ---- lieneekö
|
||||||
|
|
||||||
mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ;
|
mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ;
|
||||||
|
|||||||
@@ -454,7 +454,7 @@ oper
|
|||||||
|
|
||||||
infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str = infVPGen Pos ;
|
infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str = infVPGen Pos ;
|
||||||
|
|
||||||
-- The definitions below were moved here from $MorphoFin$ so that we the
|
-- The definitions below were moved here from $MorphoFin$ so that the
|
||||||
-- auxiliary of predication can be defined.
|
-- auxiliary of predication can be defined.
|
||||||
|
|
||||||
verbOlla : Verb =
|
verbOlla : Verb =
|
||||||
|
|||||||
@@ -67,13 +67,8 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
|||||||
h = v.h ; p = v.p
|
h = v.h ; p = v.p
|
||||||
}
|
}
|
||||||
) ** {c2 = vp.c2} ; ---- correct ??
|
) ** {c2 = vp.c2} ; ---- correct ??
|
||||||
-- { ---- 153543936 (210912,312)
|
|
||||||
SlashV2VNP v np vp =
|
SlashV2VNP = StemFin.slashV2VNP ; ---- compilation to pgf takes too long 6/8/2013 hence a simplified version in stemmed/
|
||||||
insertObjPre np.isNeg
|
|
||||||
(\fin,b,a -> appCompl fin b v.c2 np ++ ---- compilation to pgf takes too long 6/8/2013
|
|
||||||
infVP v.sc b a vp v.vi)
|
|
||||||
(predSV v) ** {c2 = vp.c2} ;
|
|
||||||
---- }
|
|
||||||
|
|
||||||
AdvVP vp adv = insertAdv (\\_ => adv.s) vp ;
|
AdvVP vp adv = insertAdv (\\_ => adv.s) vp ;
|
||||||
|
|
||||||
|
|||||||
@@ -174,6 +174,8 @@ oper
|
|||||||
SVForm : Type = Predef.Ints 13 ;
|
SVForm : Type = Predef.Ints 13 ;
|
||||||
SVerb : Type = {s : SVForm => Str ; h : Harmony} ;
|
SVerb : Type = {s : SVForm => Str ; h : Harmony} ;
|
||||||
|
|
||||||
|
ollaSVerbForms : SVForm => Str = table SVForm ["olla";"ole";"on";"o";"olk";"olla";"oli";"oli";"olisi";"oll";"oltu";"ollu";"liene";"ole"] ;
|
||||||
|
|
||||||
-- used in Cat
|
-- used in Cat
|
||||||
SVerb1 = {s : SVForm => Str ; sc : NPForm ; h : Harmony ; p : Str} ;
|
SVerb1 = {s : SVForm => Str ; sc : NPForm ; h : Harmony ; p : Str} ;
|
||||||
|
|
||||||
@@ -407,4 +409,22 @@ oper
|
|||||||
_ => BIND ++ ":" ++ BIND
|
_ => BIND ++ ":" ++ BIND
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
---- a hack to make VerbFin compile accurately for library (in ../),
|
||||||
|
---- and in a simplified way for ParseFin (here)
|
||||||
|
|
||||||
|
slashV2VNP : (SVerb1 ** {c2 : Compl ; vi : InfForm}) -> (NP ** {isNeg : Bool}) ->
|
||||||
|
(VP ** {c2 : Compl}) -> (VP ** {c2 : Compl})
|
||||||
|
= \v, np, vp ->
|
||||||
|
insertObjPre False ---- ignoring np.isNeg
|
||||||
|
(\fin,b,a -> np.s ! v.c2.c ++ vp.c2.s ++
|
||||||
|
---- appCompl fin b v.c2 np ++ -- ignoring Acc variation and pre/postposition
|
||||||
|
(let verb = vp.s ! VIInf v.vi ! Simul ! Pos ! a
|
||||||
|
in verb.fin ++ verb.inf ++ vp.s2 ! fin ! b ! a ++ vp.adv ! b ++ vp.ext)
|
||||||
|
---- infVP v.sc b a vp v.vi -- ignoring neg vp's and possessive suffix of inf
|
||||||
|
)
|
||||||
|
(predSV v) ** {c2 = vp.c2} ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user