divvun / libdivvun

lib for running gramcheck and other pipelines + cli; modules for CG→spelling, CG→feedback, tagging blanks
https://giellalt.github.io/proof/gramcheck/GrammarCheckerDocumentation.html
GNU General Public License v3.0
9 stars 1 forks source link

yaml og COERROR #74

Closed ilm024 closed 4 months ago

ilm024 commented 5 months ago

Jeg har problemer med yaml når feilen er en del av en større COERROR, men det likevel bare er et ord som er feil.

I eksemplet nedenfor skal diehtám bli diede, dette finner også echo " Dån ittji diehtám dav." | tools/grammarcheckers/modes/trace-smjgram-dev.mode | less -R

"<Dån>"
        "dån" Pron Sem/Hum <smj> <smj> Pers Sg2 Nom <W:0.0> SUBSTITUTE:4319 SUBSTITUTE:4318 SUBSTITUTE:1574
;       "dåt" Pron Dem Sg Gen <W:0.0> REMOVE:1791
;       "dåt" Pron Dem Sg Gen Attr <W:0.0> REMOVE:1791
;       "dåt" Pron Dem Sg Ill Attr <W:0.0> REMOVE:1791
;       "dåt" Pron Dem Sg Ine Attr <W:0.0> REMOVE:1791
: 
"<ittji>"
        "ij" V <smj> <smj> IV Neg Ind Prt Sg2 <W:0.0> MAP:3464 SUBSTITUTE:4314 @+FAUXV SUBSTITUTE:4313
: 
"<diehtám>"
        "diehtet" V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> <TH-FS> TV <TH-FS-Qpron> PrfPrc <W:0.0> SUBSTITUTE:1037 SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1049 SUBSTITUTE:1064 MAP:3508 SUBSTITUTE:4314 @-FMAINV SUBSTITUTE:4313 COERROR &msyn-sme_interference_neg ADD:1959:xmsyn-sme_interference_neg COPY:1977:msyn-sme_interference_neg
msyn-sme_interference_neg
        "diehtet" V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> <TH-FS> TV <TH-FS-Qpron> <W:0.0> SUBSTITUTE:1037 SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1049 SUBSTITUTE:1064 MAP:3508 SUBSTITUTE:4314 @-FMAINV SUBSTITUTE:4313 COERROR Ind ConNeg &SUGGEST ADD:1959:xmsyn-sme_interference_neg COPY:1977:msyn-sme_interference_neg
diehtet+V+TV+Ind+ConNeg diede
: 
"<dav>"
        "dat" Pron <smj> <smj> Dem Sg Acc <W:0.0> SUBSTITUTE:4319 SUBSTITUTE:4318
"<.>"
        "." CLB <W:0.0>

Men, problemet er at vanligvis er også negasjonsverbet feil, derfor er dette en COERROR feil. Når jeg merker dette i YAML, på to ulike måter fungerer ingen av disse.

- "Dån ittji {diehtám}£{diede} dav." får fail:

Test 29/30: Dån ittji diehtám dav.
----------
DEV-msyn-sme_interference_neg-FAIL.yaml
[29/30][FAIL fn2] diehtám:diede (, ()) => :[] ()
Test 29 - Passes: 0, Fails: 1, Total: 1

Og - "Mån {ittjiv diehtám}£{ittjiv diede} dav." får også fail:

Test 30/30: Mån ittjiv diehtám dav.
----------
DEV-msyn-sme_interference_neg-FAIL.yaml
[30/30][FAIL fn2] ittjiv diehtám:ittjiv diede (, ()) => :[] ()
Test 30 - Passes: 0, Fails: 1, Total: 1

Så spørsmålet mitt er: Må YAML-systemet fikses på noe måte, eller betyr dette at vi må lage nye regler for ord som er del av COERROR, men hvor det noen ganger likevel bare er ett ord som er feil?

unhammer commented 5 months ago

Såvidt eg kan sjå manglar det ein relasjon her. Viss ønsket er å få éi understreking som dekker begge orda, så kan du t.d. ha ein ADDRELATION:LEFT frå "diehtet" til "ij", a la:

:
"<Dån>"
        "dån" Pron Sem/Hum Pers Sg2 Nom ID:1
:
"<ittji>"
        "ij" V IV Neg Ind Prt Sg2 @+FAUXV ID:2
:
"<diehtám>"             ittji diehtám   →  ittji diede
        "diehtet" V PrfPrc @-FMAINV &msyn-sme_interference_neg R:LEFT:2 ID:3
msyn-sme_interference_neg
        "diehtet" V TV @-FMAINV Ind ConNeg &SUGGEST R:LEFT:2 ID:3
diehtet+V+TV+Ind+ConNeg diede
:
"<dav>"
        "dat" Pron Dem Sg Acc
"<.>"
        "." CLB <W:0.0>
:\n

Jf. https://github.com/divvun/libdivvun/commit/8c292884d5a8eaa02cf9580b5317f6e9feae4f55 treng du ikkje lenger å legga inn COERROR-taggen når du lager større understrekingar, så lenge det ikkje er fleire alternative forslagstypar på same orda.


Viss du skulle ha overlappande fleirordsforslag som skal haldast frå kvarandre, t.d. der "Soaitá boađán" kan bli anten "Soaittán boahtit" eller "Kánske boađán" men ikkje Kánske boahtit"/"Soaittán boađán" – så kan du bruka co&feiltagg til å matcha dei opp mot kvarandre. T.d. vil

"<Soaitá>"
    "soaitit" V IV Ind Prs Sg3 &syn-soahtit-vfin+inf   ID:2 R:RIGHT:3
    "soaitit" V IV Ind Prs Sg1 &syn-soahtit-vfin+inf   ID:2 R:RIGHT:3 SUGGEST
    "kánske"  Adv              &syn-kánske             ID:2 R:RIGHT:3 SUGGEST
: 
"<boađán>"
    "boahtit" V IV Ind Prs Sg1                         ID:3
    "boahtit" V IV Ind Prs Sg1 co&syn-kánske           ID:3 SUGGEST
    "boahtit" V IV Inf         co&syn-soahtit-vfin+inf ID:3 SUGGEST

gi

"<Soaitá>"              Soaitá boađán   →  Kánske boađán        Soaitá boađán   →  Soaittán boahtit
        "soaitit" V IV Ind Prs Sg3 &syn-soahtit-vfin+inf   ID:2 R:RIGHT:3
syn-soahtit-vfin+inf
        "soaitit" V IV Ind Prs Sg1 &syn-soahtit-vfin+inf   ID:2 R:RIGHT:3 SUGGEST
soaitit+V+IV+Ind+Prs+Sg1        soaittán
        "kánske"  Adv              &syn-kánske             ID:2 R:RIGHT:3 SUGGEST
kánske+Adv      kánske
:
"<boađán>"
        "boahtit" V IV Ind Prs Sg1                         ID:3
        "boahtit" V IV Ind Prs Sg1 co&syn-kánske           ID:3 SUGGEST
boahtit+V+IV+Ind+Prs+Sg1        boađán
        "boahtit" V IV Inf         co&syn-soahtit-vfin+inf ID:3 SUGGEST
boahtit+V+IV+Inf        boahtit
ilm024 commented 5 months ago

Takk! Kan du kopiere inn regelen du skrev for å få:

:
"<Dån>"
        "dån" Pron Sem/Hum Pers Sg2 Nom ID:1
:
"<ittji>"
        "ij" V IV Neg Ind Prt Sg2 @+FAUXV ID:2
:
"<diehtám>"             ittji diehtám   →  ittji diede
        "diehtet" V PrfPrc @-FMAINV &msyn-sme_interference_neg R:LEFT:2 ID:3
msyn-sme_interference_neg
        "diehtet" V TV @-FMAINV Ind ConNeg &SUGGEST R:LEFT:2 ID:3
diehtet+V+TV+Ind+ConNeg diede
:
"<dav>"
        "dat" Pron Dem Sg Acc
"<.>"
        "." CLB <W:0.0>
:\n
unhammer commented 5 months ago

Eg hadde ingen regel, berre endra CG-output til slik det burde sjå ut for å få forslaget rett (eg hoppa over <>-taggane for å visa dei som er relevante)

ilm024 commented 5 months ago

Jeg og Linda plages. Vi får det ikke til å bli rett resultat. Ser du hva som er feil?


LIST NEG-V-smj = "ij" ;
LIST NEG-V-sme = "ii" ;
LIST NEG-V-sma = "ij" ;
LIST NEG-V-smn = "ij" ;
SET NEG-V = NEG-V-smj OR NEG-V-sme OR NEG-V-sma OR NEG-V-smn ;

ADD:xmsyn-sme_interference_neg (&msyn-sme_interference_neg) TARGET NEG-V + (Neg Ind Prs) IF (*1 PrfPrc BARRIER NOT-ADV-PCLE - ("mige") - Acc) ;
    ## {Ij} riek sjaddam nav ahte bloggiv åvdep vahkko.
    ## ja iv vissjam basádit  åvddål gå lidjiv biesskedam
    ## Árjakluoven lij boadnjásj mij ittjij sidá hiejttet noajdástallamis ja ij miededam sån lij mejdek boasstot dahkam ,
    ## Gå ällobargge Jåhkåmåhkke gieldan e adnám vaj ålggorijkka viddnudahka ij galggam boahtet billat sijá lájddumijt
    ## Juska ij mierredum makkir vehkudagá máhtti ávkkiduvvat suodjalimguovlo sisbielen
    ## Muv plána lij Vuodnaj mannat bállov tjievtjatjit, valla ij navti sjaddam.
    ## Basecampa ij álggám nav buoret.

COPY:msyn-sme_interference_neg (Prt &SUGGEST) EXCEPT (Prs &msyn-sme_interference_neg) AFTER Ind TARGET (Neg &msyn-sme_interference_neg) ;

    # for PrfPrc
    #-----------

    # To refer to other words, you add relations named $2 and so on:
    # ADDRELATION ($2) Ess TO (*-1 ("dego" &syn-not-dego) BARRIER Ess);

ADD:xmsyn-sme_interference_neg (COERROR &msyn-sme_interference_neg) TARGET PrfPrc IF (*-1 NEG-V + (Neg Ind) BARRIER NOT-ADV-PCLE - ("mige") - Acc) ; #(NEGATE NOT -1 &msyn-sme_interference_neg) ;
    ## valla danna iv {dádjadum} majdik ja ittjiv {máhttám} gähttjalimev dahkat

ADD:xmsyn-sme_interference_neg (COERROR &msyn-sme_interference_neg) TARGET PrfPrc IF (*-1 CC OR COMMA LINK -1 (&msyn-sme_interference_neg)) ;

ADDRELATION ($2 RIGHT) (Neg &msyn-sme_interference_neg) TO (*1 (PrfPrc &msyn-sme_interference_neg));

    # If only PrfPrc gets the error tag and Neg is correct

ADDRELATION ($2 LEFT) (PrfPrc &msyn-sme_interference_neg) TO (*-1 Neg);
    ## Dån ittji diehtám dav.

# ij gullum jali {vuojnnum}.
# ij gullum, {vuojnnum} jalik {happsum}. 

COPY:msyn-sme_interference_neg (Der/PassL V IV Ind ConNeg &SUGGEST) EXCEPT (Der/PassL V IV PrfPrc &msyn-sme_interference_neg) TARGET (PrfPrc Der/PassL &msyn-sme_interference_neg) ;
COPY:msyn-sme_interference_neg (Der/PassS V IV Ind ConNeg &SUGGEST) EXCEPT (Der/PassS V IV PrfPrc &msyn-sme_interference_neg) TARGET (PrfPrc Der/PassS &msyn-sme_interference_neg) ;

COPY:msyn-sme_interference_neg (Ind ConNeg &SUGGEST) EXCEPT (PrfPrc &msyn-sme_interference_neg) TARGET (PrfPrc &msyn-sme_interference_neg)(NOT 0 Der/Pass) ;
unhammer commented 5 months ago

Fjern COERROR :)

ADD:xmsyn-sme_interference_neg (COERROR &msyn-sme_interference_neg) TARGET PrfPrc IF (*-1 NEG-V + (Neg Ind) BARRIER NOT-ADV-PCLE - ("mige") - Acc) ; #(NEGATE NOT -1 &msyn-sme_interference_neg) ;
    ## valla danna iv {dádjadum} majdik ja ittjiv {máhttám} gähttjalimev dahkat

ADD:xmsyn-sme_interference_neg (COERROR &msyn-sme_interference_neg) TARGET PrfPrc IF (*-1 CC OR COMMA LINK -1 (&msyn-sme_interference_neg)) ;

bør vera


ADD:xmsyn-sme_interference_neg ( &msyn-sme_interference_neg) TARGET PrfPrc IF (*-1 NEG-V + (Neg Ind) BARRIER NOT-ADV-PCLE - ("mige") - Acc) ; #(NEGATE NOT -1 &msyn-sme_interference_neg) ;
    ## valla danna iv {dádjadum} majdik ja ittjiv {máhttám} gähttjalimev dahkat

ADD:xmsyn-sme_interference_neg ( &msyn-sme_interference_neg) TARGET PrfPrc IF (*-1 CC OR COMMA LINK -1 (&msyn-sme_interference_neg)) ;
ilm024 commented 5 months ago

Takk igjen. Et spørsmål til bare: Hvordan får jeg COERROR til å fungere nå da? Altså når det er slik at systemet virkelig skal gi to ulike rettinger?

For setninga Sáme Giellagálldo tjoahkki sámegiela ássjediehttijt Anárij, gålgådismáno 6. biejve ja gåhttju giellaaddnijt seminárraj Sajosij ságastalátjit makkár rahtjamusá li nielje sámegielajn mij gullu giellasuodjalibmáj, normerimij ja moallánakbargguj.skal det for nielje sámegielajn komme to ulike retteforslag: nieljen sámegielan eller nieljijn sámegielajn. Nå gir den også de ugrammatiske nieljen sámegielajn og nieljijn sámegielan.

"<nielje>"
        "niellja" Num Pl Nom <W:0.0> COERROR COERROR &msyn-numphrase-sgcom ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom COPY:4170:msyn-
numphrase-sgcom COPY:4180:msyn-numphrase-sgcom
msyn-numphrase-sgcom
        "niellja" Num Pl Nom <W:0.0> COERROR COERROR &msyn-numphrase-sgine ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom
msyn-numphrase-sgine
        "niellja" Num <W:0.0> COERROR COERROR Sg Com &SUGGEST ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom COPY:4170:msyn-numphrase-sgcom COPY:4180:msyn-numphrase-sgcom
niellja+Num+Sg+Com      nieljijn
        "niellja" Num <W:0.0> COERROR COERROR Sg Com &SUGGEST ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom COPY:4170:msyn-numphrase-sgcom
niellja+Num+Sg+Com      nieljijn
        "niellja" Num <W:0.0> COERROR Sg Ine &SUGGEST ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine
niellja+Num+Sg+Ine      nieljen
        "niellja" Num Sg Gen <W:0.0> COERROR COERROR &msyn-numphrase-sgcom ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom ADD:4166:xmsyn-numphrase-sgcom COPY:4170:msyn-numphrase-sgcom COPY:4180:msyn-numphrase-sgcom
msyn-numphrase-sgcom
        "niellja" Num Sg Gen <W:0.0> COERROR COERROR &msyn-numphrase-sgine ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom ADD:4166:xmsyn-numphrase-sgcom
msyn-numphrase-sgine
        "niellja" Num <W:0.0> COERROR COERROR Sg Com &SUGGEST ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom ADD:4166:xmsyn-numphrase-sgcom COPY:4170:msyn-numphrase-sgcom
niellja+Num+Sg+Com      nieljijn
        "niellja" Num <W:0.0> COERROR COERROR Sg Com &SUGGEST ID:20 ADD:4076:xmsyn-numphrase-sgine COPY:4091:xmsyn-numphrase-sgine ADD:4156:xmsyn-numphrase-sgcom ADD:4166:xmsyn-numphrase-sgcom COPY:4170:msyn-numphrase-sgcom COPY:4180:msyn-numphrase-sgcom
niellja+Num+Sg+Com      nieljijn
        "niellja" Num Sg Ill Attr <W:0.0> ID:20
: 
"<sámegielajn>"         nielje sámegielajn      →  nieljijn sámegielajn →  nieljen sámegielajn  nielje sámegielajn      →  nieljijn sámegielan  →  nieljen sámegielan
        "sámegiella" N <smj> <smj> Sem/Lang Pl Ine <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 &msyn-numphrase-sgine ID:21 R:$2:20 R:LEFT:20 ADD:4059:xmsyn-numphrase-sgine COPY:4071:msyn-numphrase-sgine ADDRELATION($2):4087
msyn-numphrase-sgine
        "sámegiella" N <smj> <smj> Sem/Lang Pl Ine <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 &msyn-numphrase-sgcom ID:21 R:$2:20 R:LEFT:20 ADD:4059:xmsyn-numphrase-sgine COPY:4151:msyn-numphrase-sgcom
msyn-numphrase-sgcom
        "sámegiella" N <smj> <smj> Sem/Lang <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 Sg Ine &SUGGEST ID:21 R:$2:20 R:LEFT:20 ADD:4059:xmsyn-numphrase-sgine COPY:4071:msyn-numphrase-sgine
sámegiella+N+Sg+Ine     sámegielan
        "sámegiella" N <smj> <smj> Sem/Lang Ine <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 Sg Com &SUGGEST ID:21 R:$2:20 R:LEFT:20 ADD:4059:xmsyn-numphrase-sgine COPY:4151:msyn-numphrase-sgcom
sámegiella+N+Ine+Sg+Com ?
        "sámegiella" N <smj> <smj> Sem/Lang Sg Com <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 &msyn-numphrase-sgine ID:21 R:$2:20 R:LEFT:20 ADD:4059:xmsyn-numphrase-sgine
msyn-numphrase-sgine
        "sámegiella" N <smj> <smj> Sem/Lang Sg Com <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 &msyn-numphrase-sgcom &SUGGEST ID:21 R:$2:20 R:LEFT:20 ADD:4059:xmsyn-numphrase-sgine COPY:4151:msyn-numphrase-sgcom
sámegiella+N+Sg+Com     sámegielajn
;       "giella" N Sem/Lang_Tool-catch Pl Ine <W:0.0>
;               "sábme" N Sem/Hum_Lang Cmp/SgGen Cmp <W:0.0> REMOVE:2110:longest-match
;       "giella" N Sem/Lang_Tool-catch Sg Com <W:0.0>
;               "sábme" N Sem/Hum_Lang Cmp/SgGen Cmp <W:0.0> REMOVE:2110:longest-match
;       "giella" N Sem/Lang_Tool-catch Pl Ine <W:0.0>
;               "sáme" A Cmp/Attr Cmp <W:0.0> REMOVE:2110:longest-match
:
unhammer commented 5 months ago

Det verkar som same situasjon som eksempelet over med "Soaittán boahtit"/"Kánske boađán" men ikkje *"Kánske boahtit"/"Soaittán boađán".

Grunnen til at me treng matchande taggar her er at relasjonar går berre frå ord til ord, ikkje frå lesning til lesning, så for at systemet skal vita at nieljen er kopla til sámegielan (men ikkje til sámegielajn) så må det vera mogleg å lesa det ut frå taggane.

Viss me køyrer utan trace så det er litt lettare å sjå kva som faktisk er der:

$ echo ' nielje sámegielajn '|modes/smjgram-dev10-cg.mode
:
"<nielje>"
        "niellja" Num Pl Nom <W:0.0> COERROR COERROR &msyn-numphrase-sgine &msyn-numphrase-sgcom ID:1
        "niellja" Num <W:0.0> COERROR COERROR Sg Com &SUGGEST ID:1
        "niellja" Num <W:0.0> COERROR Sg Ine &SUGGEST ID:1
        "niellja" Num Sg Gen <W:0.0> COERROR COERROR &msyn-numphrase-sgine &msyn-numphrase-sgcom ID:1
:
"<sámegielajn>"
        "sámegiella" N <smj> <smj> Sem/Lang Pl Ine <W:0.0> &msyn-numphrase-sgcom &msyn-numphrase-sgine ID:2 R:$2:1 R:LEFT:1
        "sámegiella" N <smj> <smj> Sem/Lang <W:0.0> Sg Ine &SUGGEST ID:2 R:$2:1 R:LEFT:1
        "sámegiella" N <smj> <smj> Sem/Lang Ine <W:0.0> Sg Com &SUGGEST ID:2 R:$2:1 R:LEFT:1
        "sámegiella" N <smj> <smj> Sem/Lang Sg Com <W:0.0> &msyn-numphrase-sgcom &msyn-numphrase-sgine &SUGGEST ID:2 R:$2:1 R:LEFT:1
: \n

Frå dette åleine er det umogleg å sjå automatisk kva for SUGGEST-lesing som høyrer til kva (relasjonane peiker berre på ord, ikkje lesing). For å «disambiguera» kan me legga på feiltaggar på SUGGEST-lesingane (altså fjerna feiltaggen frå EXCEPT):

"<nielje>"
        "niellja" Num Pl Nom <W:0.0> COERROR COERROR &msyn-numphrase-sgine &msyn-numphrase-sgcom ID:1
msyn-numphrase-sgcom
msyn-numphrase-sgine
        "niellja" Num <W:0.0> COERROR COERROR Sg Com &msyn-numphrase-sgcom &SUGGEST ID:1
niellja+Num+Sg+Com      nieljijn
        "niellja" Num <W:0.0> COERROR Sg Ine &msyn-numphrase-sgine &SUGGEST ID:1
niellja+Num+Sg+Ine      nieljen,nieljen
        "niellja" Num Sg Gen <W:0.0> COERROR COERROR &msyn-numphrase-sgine &msyn-numphrase-sgcom ID:1
msyn-numphrase-sgcom
msyn-numphrase-sgine
:
"<sámegielajn>"         nielje sámegielajn      →  nieljijn sámegielajn nielje sámegielajn      →  nieljen sámegielan   →  nieljen sámegielajn
        "sámegiella" N <smj> <smj> Sem/Lang Pl Ine <W:0.0> &msyn-numphrase-sgcom &msyn-numphrase-sgine ID:2 R:$2:1 R:LEFT:1
msyn-numphrase-sgcom
msyn-numphrase-sgine
        "sámegiella" N <smj> <smj> Sem/Lang <W:0.0> Sg Ine &msyn-numphrase-sgine &SUGGEST ID:2 R:$2:1 R:LEFT:1
sámegiella+N+Sg+Ine     sámegielan
        "sámegiella" N <smj> <smj> Sem/Lang Ine <W:0.0> Sg Com &msyn-numphrase-sgcom &SUGGEST ID:2 R:$2:1 R:LEFT:1
sámegiella+N+Ine+Sg+Com ?
        "sámegiella" N <smj> <smj> Sem/Lang Sg Com <W:0.0> &msyn-numphrase-sgcom &msyn-numphrase-sgine &SUGGEST ID:2 R:$2:1 R:LEFT:1
sámegiella+N+Sg+Com     sámegielajn
: \n

men eg forstod det på Linda at det kunne øydelegga for andre reglar om SUGGEST-lesingane hadde feiltagger, det var derfor me la til støtte for co-prefikset. Så viss du endrar COPY-reglane til å ha t.d. COPY:msyn-numphrase-sgcom (Sg Com &SUGGEST co&msyn-numphrase-sgcom) EXCEPT (Sg Gen &msyn-numphrase-sgcom) osb., så vil det òg fungera:

"<nielje>"
        "niellja" Num Pl Nom <W:0.0> COERROR COERROR &msyn-numphrase-sgine &msyn-numphrase-sgcom ID:1
msyn-numphrase-sgcom
msyn-numphrase-sgine
        "niellja" Num <W:0.0> COERROR COERROR Sg Com co&msyn-numphrase-sgcom &SUGGEST ID:1
niellja+Num+Sg+Com      nieljijn
        "niellja" Num <W:0.0> COERROR Sg Ine co&msyn-numphrase-sgine &SUGGEST ID:1
niellja+Num+Sg+Ine      nieljen,nieljen
        "niellja" Num Sg Gen <W:0.0> COERROR COERROR &msyn-numphrase-sgine &msyn-numphrase-sgcom ID:1
msyn-numphrase-sgcom
msyn-numphrase-sgine
:
"<sámegielajn>"         nielje sámegielajn      →  nieljijn sámegielajn nielje sámegielajn      →  nieljen sámegielan
        "sámegiella" N <smj> <smj> Sem/Lang Pl Ine <W:0.0> &msyn-numphrase-sgcom &msyn-numphrase-sgine ID:2 R:$2:1 R:LEFT:1
msyn-numphrase-sgcom
msyn-numphrase-sgine
        "sámegiella" N <smj> <smj> Sem/Lang <W:0.0> Sg Ine co&msyn-numphrase-sgine &SUGGEST ID:2 R:$2:1 R:LEFT:1
sámegiella+N+Sg+Ine     sámegielan
        "sámegiella" N <smj> <smj> Sem/Lang Ine <W:0.0> Sg Com co&msyn-numphrase-sgcom &SUGGEST ID:2 R:$2:1 R:LEFT:1
sámegiella+N+Ine+Sg+Com ?
        "sámegiella" N <smj> <smj> Sem/Lang Sg Com <W:0.0> &msyn-numphrase-sgcom &msyn-numphrase-sgine ID:2 R:$2:1 R:LEFT:1
msyn-numphrase-sgcom
msyn-numphrase-sgine
        "sámegiella" N <smj> <smj> Sem/Lang Sg <W:0.0> Sg Com co&msyn-numphrase-sgcom &SUGGEST ID:2 R:$2:1 R:LEFT:1
sámegiella+N+Sg+Sg+Com  ?
: \n
unhammer commented 5 months ago

Forresten kan COPY-reglane då bli mykje kortare viss du i staden for EXCEPT(&feiltagg) berre legg til ein SUBSTITUTE etter alle reglane for den feiltypen, t.d. i staden for

COPY:msyn-numphrase-sgcom (Sg Com &SUGGEST) EXCEPT (Sg Gen &msyn-numphrase-sgcom) OR (Pl Nom &msyn-numphrase-sgcom) TARGET (Num &msyn-numphrase-sgcom) IF (0 (Sg Gen) OR (Pl Nom)) ;
COPY:msyn-numphrase-sgcom (Sg Com &SUGGEST) EXCEPT (Sg Acc &msyn-numphrase-sgcom) OR (Sg Nom &msyn-numphrase-sgcom) TARGET ("moadda" Indef &msyn-numphrase-sgcom) ;

så har du

COPY:msyn-numphrase-sgcom (Sg Com &SUGGEST) EXCEPT (Sg Gen) OR (Pl Nom) TARGET (Num &msyn-numphrase-sgcom) IF (0 (Sg Gen) OR (Pl Nom)) ;
COPY:msyn-numphrase-sgcom (Sg Com &SUGGEST) EXCEPT (Sg Acc) OR (Sg Nom) TARGET ("moadda" Indef &msyn-numphrase-sgcom) ;

…

SUBSTITUTE (&msyn-numphrase-sgcom) (co&msyn-numphrase-sgcom) TARGET (&SUGGEST);
    # Genitive numeral phrases

Sjå https://github.com/giellalt/lang-smj/commit/23099dfaabcc57f10cf474ba2eae9fd0c4e92651 – det er i ein branch, men me kan legga det inn i main viss det ser greitt ut.

ilm024 commented 4 months ago

Det fungerer ikke helt:

Test 189/192: Lulujma gal 30 oassálasstij nagádit, javllá Samuel Gælok, guhti sávvá ienebu lulujin kursajda oassálasstet.
----------
DEV-msyn-numphrase-PASS.yaml
[189/192][PASS tp] 30 oassálasstij:30:jn oassálasstijn (, ()) => 30 oassálasstij:[30:jn oassálasstijn] (msyn-numphrase-sgcom)
DEV-msyn-numphrase-PASS.yaml
[189/192][PASS tp] lulujin:lulun (, ()) => lulujin:[lulun] (typo)
DEV-msyn-numphrase-PASS.yaml
[189/192][FAIL fp1] 30 oassálasstij:30:jn oassálasstijn (, ()) => 30 oassálasstij:[30:jn oassálasstij] (msyn-numphrase-sgcom)
Test 189 - Passes: 2, Fails: 1, Total: 3

Og:

"<Lulujma>"
        "liehket" V <smj> <smj> IV Cond Du1 <W:0.0> MAP:3476 SUBSTITUTE:4314 @+FAUXV SUBSTITUTE:4313
        "liehket" V <smj> <smj> IV Cond Pl1 <W:0.0> MAP:3476 SUBSTITUTE:4314 @+FAUXV SUBSTITUTE:4313
: 
"<gal>"
        "gal" Pcle <smj> <smj> <W:0.0> MAP:1976 SUBSTITUTE:4322 @PCLE SUBSTITUTE:4321
: 
"<30>"          30      →  30:jn
        "30" Num Arab Sg Ill Attr <W:0.0> SELECT:1451:Arab SELECT:3814 &msyn-numphrase-sgcom ID:3 ADD:4152:xmsyn-numphrase-sgcom COPY:4166:msyn-numphrase-sgcom
msyn-numphrase-sgcom
        "30" Num Arab <W:0.0> SELECT:1451:Arab SELECT:3814 Sg Com &msyn-numphrase-sgcom &SUGGEST ID:3 ADD:4152:xmsyn-numphrase-sgcom COPY:4166:msyn-numphrase-sgcom
30+Num+Arab+Sg+Com      30:jn
;       "30" Num Sem/ID <W:0.0> SELECT:1451:Arab
;       "30" Num Arab Sg Nom <W:0.0> SELECT:1451:Arab SELECT:3814
;       "30" Num Arab Sg Ine Attr <W:0.0> SELECT:1451:Arab SELECT:3814
;       "30" Num Arab Sg Gen <W:0.0> SELECT:1451:Arab SELECT:3814
;       "30" Num Arab Sg Ela Attr <W:0.0> SELECT:1451:Arab SELECT:3814
;       "30" A Arab Ord Attr CLBfinal <W:0.0> SELECT:1451:Arab SELECT:3814
: 
"<oassálasstij>"                30 oassálasstij →  30:jn oassálasstijn
        "oassálasstet" Ex/V IV Der/NomAg N <smj> <smj> Pl Com <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 &msyn-numphrase-sgcom ID:4 R:$2:3 R:LEFT:3 ADD:4145:msyn-numphrase-sgcom COPY:4147:msyn-numphrase-sgcom ADDRELATION($2):4180
msyn-numphrase-sgcom
        "oassálasstet" Ex/V IV Der/NomAg N <smj> <smj> <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 Sg Com &msyn-numphrase-sgcom &SUGGEST ID:4 R:$2:3 R:LEFT:3 ADD:4145:msyn-numphrase-sgcom COPY:4147:msyn-numphrase-sgcom
oassálasstet+Ex/V+IV+Der/NomAg+N+Sg+Com oassálasstijn
        "oassálasste" N <smj> <smj> Sem/Hum Gram/NomAg Pl Com <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 &msyn-numphrase-sgcom ID:4 R:$2:3 R:LEFT:3 ADD:4145:msyn-numphrase-sgcom COPY:4147:msyn-numphrase-sgcom
msyn-numphrase-sgcom
        "oassálasste" N <smj> <smj> Sem/Hum Gram/NomAg <W:0.0> SUBSTITUTE:4312 SUBSTITUTE:4311 Sg Com &msyn-numphrase-sgcom &SUGGEST ID:4 R:$2:3 R:LEFT:3 ADD:4145:msyn-numphrase-sgcom COPY:4147:msyn-numphrase-sgcom
oassálasste+N+Gram/NomAg+Sg+Com oassálasstijn,oassálasstijn,oassálasstijn
;       "oassálasstet" Ex/V IV Der/NomAg N Pl Gen <W:0.0> REMOVE:3662
;       "oassálasste" N Sem/Hum Gram/NomAg Pl Gen <W:0.0> REMOVE:3662
;       "oassálasste" N Sem/Hum Gram/NomAg Pl Com Err/SpaceCmp <W:0.0> REMOVE:2079:GenFirst
;               "30" Num Cmp/Hyph Cmp <W:0.0>
;       "oassálasste" N Sem/Hum Gram/NomAg Pl Gen Err/SpaceCmp <W:0.0> REMOVE:2079:GenFirst
;               "30" Num Cmp/Hyph Cmp <W:0.0>
: 
"<nagádit>"
        "nagádit" V <smj> <smj> IV Gram/3syll Inf <W:0.0> MAP:3522 SUBSTITUTE:4314 @-FMAINV SUBSTITUTE:4313
        "nahkat" Ex/V IV Der/d V <smj> <smj> Gram/3syll Inf <W:0.0> MAP:3522 SUBSTITUTE:4314 @-FMAINV SUBSTITUTE:4313
        "nahkat" Ex/V IV Der/u/a/åd V <smj> <smj> Gram/3syll Inf <W:0.0> MAP:3522 SUBSTITUTE:4314 @-FMAINV SUBSTITUTE:4313
;       "nagádit" V IV Gram/3syll Imprt Pl2 <W:0.0> REMOVE:3190
;       "nahkat" Ex/V IV Der/d V Gram/3syll Imprt Pl2 <W:0.0> REMOVE:3190
;       "nahkat" Ex/V IV Der/u/a/åd V Gram/3syll Imprt Pl2 <W:0.0> REMOVE:3190
"<,>"

Selv om oassálasstij ikke dukker opp som forslag i echo "Lulujma gal 30 oassálasstij nagádit, javllá Samuel Gælok, guhti sávvá ienebu lulujin kursajda oassálasstet. " | tools/grammarcheckers/modes/trace-smjgram-dev.mode | less -R virker det som at 30 blir rettet til 30:jn uten at det skjer noe med oassálasstij, og man derfor får to ulike forslag?

unhammer commented 4 months ago

Viss du endrar &msyn-numphrase-sgcom til co&msyn-numphrase-sgcom30 så vil du berre få eitt forslag.

Eller @lynnda-hill er det framleis behov for å kunna ha &feiltagg på begge orda i ein understreking på denne måten? (Eg trudde dokker ikkje ville ha &feiltagg på det sentrale feilordet pga. det kom i vegen for andre reglar.)

lynnda-hill commented 4 months ago

@unhammer vi vil ha &feiltaggen på feilordan (også det sentrale feilordet), bare ikkje på forslagslinja.

lynnda-hill commented 4 months ago

Viss du endrar &msyn-numphrase-sgcom til co&msyn-numphrase-sgcom30 så vil du berre få eitt forslag.

Eller @lynnda-hill er det framleis behov for å kunna ha &feiltagg på begge orda i ein understreking på denne måten? (Eg trudde dokker ikkje ville ha &feiltagg på det sentrale feilordet pga. det kom i vegen for andre reglar.)

@unhammer forresten meiner du at vi skal endre til co&msyn-numphrase-sgcom på SUGGEST-linjan eller også på feilmerkingslinjan?

ilm024 commented 4 months ago

Vi har co& slik:

SUBSTITUTE (&msyn-numphrase-sgcom) (co&msyn-numphrase-sgcom) TARGET (SUGGEST); Vi har også forsøkt å legge til co& på ADD-reglene, men det blir ikke rett.

Hvordan tenkte du?

ilm024 commented 4 months ago

Vi har også samme problem med koordinasjon:

I setninger med koordinasjon retter den først den delen framfor koordinasjonen for seg selv.

Setninga er: Dan diehti gå sámegiella aneduvvá dakkár sajijn gånnå åvddåla **ij gullum jali vuojnnum** de la dárbbo gielav ådåstuhttet ja dahkat ådå bágojt.

den blir rettet til både ittjij gullu jali vuojnnum og ittjij gullu jali vuojnnu.

Slik ser det ut:

"<ij>"          ij gullum       →  ittjij gullu
        "ij" V <smj> <smj> IV Neg Ind Prs Sg3 <W:0.0> MAP:3465 SUBSTITUTE:4317 @+FAUXV SUBSTITUTE:4316 &msyn-sme_interference_neg ID
:14 R:RIGHT:15 R:$2:15 ADD:2106:xmsyn-sme_interference_neg COPY:2115:msyn-sme_interference_neg ADDRELATION($2):2138
msyn-sme_interference_neg
        "ij" V <smj> <smj> IV Neg Ind Prt SUGGEST Sg3 <W:0.0> MAP:3465 SUBSTITUTE:4317 @+FAUXV SUBSTITUTE:4316 ID:14 R:RIGHT:15 R:$2
:15 ADD:2106:xmsyn-sme_interference_neg COPY:2115:msyn-sme_interference_neg
ij+V+IV+Neg+Ind+Prt+Sg3 ittjij
: 
"<gullum>"              ij gullum       →  ittjij gullu
        "gullat" Ex/V Ex/TV Der/PassS Ex/V IV Der/NomAct N <smj> <smj> Sg Nom <W:0.0> SUBSTITUTE:4315 SUBSTITUTE:4314 ID:15 R:$2:14 
R:LEFT:14
        "gullat" Ex/V Ex/TV Der/PassS V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> <TH-FS> IV Actio Nom <W:0.0> SUBSTITUTE:10
37 SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1064 MAP:3555 SUBSTITUTE:4317 @X SUBSTITUTE:4316 ID:15 R:$2:14 R:LEFT:14
        "gullat" Ex/V Ex/TV Der/PassS V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> <TH-FS> IV PrfPrc <W:0.0> SUBSTITUTE:1037 
SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1064 MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 &msyn-sme_interference_neg ID:15 R
:$2:14 R:LEFT:14 ADD:2124:xmsyn-sme_interference_neg ADD:2128:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interference_neg
msyn-sme_interference_neg
        "gullat" Ex/V Ex/TV Der/PassS V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> <TH-FS> IV PrfPrc <W:0.0> SUBSTITUTE:1037 
SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1064 MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 &msyn-sme_interference_neg ID:15 R
:$2:14 R:LEFT:14 ADD:2124:xmsyn-sme_interference_neg ADD:2128:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interference_neg ADDRELA
TION($2):2142
msyn-sme_interference_neg
        "gullat" Ex/V Ex/TV Der/PassS V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> <TH-FS> IV <W:0.0> SUBSTITUTE:1037 SUBSTIT
UTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1064 MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 co&msyn-sme_interference_neg Ind ConNeg S
UGGEST ID:15 R:$2:14 R:LEFT:14 ADD:2124:xmsyn-sme_interference_neg ADD:2128:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interferen
ce_neg SUBSTITUTE:2150
gullat+Ex/V+Ex/TV+Der/PassS+V+IV+Ind+ConNeg     gullu
        "gullut" Ex/V IV Der/NomAct N <smj> <smj> Sg Nom <W:0.0> SUBSTITUTE:4315 SUBSTITUTE:4314 ID:15 R:$2:14 R:LEFT:14
        "gullut" V <smj> <smj> IV Actio Nom <W:0.0> MAP:3555 SUBSTITUTE:4317 @X SUBSTITUTE:4316 ID:15 R:$2:14 R:LEFT:14
        "gullut" V <smj> <smj> IV PrfPrc <W:0.0> MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 &msyn-
sme_interference_neg ID:15 R:$2:14 R:LEFT:14 ADD:2124:xmsyn-sme_interference_neg ADD:2128:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interference_neg
msyn-sme_interference_neg
        "gullut" V <smj> <smj> IV <W:0.0> MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 co&msyn-sme_interference_neg Ind ConNeg SUGGEST ID:15 R:$2:14 R:LEFT:14 ADD:2124:xmsyn-sme_interference_neg ADD:2128:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interference_neg SUBSTITUTE:2150
gullut+V+IV+Ind+ConNeg  gullu
;       "gullo" N Sem/Body-abstr Sg Nom PxSg1 <W:0.0> REMOVE:1490
: 
"<jali>"
        "jali" CC <smj> <smj> <W:0.0> MAP:2050 SELECT:2106 SUBSTITUTE:4323 @CNP SUBSTITUTE:4322
;       "jali" CC <W:0.0> @CVP MAP:2050 SELECT:2106
: 
"<vuojnnum>"            ij gullum jali vuojnnum →  ittjij gullu jali vuojnnu
        "vuojnnet" Ex/V Ex/TV Der/PassS Ex/V IV Der/NomAct N <smj> <smj> Sg Nom <W:0.0> SUBSTITUTE:4315 SUBSTITUTE:4314 ID:17 R:$2:14 R:LEFT:14
        "vuojnnet" Ex/V Ex/TV Der/PassS V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> IV Actio Nom <W:0.0> SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1064 MAP:3555 SUBSTITUTE:4317 @X SUBSTITUTE:4316 ID:17 R:$2:14 R:LEFT:14
        "vuojnnet" Ex/V Ex/TV Der/PassS V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> IV PrfPrc <W:0.0> SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1064 MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 &msyn-sme_interference_neg ID:17 R:$2:14 R:LEFT:14 ADD:2134:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interference_neg ADDRELATION($2):2142
msyn-sme_interference_neg
        "vuojnnet" Ex/V Ex/TV Der/PassS V <smj> <smj> <TH-FS-Qst> <TH-FS-Qpron> <TH-FS-Qst> IV <W:0.0> SUBSTITUTE:1043 SUBSTITUTE:1048 SUBSTITUTE:1064 MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 co&msyn-sme_interference_neg Ind ConNeg SUGGEST ID:17 R:$2:14 R:LEFT:14 ADD:2134:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interference_neg SUBSTITUTE:2150
vuojnnet+Ex/V+Ex/TV+Der/PassS+V+IV+Ind+ConNeg   vuojnnu
        "vuojnnut" Ex/V IV Der/NomAct N <smj> <smj> Sg Nom <W:0.0> SUBSTITUTE:4315 SUBSTITUTE:4314 ID:17 R:$2:14 R:LEFT:14
        "vuojnnut" V <smj> <smj> <TH-Nom-Any> IV Actio Nom <W:0.0> SUBSTITUTE:1078 MAP:3555 SUBSTITUTE:4317 @X SUBSTITUTE:4316 ID:17 R:$2:14 R:LEFT:14
        "vuojnnut" V <smj> <smj> <TH-Nom-Any> IV PrfPrc <W:0.0> SUBSTITUTE:1078 MAP:3509 SUBSTITUTE:4317 @-FMAINV SUBSTITUTE:4316 &msyn-sme_interference_neg ID:17 R:$2:14 R:LEFT:14 ADD:2134:xmsyn-sme_interference_neg COPY:2136:msyn-sme_interference_neg
msyn-sme_interference_neg
unhammer commented 4 months ago

@unhammer vi vil ha &feiltaggen på feilordan (også det sentrale feilordet), bare ikkje på forslagslinja.

Kva er forslagslinja?

lynnda-hill commented 4 months ago

Altså linja i kohorten som inneheld "SUGGEST" og retta kombinasjon av tagger og lemma som trengs for å generere det ordet GramDivvun foreslår til brukerne.

unhammer commented 4 months ago

OK, så prinsippet er ingen &feiltagg på SUGGEST-linja uavhengig av om dei er på det «sentrale» ordet eller ei (fordi det blir feil å feiltagga noko som er rett?).

I dei tilfella der det kan vera overlappande feil er det då iallfall nødvendig med co&feiltagg på den korrekte lesinga for å finna den som høyrer til feilen.

Så då bør ein

SUBSTITUTE (&feiltagg) (co&feiltagg) TARGET SUGGEST;

(etter bolken med COPY-reglane) gjera det du vil, altså sørga for at SUGGEST-linjer ikkje har &feiltagg, men likevel gjera det mogleg for divvun-suggest å finna den SUGGEST-lesinga som høyrer til feiltaggen.

Sjølve feil-lesinga skal framleis ha &feiltagg som før:

"<kremert>"
     "kremere" V Part Sg &leif R:RIGHT:2
     "kreme" V Part Sg SUGGEST co&leif
: 
"<supe>"
     "supe" V Inf &leif ID:2
     "suppe" N Sg SUGGEST co&leif ID:2
ilm024 commented 4 months ago

Jeg har lagt SUBSTITUTE (&feiltagg) (co&feiltagg) TARGET SUGGEST; til alle numphrase regler nå. Problemet er at jeg får en retting for alt, men også en egen retting hvor bare numeralen rettes og en egen retting hvor bare demonstrativen rettes. Så nå failer yaml stort.

Test 131/200: Aktisasjbarggo Sámedikke, bájkálasj sámesiebrij ja da guokta ásadusáj gaskan, Duoddara ráfe ja Lullesáme dávvervuorkká, luluj luondulasj.
----------
DEV-msyn-numphrase-PASS.yaml
[131/200][PASS tp] da guokta ásadusáj:dan guovte ásadusá (, ()) => da guokta ásadusáj:[dan guovte ásadusá] (msyn-numphrase-sggen)
DEV-msyn-numphrase-PASS.yaml
[131/200][FAIL fp1] da guokta ásadusáj:dan guovte ásadusá (, ()) => da guokta ásadusáj:[dan guokta ásadusáj] (msyn-numphrase-sggen)
DEV-msyn-numphrase-PASS.yaml
[131/200][FAIL fp1] da guokta ásadusáj:dan guovte ásadusá (, ()) => da guokta ásadusáj:[da guovte ásadusáj] (msyn-numphrase-sggen)
Test 131 - Passes: 1, Fails: 2, Total: 3

dan guovte ásadusá= de to institusjoner

albbas commented 4 months ago

Jeg har lagt SUBSTITUTE (&feiltagg) (co&feiltagg) TARGET SUGGEST; til alle numphrase regler nå. Problemet er at jeg får en retting for alt, men også en egen retting hvor bare numeralen rettes og en egen retting hvor bare demonstrativen rettes. Så nå failer yaml stort.

Test 131/200: Aktisasjbarggo Sámedikke, bájkálasj sámesiebrij ja da guokta ásadusáj gaskan, Duoddara ráfe ja Lullesáme dávvervuorkká, luluj luondulasj.
----------
DEV-msyn-numphrase-PASS.yaml
[131/200][PASS tp] da guokta ásadusáj:dan guovte ásadusá (, ()) => da guokta ásadusáj:[dan guovte ásadusá] (msyn-numphrase-sggen)
DEV-msyn-numphrase-PASS.yaml
[131/200][FAIL fp1] da guokta ásadusáj:dan guovte ásadusá (, ()) => da guokta ásadusáj:[dan guokta ásadusáj] (msyn-numphrase-sggen)
DEV-msyn-numphrase-PASS.yaml
[131/200][FAIL fp1] da guokta ásadusáj:dan guovte ásadusá (, ()) => da guokta ásadusáj:[da guovte ásadusáj] (msyn-numphrase-sggen)
Test 131 - Passes: 1, Fails: 2, Total: 3

dan guovte ásadusá= de to institusjoner

Testen har denne oppmerkingen: {da guokta ásadusáj}£{dan guovte ásadusá}

divvun-checker gir tre forskjellige forslag: dan guokta ásadusáj, da guovte ásadusáj, dan guovte ásadusá, men testen godtar bare det første forslaget.

Om alle forslagene er riktige, må testoppsettet fikses. Om forslagene er feil, må reglene strammes opp.

❯ echo Aktisasjbarggo Sámedikke, bájkálasj sámesiebrij ja da guokta ásadusáj gaskan, Duoddara ráfe ja Lullesáme dávvervuorkká, luluj luondulasj. | divvun-checker -a tools/grammarcheckers/smj.zcheck -n smjgram|jq .

{
  "errs": [
    [
      "da guokta ásadusáj",
      51,
      69,
      "msyn-numphrase-sggen",
      "msyn-numphrase-sggen",
      [
        "dan guokta ásadusáj"
      ],
      "msyn-numphrase-sggen"
    ],
    [
      "da guokta ásadusáj",
      51,
      69,
      "msyn-numphrase-sggen",
      "msyn-numphrase-sggen",
      [
        "da guovte ásadusáj"
      ],
      "msyn-numphrase-sggen"
    ],
    [
      "da guokta ásadusáj",
      51,
      69,
      "msyn-numphrase-sggen",
      "msyn-numphrase-sggen",
      [
        "dan guovte ásadusá"
      ],
      "msyn-numphrase-sggen"
    ]
  ],
  "text": "Aktisasjbarggo Sámedikke, bájkálasj sámesiebrij ja da guokta ásadusáj gaskan, Duoddara ráfe ja Lullesáme dávvervuorkká, luluj luondulasj."
}
ilm024 commented 4 months ago

Bare et forslag er riktig, og det er det som får PASS, de to med FAIL i testen er feil.

De to som er feil har rett retting på hvert sitt enkeltord (num og dem), men siden det bare retter ett ord alene, blir frasen feil. Gramcheck foreslår derfor en hel feil frase som retting.

Jeg tror reglene er bra, men det er noe feil med sammenkoblingen etter fjerning av COERROR

ilm024 commented 4 months ago

Eller, sammenkoblinga fungerte ikke helt som det skulle med COERROR, men uten er det blitt værre.

unhammer commented 4 months ago

Eg ser kva som skjer. Det er &feiltaggar både på det sentrale og ikkje-sentrale ordet, men berre det eine har relasjon til det andre.

I koden antok eg at ikkje-sentrale ord ikkje skulle ha &feiltagg, berre co&feiltagg. Men det ser ut som det er mogleg å bruka relasjonane til å gjetta seg til kva som skal vera det sentrale, t.d. i ditt eksempel med

"<da>"
        "dat" Pron <smj> <smj> Dem Pl Nom <W:0.0> &msyn-numphrase-sggen ID:7
        "dat" Pron <smj> <smj> Dem <W:0.0> Sg Gen SUGGEST ID:7
:
"<guokta>"
        "guokta" Num Sg Acc <W:0.0> &msyn-numphrase-sggen ID:8
        "guokta" Num <W:0.0> Sg Gen SUGGEST ID:8
        "guokta" Num Sg Nom <W:0.0> &msyn-numphrase-sggen ID:8
:
"<ásadusáj>"
        "ásadus" N <smj> <smj> Sem/Org Pl Gen <W:0.0> &msyn-numphrase-sggen ID:9 R:$3:7 R:$2:8 R:LEFT:7 R:LEFT:8
        "ásadus" N <smj> <smj> Sem/Org <W:0.0> Sg Gen SUGGEST ID:9 R:$3:7 R:$2:8 R:LEFT:7 R:LEFT:8
:

så går relasjonane frå ásadusáj, så då tar me det som sentralt og ser på dei andre orda som vedheng.


Eg var litt redd for at det ikkje kom til å gå pga. du kan jo i prinsippet enda opp med kryssande relasjonar viss du har to ulike forslag der det eine bruker RIGHT og det andre LEFT:

"<soaitá>"
    "soaitit" V IV Ind Prs Sg3 @+FMAINV &syn-soahtit-vfin+inf ID:2 R:RIGHT:3
    "soaitit" V IV Ind Prs @+FMAINV Sg1 &syn-soahtit-vfin+inf SUGGEST ID:2 R:RIGHT:3
    "kánske" Adv &syn-kánske SUGGEST ID:2 R:RIGHT:3
: 
"<boađán>"
    "boahtit" V IV Ind Prs Sg1 @+FMAINV &syn-soahtit-vfin+inf ID:3 R:LEFT:2
    "boahtit" V IV Inf &syn-soahtit-vfin+inf SUGGEST ID:3 R:LEFT:2
    "boahtit" V IV Ind Prs Sg1 &syn-kánske SUGGEST ID:3 R:LEFT:2

men her kan jo me eigentleg berre ignorera R:LEFT. Eg legg opp ei ny utgåve av libdivvun straks som ordnar dette.

ilm024 commented 4 months ago

Det fungerer som det skal nå etter oppdateringen, takk for hjelpa!