Finite state and Constraint Grammar based analysers, proofing tools and other resources
View the project on GitHub giellalt/lang-mhr
This is the Eastern Mari disambiguation file. It chooses the correct morphological analyses in any given sentence context.
The file first defines sentence delimiters and tags and sets. Thereafter come the rules, each rule is listed below.
The delimiters are: “<.>” “<!>” “<?>” “<…>” “<¶>” sent
The Tags section lists all the tags inherited from the fst, and defines them for use in the syntactic analysis. The tags are documented in the root.lexc file, and here only listed for reference.
The next section, Sets, contains sets defined on the basis of the tags listed here, those set names are not visible in the output.
BOS EOS
N V A Adv CC CS Interj Pron Num Pcle Clt Po
WORD is the set of all POS
Prs Prt1 Prt2 Fut Imprt Ind Cond Des
Act ConNeg FutPrc Ger Inf Nec Neg NegPrc Pass Prc PrfPrc
Verbal person-number tags Sg1 Sg2 Sg3 Pl1 Pl2 Pl3
Sg Pl
Nom Gen Abl Dat Com Cns Acc Ins Ine Ill Cmpr (case)
Pers Refl Rel Interr Recipr Dem ABBR ACR
Pos (?) Superl Comp
PxSg1 PxSg2 PxSg3 PxPl1 PxPl2 PxPl3
Card Coll Ord Temp (?)
Qst Foc
CLB PUCT LEFT RIGHT COMMA
Der/MWN Der/sa Der/Pur Der/Caus Der/Nom
CmpTest Err
Der/Date Der/Year Der/Hum Der/Lang Der/Domain Der/Feat-phys Der/Clth Der/Body Der/Act
Sem/Ani Sem/Fem Sem/Group Sem/Mal Sem/Measr Sem/Money Sem/Obj Sem/Obj-el Sem/Org Sem/Perc-emo Sem/Plc Sem/Sign Sem/State-sick Sem/Sur Sem/Time Sem/Txt
onlyteve gives Pcle if two теве
PcleNotCC Lauseen alussa on Pcle
CCnotInterj
Posna деч посна
*InterrQ if question mark anywhere to the right
*Interr removes Rel if question mark to the right somewhere
Existential ulo
Infinitives
Ind selects Ind if no Ind to the right or to the left
1SgAgr selects (Ind Sg1) if Pron1Sg to the right or to the left
1SgAgr selects (Ind Sg1) if (Pron1Sg Nom) to the right or to the left
2SgAgr selects (Ind Sg2) if Pron2Sg to the right or to the left
IndAfterInf selects Ind if Inf to the left
NotImpWhenInd
NotImpWhenWords1
NotImpWhenWords2
*RemAdjBeforeProp removes A if Prop to the left
*AdjBeforeMo selects A if Interr to the right
AdjBeforeAN selects A if N or A to the right
RemN removes N if N to the right
*AdjBeforeConjAdj selects A if conjuction and A to the right ;
AdjNotAdv removes Adv if N to the right
AdjNotPron removes Pron Pers if N to the right
*AdjNotN removes N if Pron Pers anywhere to the left
*RemAdj2 removes A if no N or Pron in a clause
*RemNomIfPronLeft removes Nom if Pron Nom anywhere to the left
*RemNomIfPronRight removes Nom if Pron Nom anywhere to the right
*NomBeforeConjNom selects N Nom if conjoined with N Nom
*NafterDem selects N if Dem to the left (demonstratives tend to be sole modifiers)
*NotANoun
*NafterAbeforeEOS
*RemNafterAdv removes N if adverb to the left
RemDerMWN1 removes Der/MWN if N is an option
RemDerMWN2 removes Der/MWN if N to the right
Dersa if noun follows
SelDerMWN select Der/MWN if no noun follows
RemNomNif12left removes Nom with N if there is a verb with 1st or 2nd agreement to the lef
RemNomNif12right removes Nom with N if there is a verb with 1st or 2nd agreement to the right
AccNeedsVerb prefers Nom (TODO: does this make sense? SASHA: it does but there was a typo, -1* instead of 1* in the third clause of the condition)
IkNumAN ik is num before A N Sg
NotImp in most тиде cases
NotInterr if Rel
Dem if noun follows
уке
Phrases
*RemGer removes Ger Gen if there is no verb to the right
FinNotGer removes Ger if there is a Ind Prt2 Sg3 in the clause
GerNotFin Ger if there is a Ind next
GerNotFin Ger if there is a Ger da Ger VFin
Sg1NotSg3 removes Prt1 Sg3 when Pers Sg1 Nom in same clause
da1 Adv initially
da2 CC elsewhere
AifVövny selects A if вӧвны somewhere to the left
NotPcle
NoErrOrth
This (part of) documentation was generated from src/cg3/disambiguator.cg3