2016-06-29
Grammatikkontroll-prosjektet - status
Kommandorekka:
- backtracking-koden bør reinskrivast, gjerast ryddigare
- handteringa av abbr, ordenstal osb (uttrykk som sluttar med punktum) er ikkje på plass enno
- backtracking-koden må kanskje ha ei endring for å tillata backtrack saman med input-marks
- døme: «Jan.»: jan+N+ABBR|.+PUNCT, jan.+N+ABBR, eller namnet Jan+N+Prop|.+PUNCT – her vil me i abbr-leksikon seia at mellom «jan» og «.» skal det vera input-mark, men i tillegg tillata backtrack pga. Jan+N+Prop står ein heilt annan plass (og me vil ikkje manuelt spesifisera alt som er tvetydig med abbr-utan-punktum)
- backtracking-koden må kanskje ha ei endring for å tillata backtrack saman med input-marks
- spellrelax treng rydding i lexc
- døme: ja får já+Interj utan spellrelax-tagg
- interaksjon med særskriving
- meir restriktiv spellrelax i gramsjekk
- døme: ja får já+Interj utan spellrelax-tagg
- feilmeldingar i errors.xml bør dekka alle &taggar
- brukervennlig feedback
ABBR/ordinaltal vs setningsgrenser
Per tok den fyrste boka. Kari den 3. Eg tok den siste. "<3.>" "3." Adj Ord "." PUNCT "3" Num "." PUNCT "3." Adj Ord
Vi vil ha (ved setningsslutt):
"<3>" "3." Adj Ord "<.>" "." PUNCT
Når det ikkje er setningsslutt:
"<3.>" "3." Adj Ord
Andre uttrykk med punktum:
03.04. § 1.7. kapittel 1.5. jan. «Dette skjer i slutten av jan. Så kom det nedbør …» «Dette skjer i slutten av jan. så vi bør …»
Spellrelax
- ahte-áhtti/áhtat
- ja-já
"<Mun>" "mun" Pron Sem/Hum Pers Sg1 Nom <W:0> @SUBJ> SUBSTITUTE:3251 MAP:17277 #1->1 : "<dovddan>" "dovdat" <mv> V <EX-Nom-Ani> <TH-Acc-Any><TH-PrfPrc> <TH-Acc-Any><TH-AktioEss> <TH-Inf><RO-Ess-Any> <TH-Acc-Any><RO-Ess-Any> <TH-go> <TH-FS-Qpron> <TH-ahte> <TH-Acc-Any> <TH-0> TV Ind Prs Sg1 <W:0> @+FMAINV SELECT:3914 MAP:10161:r406 #2->2 SUBSTITUTE:7306:SubV=mv SETCHILD:7857 SETCHILD:7861 SETCHILD:7857 SETCHILD:7861 ; "dovdda" N Sem/Perc-emo Ess <W:0> SELECT:3914 : "<ahte>" "ahte" CS <W:0> @CVP MAP:7690:r11 SELECT:7708:r990 #3->3 ; "áhtti" N Sem/Dummytag Sg Gen Allegro Err/Spellrelax <W:0> REMOVE:3451:too-much-spellrelax ; "ahte" CC <W:0> @CVP @CNP MAP:7693:r12 SELECT:7708:r990 ; "áhtat" V TV Ind Prs Du1 Err/Spellrelax <W:0> REMOVE:3451:too-much-spellrelax ; "áhtat" V TV Ind Prt Pl3 Err/Spellrelax <W:0> REMOVE:3451:too-much-spellrelax :
Vi vil ha ein eigen spellrelax for grammatikkontrollen, ikkje den same som den vanlege.
Døme:
áddet-addit: áddet-addet ádden-adden
- Slik det ser ut akkurat no i input, med Spellrelax:
$ echo áddet | bash modes/smegram-morph.mode "<áddet>" "addit" V TV Imprt Pl2 Err/Spellrelax <W:0> "addit" V TV Ind Prs Pl3 Err/Spellrelax <W:0> "addit" V TV Ind Prt Sg2 Err/Spellrelax <W:0> "áddet" V TV Ind Prs Pl1 <W:0> "áddet" V TV Ind Prs Sg2 <W:0> "áddet" V TV Inf <W:0> "áddet" VV TV Der/h V Imprt Sg2 <W:0> "áddet" VV TV Der/h V Imprt ConNeg <W:0> "áddet" VV TV Der/h V Ind Prs ConNeg <W:0> "áddet" VV TV Der/d V Imprt Sg2 <W:0> "áddet" VV TV Der/d V Imprt ConNeg <W:0> "áddet" VV TV Der/d V Ind Prs ConNeg <W:0> :\n
- men grammarchecker.cg3/disambiguation.cg3 baserer seg berre på analyse-som-om-input-er-rett:
$ grep -c '^ADD:áddet (&real-áddet) TARGET ("addit")' grammarchecker.cg3 45
Jienasteddjiide sáhttá šaddat váttis áddet, mo olgeš- ja ovddádusbellodat sáhtiba ovddidit oktasaš sámepolitihkka jus dát bellodagat fidnejit ráđđehus válddi boahtte čavčča Stuorradikke válggain. sáhttiba (Du3- ba) "<sáhti>" ---- another rule should hit!!!! "sáhttit" V <TH-Acc-Obj><XT-Acc-Measure> <DE-Ill-Plc> <Inf> IV VGen <W:0> &syn-Sg3-not-VGen #11->11 ADD:10533:syn-Sg3-not-VGen syn-Sg3-not-VGen "sáhttit" V <TH-Acc-Obj><XT-Acc-Measure> <DE-Ill-Plc> <Inf> IV <W:0> Ind Prt Sg3 &SUGGEST #11->11 COPY:10537:syn-Sg3-not-VGen sáhttit+V+IV+Ind+Prt+Sg3 sáhtii "<ba>" "ba" Pcle <W:0> @PCLE MAP:15565:r16 #12->12
spellrelax ruins it:
LIST DOUBLE-CONSONANT-IT-VERBS = (".*hčit"r V) (".*hčit"r V*) (".*httit"r V*) ; ADD:syn-prfprc-not-pxsg1 (&syn-prfprc-not-pxsg1) TARGET DOUBLE-CONSONANT-IT-VERBS IF (0 (VV TVV Der/NomAg N Sg Gen PxSg1) OR (VV TVV Der/NomAg N Sg Acc PxSg1) OR (VV TVV Der/NomAg N Sg Nom PxSg1))(NEGATE *-1 ("mun" Pron Pers Sg3 Nom) BARRIER GRAMCHK-S-BOUNDARY) ; COPY:syn-prfprc-not-pxsg1 (V TV PrfPrc &SUGGEST) EXCEPT (VV TVV Der/NomAg N Sg Gen PxSg1 &syn-prfprc-not-pxsg1) OR (VV TVV Der/NomAg N Sg Acc PxSg1 &syn-prfprc-not-pxsg1) OR (VV TVV Der/NomAg N Sg Nom PxSg1 &syn-prfprc-not-pxsg1) TARGET (&syn-sg1-not-pxsg1) ; ## Dán guovllus eai galggašii leat boranávddit, ja dáid máŋemuš jágiid leat bivdit báhččán álbasiid Dielddasullos. "<bivdit>" "bivdi" N NomAg Sem/Hum Pl Nom <W:0> @<SPRED SELECT:12033:r2360 MAP:16886 #13->13 "bivdit" VV TV Der/NomAg N Pl Nom <W:0> @<SPRED SELECT:12033:r2360 MAP:16886 #13->13 ; "bivdit" V <RE-Loc-Ani><TH-FS-Qst> <TH-Acc-*Ani><RE-Loc-Ani> <PA-Acc-Ani><PU-Ill-Any> <PA-Acc-Ani> <TO-ahte> <RE-Acc-Ani><TO-Ill-Any> <TH-Inf> <TH-Acc-Any><RE-Loc-Ani> <TH-ahte> <TH-Acc-*Ani> TV Imprt Pl2 <W:0> REMOVE:6815 ; "bivdit" V <RE-Loc-Ani><TH-FS-Qst> <TH-Acc-*Ani><RE-Loc-Ani> <PA-Acc-Ani><PU-Ill-Any> <PA-Acc-Ani> <TO-ahte> <RE-Acc-Ani><TO-Ill-Any> <TH-Inf> <TH-Acc-Any><RE-Loc-Ani> <TH-ahte> <TH-Acc-*Ani> TV Ind Prs Pl1 <W:0> REMOVE:9442:r1809 ; "bivdit" V <RE-Loc-Ani><TH-FS-Qst> <TH-Acc-*Ani><RE-Loc-Ani> <PA-Acc-Ani><PU-Ill-Any> <PA-Acc-Ani> <TO-ahte> <RE-Acc-Ani><TO-Ill-Any> <TH-Inf> <TH-Acc-Any><RE-Loc-Ani> <TH-ahte> <TH-Acc-*Ani> TV Inf <W:0> @-FMAINV MAP:9960:-FMAINVInf SELECT:12033:r2360 : "<báhččán>" "báhccat" <mv> V IV PrfPrc Err/Orth Err/Spellrelax <W:0> @-FMAINV SELECT:9636:r1855 MAP:10192:r409 #14->14 SUBSTITUTE:7306:SubV=mv "báhcit" <mv> V <AT-Abe-Any> <MA-Adv-Manner> <LO-Ill-Plc> <LO-Loc-Any> <LO-ala-Plc> <LO-Ill-Plc> <DE-Ill-Plc><PU-Inf> <PU-Inf> <RO-Ess-Any> <TH-haga-Any> IV PrfPrc Err/Orth Err/Spellrelax <W:0> @-FMAINV SELECT:9636:r1855 MAP:10192:r409 #14->14 SUBSTITUTE:7306:SubV=mv "báhccat" <mv> V IV PrfPrc Err/Spellrelax <W:0> @-FMAINV SELECT:9636:r1855 MAP:10192:r409 #14->14 SUBSTITUTE:7306:SubV=mv ; "báhccat" VV IV Der/NomAct N Sg Nom Err/Spellrelax <W:0> REMOVE:3520:r542 ; "báhccat" VV IV Der/NomAct N Sg Gen Err/Spellrelax <W:0> REMOVE:3520:r542 ; "báhčči" N NomAg Sem/Hum Sg Nom PxSg1 <W:0> REMOVE:5257:r992 ; "báhčči" N NomAg Sem/Hum Sg Acc PxSg1 <W:0> REMOVE:5257:r992
Redusert spellrelax:
- ikkje ta med č->c, c->č
- berre á-a, og då i ein redusert versjon basert på korpusdata (leksikalisera frekvente spellrelax-feil)?
- eventuelt òg: tillata spellrelax på alt som er i leksikon men ikkje korpus – altså, viss ahte står i leksikon, òg i korpus, så ikkje spellrelax áhte→ahte; viss áhte står i leksikon, men ikkje i korpus, så gi «áhte» ei spellrelax-lesing med lemma «ahte»
- ekspander leksikon, få ahte, áhte, osb., lag alle spellrelax-variantar áhte, ahte. Filtrer ut «ahte», fordi det står i korpus, men la «áhte» stå igjen (stod ikkje i korpus). No vil input «áhte» få ei lesing «ahte» i tillegg til «áhtti».
- eventuelt òg: tillata spellrelax på alt som er i leksikon men ikkje korpus – altså, viss ahte står i leksikon, òg i korpus, så ikkje spellrelax áhte→ahte; viss áhte står i leksikon, men ikkje i korpus, så gi «áhte» ei spellrelax-lesing med lemma «ahte»
compound-error is not recognized: atnu prográmma because atnu gets Spell-relax readings and the real one is discarded:
"<Otne>" "otne" Adv <W:0> @ADVL> MAP:16722 #1->1 : "<leat>" "leat" <mv> V <copula> <copula> <TH-Nom-Any> <mielde> <OR-Loc-HumGroup> <OR-eret-Plc> <LO-Loc-johtu><DE-Ill-Plc> <A T-Abe-Any> <AT-Nom-Any> <AT-Nom-Adj><EX-Ill-Ani> <PO-Gen-Hum> <MA-mielde-Any> <MA-Adv-Manner> <XT-Gen-Measr> <LO-maŋŋil-Tim e> <LO-Acc-Time> <LO-Loc-Time> <CO-Com-Ani> <ID-Nom-Any> <TH-Nom-Any><RO-Ess-Any><EX-Ill-Any> <EX-Ill-Ani><TH-Nom-Adj> <EX- Ill-Ani> <TH-Nom-Obj><RE-Ill-Ani> <LO-Loc-Any> <AktioEss> <RO-Ess-Any><PU-Ill-Act> <RO-Ess-Any> IV Ind Prs Pl3 <W:0> @+FMAI NV MAP:10095 #2->2 SUBSTITUTE:7277:SubV=mv SUBSTITUTE:8759 SUBSTITUTE:9397 "leat" <mv> V <copula> <copula> <TH-Nom-Any> <mielde> <OR-Loc-HumGroup> <OR-eret-Plc> <LO-Loc-johtu><DE-Ill-Plc> <A T-Abe-Any> <AT-Nom-Any> <AT-Nom-Adj><EX-Ill-Ani> <PO-Gen-Hum> <MA-mielde-Any> <MA-Adv-Manner> <XT-Gen-Measr> <LO-maŋŋil-Tim e> <LO-Acc-Time> <LO-Loc-Time> <CO-Com-Ani> <ID-Nom-Any> <TH-Nom-Any><RO-Ess-Any><EX-Ill-Any> <EX-Ill-Ani><TH-Nom-Adj> <EX- Ill-Ani> <TH-Nom-Obj><RE-Ill-Ani> <LO-Loc-Any> <AktioEss> <RO-Ess-Any><PU-Ill-Act> <RO-Ess-Any> IV Ind Prs Pl1 <W:0> @+FMAI NV MAP:10095 #2->2 SUBSTITUTE:7277:SubV=mv SUBSTITUTE:8759 SUBSTITUTE:9397 ; "leat" V <TH-Nom-Any> <mielde> <OR-Loc-HumGroup> <OR-eret-Plc> <LO-Loc-johtu><DE-Ill-Plc> <AT-Abe-Any> <AT-Nom-Any> <AT-Nom-Adj><EX-Ill-Ani> <PO-Gen-Hum> <MA-mielde-Any> <MA-Adv-Manner> <XT-Gen-Measr> <LO-maŋŋil-Time> <LO-Acc-Time> <LO-Lo c-Time> <CO-Com-Ani> <ID-Nom-Any> <TH-Nom-Any><RO-Ess-Any><EX-Ill-Any> <EX-Ill-Ani><TH-Nom-Adj> <EX-Ill-Ani> <TH-Nom-Obj><R E-Ill-Ani> <LO-Loc-Any> <AktioEss> <RO-Ess-Any><PU-Ill-Act> <RO-Ess-Any> IV Ind Prs ConNeg <W:0> REMOVE:9356:NotConNegNotNe g ; "leat" V <TH-Nom-Any> <mielde> <OR-Loc-HumGroup> <OR-eret-Plc> <LO-Loc-johtu><DE-Ill-Plc> <AT-Abe-Any> <AT-Nom-Any> <AT-Nom-Adj><EX-Ill-Ani> <PO-Gen-Hum> <MA-mielde-Any> <MA-Adv-Manner> <XT-Gen-Measr> <LO-maŋŋil-Time> <LO-Acc-Time> <LO-Lo c-Time> <CO-Com-Ani> <ID-Nom-Any> <TH-Nom-Any><RO-Ess-Any><EX-Ill-Any> <EX-Ill-Ani><TH-Nom-Adj> <EX-Ill-Ani> <TH-Nom-Obj><R E-Ill-Ani> <LO-Loc-Any> <AktioEss> <RO-Ess-Any><PU-Ill-Act> <RO-Ess-Any> IV Inf <W:0> REMOVE:9460:r1820 ; "leat" V <TH-Nom-Any> <mielde> <OR-Loc-HumGroup> <OR-eret-Plc> <LO-Loc-johtu><DE-Ill-Plc> <AT-Abe-Any> <AT-Nom-Any> <AT-Nom-Adj><EX-Ill-Ani> <PO-Gen-Hum> <MA-mielde-Any> <MA-Adv-Manner> <XT-Gen-Measr> <LO-maŋŋil-Time> <LO-Acc-Time> <LO-Lo c-Time> <CO-Com-Ani> <ID-Nom-Any> <TH-Nom-Any><RO-Ess-Any><EX-Ill-Any> <EX-Ill-Ani><TH-Nom-Adj> <EX-Ill-Ani> <TH-Nom-Obj><R E-Ill-Ani> <LO-Loc-Any> <AktioEss> <RO-Ess-Any><PU-Ill-Act> <RO-Ess-Any> IV Ind Prs Sg2 <W:0> @+FMAINV MAP:10095 REMOVE:154 60:r3257 : "<sihke>" "sihke" Adv <W:0> @>CC MAP:15639:r41 #3->3 : "<neahtta-bálvalusain>" "bálvalus" Err/Orth N Sem/Act Err/Orth Pl Loc Err/Spellrelax <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtta" N Sem/Dummytag Cmp/SgNom Cmp/Hyph Cmp <W:10> #4->4 "bálvalus" N Sem/Act Err/Orth Pl Loc <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtta" N Sem/Dummytag Cmp/SgNom Cmp/Hyph Cmp <W:10> #4->4 "bálvalus" N Sem/Act Pl Loc <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtta" N Sem/Dummytag Cmp/SgNom Cmp/Hyph Cmp <W:10> #4->4 "bálvalus" Err/Orth N Sem/Act Err/Orth Pl Loc Err/Spellrelax <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtis" A Sem/Hum Cmp/Attr Cmp/Hyph Cmp <W:10> #4->4 "bálvalus" N Sem/Act Err/Orth Pl Loc <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtis" A Sem/Hum Cmp/Attr Cmp/Hyph Cmp <W:10> #4->4 "bálvalus" N Sem/Act Pl Loc <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtis" A Sem/Hum Cmp/Attr Cmp/Hyph Cmp <W:10> #4->4 "bálvalus" Err/Orth N Sem/Act Err/Orth Pl Loc Err/Spellrelax <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtis" A Sem/Hum Cmp/SgGen Cmp/Hyph Cmp <W:10> #4->4 "bálvalus" N Sem/Act Pl Loc Err/Spellrelax <W:10> @<ADVL SELECT:13676:r2778 MAP:16715 #4->4 "neahtis" A Sem/Hum Cmp/SgGen Cmp/Hyph Cmp <W:10> #4->4 ; "bálvalus" Err/Orth N Sem/Act Err/Orth Sg Com Err/Spellrelax <W:10> SELECT:13676:r2778 ; "neahtta" N Sem/Dummytag Cmp/SgNom Cmp/Hyph Cmp <W:10> ; "bálvalus" N Sem/Act Err/Orth Sg Com <W:10> SELECT:13676:r2778 ; "neahtta" N Sem/Dummytag Cmp/SgNom Cmp/Hyph Cmp <W:10> ; "bálvalus" N Sem/Act Sg Com <W:10> SELECT:13676:r2778 ; "neahtta" N Sem/Dummytag Cmp/SgNom Cmp/Hyph Cmp <W:10> ; "bálvalus" Err/Orth N Sem/Act Err/Orth Sg Com Err/Spellrelax <W:10> SELECT:13676:r2778 ; "neahtis" A Sem/Hum Cmp/Attr Cmp/Hyph Cmp <W:10> ; "bálvalus" N Sem/Act Err/Orth Sg Com <W:10> SELECT:13676:r2778 ; "neahtis" A Sem/Hum Cmp/Attr Cmp/Hyph Cmp <W:10> ; "bálvalus" N Sem/Act Sg Com <W:10> SELECT:13676:r2778 ; "neahtis" A Sem/Hum Cmp/Attr Cmp/Hyph Cmp <W:10> ; "bálvalus" Err/Orth N Sem/Act Err/Orth Sg Com Err/Spellrelax <W:10> SELECT:13676:r2778 ; "neahtis" A Sem/Hum Cmp/SgGen Cmp/Hyph Cmp <W:10> ; "bálvalus" N Sem/Act Sg Com Err/Spellrelax <W:10> SELECT:13676:r2778 ; "neahtis" A Sem/Hum Cmp/SgGen Cmp/Hyph Cmp <W:10> : "<ja>" "já" Interj <W:0> @INTERJ MAP:15540:r15 #5->5 "ja" CC <W:0> @CVP MAP:7668:r12 #5->5 ; "ja" CC <W:0> @CNP MAP:7668:r12 REMOVE:7857:r1466 : "<mobiillas>" "mobiila" N Sem/Dummytag Sg Loc <W:0> @<ADVL MAP:16718:GramVal #6->6 ; "mobiila" A Sem/Dummytag Sg Loc <W:0> REMOVE:10260:r1961 ; "mobiila" N Sem/Dummytag Sg Acc PxSg3 <W:0> REMOVE:13046:r2613 ; "mobiila" N Sem/Dummytag Sg Gen PxSg3 <W:0> REMOVE:13046:r2613 : "<atnu>" "átnut" <mv> V <RE-Loc-Ani><TH-FS-Qst> <TH-Acc-*Ani><RE-Loc-Ani> <TH-Acc-Any><RE-Loc-Ani> <TH-ahte> <TH-Acc-Any> TV Ind Prs Sg3 Err/Spellrelax <W:0> @+FMAINV MAP:10136:r406 SELECT:14843:r3094 #7->7 SUBSTITUTE:7277:SubV=mv ; "atnu" N <TH-Ill-Any> Sem/Dummytag Sg Nom <W:0> @<SUBJ MAP:17292 REMOVE:17670:<SubjIfNotVfin ; "ádnu" N Sem/Dummytag Sg Acc Err/Spellrelax <W:0> @<OBJ MAP:17369:IfNoTransV> SELECT:14843:r3094 ; "ádnu" N Sem/Dummytag Sg Gen Err/Spellrelax <W:0> @>N MAP:16234:r227 SELECT:14843:r3094 "<prográmmain>" "prográmma" N G3 Sem/Tool-it Err/Orth Sg Com <W:0> @<ADVL MAP:16715 #8->8 "prográmma" N G3 Sem/Tool-it Pl Loc <W:0> @<ADVL MAP:16715 #8->8 "prográmma" N G3 Sem/Tool-it Sg Com <W:0> @<ADVL MAP:16715 #8->8 "prográmma" N G3 Sem/Tool-it Err/Orth Pl Loc <W:0> @<ADVL MAP:16715 #8->8 "<.>" "." CLB <W:0> #9->9
Mogleg strategi for leksikalisering av spellrelax:
- «átnu» – finst ikkje i korpus, men «atnu» finst i leksikon+korpus, så legg til at «átnu» er feilstaving av «atnu»
- «atnu» – finst i korpus, sjekk manuelt om «atnu» er sannsynleg feilstaving av «átnu» (kan kanskje gjera jobben enklare ved å filtrera vekk der rettinga ikkje finst i korpus – så viss «atnu» er i korpus, men ikkje «átnu», vil me aldri retta atnu→átnu)
$ echo atnu prográmmain | bash modes/trace-smegram-mwe-dis.mode "<atnu prográmmain>" "atnuprográmma" N G3 Sem/Dummytag Err/Orth Sg Com Err/SpaceCmp <W:0> "atnuprográmma" N G3 Sem/Dummytag Err/Orth Pl Loc Err/SpaceCmp <W:0> "atnuprográmma" N G3 Sem/Dummytag Sg Com Err/SpaceCmp <W:0> "atnuprográmma" N G3 Sem/Dummytag Pl Loc Err/SpaceCmp <W:0> ; "prográmma" N G3 Sem/Tool-it Pl Loc <W:0> "<prográmmain>" ; "átnut" V TV Ind Prs Sg3 Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Pl Loc <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Gen Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Pl Loc <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Acc Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Pl Loc <W:0> "<prográmmain>" ; "atnu" N Sem/Dummytag Sg Nom <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Sg Com <W:0> "<prográmmain>" ; "átnut" V TV Ind Prs Sg3 Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Sg Com <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Gen Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Sg Com <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Acc Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Sg Com <W:0> "<prográmmain>" ; "atnu" N Sem/Dummytag Sg Nom <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Pl Loc <W:0> "<prográmmain>" ; "átnut" V TV Ind Prs Sg3 Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Pl Loc <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Gen Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Pl Loc <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Acc Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Pl Loc <W:0> "<prográmmain>" ; "atnu" N Sem/Dummytag Sg Nom <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Sg Com <W:0> "<prográmmain>" ; "átnut" V TV Ind Prs Sg3 Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Sg Com <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Gen Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Sg Com <W:0> "<prográmmain>" ; "ádnu" N Sem/Dummytag Sg Acc Err/Spellrelax <W:0> "<atnu>" REMOVE:2024:longest-match ; "prográmma" N G3 Sem/Tool-it Err/Orth Sg Com <W:0> "<prográmmain>" ; "atnu" N Sem/Dummytag Sg Nom <W:0> "<atnu>" REMOVE:2024:longest-match :\n