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

divvun-checker does not give same speller output as the corresponding bash pipe #13

Closed snomos closed 5 years ago

snomos commented 6 years ago

The following command:

$ echo 'Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat.' | tools/grammarcheckers/modes/smegram8-gc.mode

gives the following output for the misspelled word + context:

"<ja>"
    "ja" CC <W:0.0000000000> <sme> @CNP #16->16
: 
"<8>"
    "8" Num Arab Sg Nom <W:0> <sme> #17->17
"<.>"
    "." CLB <W:0> #18->18
:  

"<romssa>"
    "Romsa" N Prop Sem/Plc Sg Acc <W:19.7939> <WA:9.79395> <spelled> "<Romssa>" <doubleSpaceBefore> <sme> &double-space-before &typo &SUGGESTWF #1->1
    "Tromsa" N Prop Sem/Plc Sg Acc <W:21.8594> <WA:11.8594> <spelled> "<Tromssa>" <doubleSpaceBefore> <sme> &double-space-before &typo &SUGGESTWF #1->1
: 
"<fylkkas>"
    "fylka" N Sem/Org Sg Loc <W:0.0000000000> <sme> #2->2

Running the same text through divvun-checker with the same pipeline gives a different result:

$ echo 'Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat.' | divvun-checker -a tools/grammarcheckers/se.zcheck -n smegram
{"errs":[["romssa",96,102,"typo","Čállinmeattáhus",["ruossa","russa","ruvssa","Romssa","rossá","Tromssa","momssa"]],["2012s",168,173,"typo","Čállinmeattáhus",["2012:s"]],[".",196,197,"no-space-after-punct-mark","[SE] Missing space",[]]],"text":"Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat."}

There are two differences:

I have used the latest code of hfst, sme - hm, but not libdivvun. Could that be it?

snomos commented 6 years ago

I have used the latest code of hfst, sme - hm, but not libdivvun. Could that be it?

I updated the libdivvun code and installed it, and got the same results, so no, that was not it. What about vislcg3? I will update that one as well.

unhammer commented 6 years ago

I get

{
  "errs": [
    [
      "8.  romssa",
      92,
      102,
      "double-space-before",
      "[SE] Double space",
      [
        "8. romssa"
      ]
    ],
    [
      "2012s",
      168,
      173,
      "typo",
      "Čállinmeattáhus",
      [
        "2012:s"
      ]
    ]
  ],
  "text": "Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat."
}

(after sending it through jq . for pretty-printing)

with Tino's apt packages

* giella-sme Version: 0.1.0+s171566-1~sid1
* divvun-gramcheck Version: 0.2.0+g385~bacb2ab2-2~bionic1
* hfst Version: 3.15.0+g3678~701048a4-1~bionic1
snomos commented 6 years ago

Strange - how come we get so different results?

snomos commented 6 years ago
  • giella-sme Version: 0.1.0+s171566-1~sid1

That version is way too old 😄— a lot of things have happened lately, could you try again with the latest source code in svn? Also, what's your output of the mode script mentioned in the OP?

snomos commented 6 years ago

It turned out that I hadn't updated all my code myself - after regenerating all the modes files, the mode command above now gives the same output as the divvun-checker, which is unfortunate – the speller suggestions we had earlier were much better 😮

"<8>"
    "8" Num Arab Sg Nom <W:0> #17->17
"<.>"
    "." CLB <W:0> #18->18
:  

"<romssa>"
    "ruossa" N G3 Sem/Obj Sg Gen <W:14.2031> <WA:13.2031> <spelled> "<ruossa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "ruossa" N G3 Sem/Obj Sg Gen Allegro <W:14.2031> <WA:13.2031> <spelled> "<ruossa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "russa" N G3 Sem/Hum Sg Gen <W:16.3018> <WA:15.3018> <spelled> "<russa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "russa" N G3 Sem/Hum Sg Gen Allegro <W:16.3018> <WA:15.3018> <spelled> "<russa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "ruksa" N Sem/Dummytag Sg Gen <W:16.3018> <WA:15.3018> <spelled> "<ruvssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "ruksa" N Sem/Dummytag Sg Gen Allegro <W:16.3018> <WA:15.3018> <spelled> "<ruvssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "Romsa" N Prop Sem/Plc Sg Gen <W:19.7939> <WA:9.79395> <spelled> "<Romssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "rossái" A Sem/Hum Sg Gen <W:21.3018> <WA:15.3018> <spelled> "<rossá>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "Tromsa" N Prop Sem/Plc Sg Gen <W:21.8594> <WA:11.8594> <spelled> "<Tromssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "momsa" N Sem/Money Sg Gen <W:22.3555> <WA:12.3555> <spelled> "<momssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
    "momsa" N Sem/Money Sg Gen Allegro <W:22.3555> <WA:12.3555> <spelled> "<momssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
: 
"<fylkkas>"
    "fylka" N Sem/Org Sg Acc PxSg3 <W:0.0000000000> @<OBJ #2->2
: 
"<ja>"
    "ja" CC <W:0.0000000000> @CVP @CNP #3->3

Cf what we get from divvun-checker:

{
  "errs": [
    [
      "romssa",
      96,
      102,
      "typo",
      "Čállinmeattáhus",
      [
        "ruossa",
        "russa",
        "ruvssa",
        "Romssa",
        "rossá",
        "Tromssa",
        "momssa"
      ]
    ],
    [
      "2012s",
      168,
      173,
      "typo",
      "Čállinmeattáhus",
      [
        "2012:s"
      ]
    ],
    [
      ".",
      196,
      197,
      "no-space-after-punct-mark",
      "[SE] Missing space",
      []
    ]
  ],
  "text": "Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat."
}

It is still different from what you get, but I suspect that you will get the same when you have the latest sme code.

unhammer commented 6 years ago

så problemet er utanfor libdivvun?

snomos commented 6 years ago

Det kan sjå slik ut, men eg vil gjerne ha det stadfesta av deg, dvs at du testar med nyaste av alt, og då helst får akkurat same resultat som meg.

unhammer commented 6 years ago

make[3]: *** No rule to make target '../../src/filters/remove-Use_Disamb-strings.hfst', needed by 'analyser-mt-gt-desc.hfst'. Stop.

snomos commented 6 years ago

Fixed in svn rev 172096.

unhammer commented 6 years ago
$ echo 'Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat.' | tools/grammarcheckers/modes/smegram8-gc.mode

gir

"<ja>"
        "ja" CC <W:0.0000000000> @CNP #16->16
:
"<8>"
        "8" Num Arab Sg Nom <W:0> #17->17
"<.>"
        "." CLB <W:0> #18->18
:

"<romssa>"
        "ruossa" N G3 Sem/Obj Sg Gen Allegro <W:14.1992> <WA:13.1992> <spelled> "<ruossa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "ruossa" N G3 Sem/Obj Sg Gen <W:14.1992> <WA:13.1992> <spelled> "<ruossa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "russa" N G3 Sem/Hum Sg Gen Allegro <W:16.2969> <WA:15.2969> <spelled> "<russa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "russa" N G3 Sem/Hum Sg Gen <W:16.2969> <WA:15.2969> <spelled> "<russa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "ruksa" N Sem/Dummytag Sg Gen <W:16.2969> <WA:15.2969> <spelled> "<ruvssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "ruksa" N Sem/Dummytag Sg Gen Allegro <W:16.2969> <WA:15.2969> <spelled> "<ruvssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "Romsa" N Prop Sem/Plc Sg Gen <W:19.7842> <WA:9.78418> <spelled> "<Romssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "rossái" A Sem/Hum Sg Gen <W:21.2969> <WA:15.2969> <spelled> "<rossá>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "Tromsa" N Prop Sem/Plc Sg Gen <W:21.8555> <WA:11.8555> <spelled> "<Tromssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "momsa" N Sem/Money Sg Gen <W:22.2832> <WA:12.2832> <spelled> "<momssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "momsa" N Sem/Money Sg Gen Allegro <W:22.2832> <WA:12.2832> <spelled> "<momssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "roksa" N Sem/Dummytag Sg Gen <W:25.2969> <WA:15.2969> <spelled> "<rovssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
        "roksa" N Sem/Dummytag Sg Gen Allegro <W:25.2969> <WA:15.2969> <spelled> "<rovssa>" <doubleSpaceBefore> &double-space-before &typo &SUGGESTWF #1->1
:
"<fylkkas>"
        "fylka" N Sem/Org Sg Acc PxSg3 <W:0.0000000000> @<OBJ #2->2

her, og

$ echo 'Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat.' | divvun-checker -a tools/grammarcheckers/se.zcheck|jq .
{
  "errs": [
    [
      "romssa",
      96,
      102,
      "double-space-before",
      "[SE] Double space",
      []
    ],
    [
      "2012s",
      168,
      173,
      "typo",
      "Čállinmeattáhus",
      [
        "2012:s"
      ]
    ],
    [
      ".",
      196,
      197,
      "no-space-after-punct-mark",
      "[SE] Missing space",
      []
    ]
  ],
  "text": "Tabealla 1 čájeha ahte geatkemáddodat lea mealgat badjel máddodatmeari guovlluin 5, 6, 7 ja 8.  romssa fylkkas ja Finnmárkkus leat measta golmma geardde eanet geatkkit 2012s go máddodatmearis leat."
}

– eg får ulik output frå deg på romssa; det er vel fordi det er to alternative feiltypar på same streng, så det er ikkje definert kva som skal gjelda, viss eg hugsar rett.

snomos commented 6 years ago

Ok. Bra at det er nesten likt 🙂 Burde det definerast korleis systemet skal handtera to feil på same ord? I utgangspunktet ville eg ha valt stavekontrollen fyrst, men reint teknisk blir det ganske ad-hoc - det er jo ingen skilnad på &typos og &noko-anna. Forslag?

unhammer commented 6 years ago

Standard CG-metode er jo å bruka MAP (&typo) i staden for ADD viss ein vil sørga for at seinare reglar ikkje kan legga til fleire mapping-taggar på ordet …

snomos commented 5 years ago

Eg har framleis problem med dette, no med ei anna testsetning.

Fyrst kjem resultatet med ei modes-fil - der er alle stavekontrollforslaga med slik dei skal:

$ echo "Sáráhkkás lean veaháš politihkken" | grammarcheckers/modes/smegram.mode | jq .
{
  "errs": [
    [
      "Sáráhkkás",
      0,
      9,
      "typo",
      "Ii leat sátnelisttus",
      [
        "Sáráhkás",
        "Sáráhkáš",
        "Sáráhká",
        "Sáráhkát",
        "Sáráhkkái",
        "Sáráhkkán",
        "Sáráhkká"
      ],
      "Čállinmeattáhusat"
    ]
  ],
  "text": "Sáráhkkás lean veaháš politihkken\n"
}

Deretter same setning og same lingvistikkressursar, men no med divvun-checker - no er det berre tre forslag att, og det korrekte Sáráhkás har forsvunne:

$ echo "Sáráhkkás lean veaháš politihkken" | divvun-checker -n smegram -a grammarcheckers/se.zcheck | jq .
{
  "errs": [
    [
      "Sáráhkkás",
      0,
      9,
      "typo",
      "Ii leat sátnelisttus",
      [
        "Sáráhká",
        "Sáráhkkái",
        "Sáráhkkán"
      ],
      "Čállinmeattáhusat"
    ]
  ],
  "text": "Sáráhkkás lean veaháš politihkken"
}

Til slutt korleis det ser ut i LibreOffice, med akkurat same se.zcheck-fil - no står vi att med berre eitt forslag (og framleis feil):

Skjermbilde 2019-03-14 kl  23 49 59

Kva skjer?

unhammer commented 5 years ago

Eg får ikkje json frå smegram.mode, men viss eg legg på -j får eg tre forslag:

$ unzip -qo se.zcheck && \
   mkdir -p modes && \
   divvun-gen-sh -g -d modes pipespec.xml && \
  sed '$s/$/ -j/' modes/smegram.mode >modes/smegram-j.mode && \
  chmod +x modes/smegram-j.mode &&
  echo "Sáráhkkás lean veaháš politihkken" | modes/smegram-j.mode | jq .
modes/smespell.mode
modes/smespell-dev.mode
modes/smegram-dev.mode
modes/smegram-nospell.mode
modes/smegramspell-linda.mode
modes/smegram.mode
{
  "errs": [
    [
      "Sáráhkkás",
      0,
      9,
      "typo",
      "Ii leat sátnelisttus",
      [
        "Sáráhká",
        "Sáráhkkán",
        "Sáráhkkái"
      ],
      "Čállinmeattáhusat"
    ]
  ],
  "text": "Sáráhkkás lean veaháš politihkken\n"
}

Dette er med se.zcheck-fila som ligg på gtweb, -rw-r--r-- 1 root root 49M Mar 13 08:19 /usr/share/voikko/4/se.zcheck

snomos commented 5 years ago

https://filebin.net/mvvnmqgal0 inneheld no den se.zcheck-fila eg nytta i går til alle tre testane. Eg skal byggja ei ny * .zcheck-fil, og sjå om eg framleis får same resultat.

snomos commented 5 years ago

https://filebin.net/mvvnmqgal0 inneheld nyaste versjon no, i form av se-ny.zcheck.

unhammer commented 5 years ago

Eg får igjen tre forslag frå se-ny.zcheck:

unzip -qo ~/Nedlastingar/se-ny.zcheck && \
   mkdir -p modes && \
   divvun-gen-sh -g -d modes pipespec.xml && \
   sed '$s/$/ -j/' modes/smegram.mode >modes/smegram-j.mode && \
   chmod +x modes/smegram-j.mode && \
   echo "Sáráhkkás lean veaháš politihkken" | modes/smegram-j.mode | jq .
modes/smespell.mode
modes/smespell-dev.mode
modes/smegram-dev.mode
modes/smegram-nospell.mode
modes/smegramspell-linda.mode
modes/smegram.mode
{
  "errs": [
    [
      "Sáráhkkás",
      0,
      9,
      "typo",
      "Ii leat sátnelisttus",
      [
        "Sáráhká",
        "Sáráhkkán",
        "Sáráhkkái"
      ],
      "Čállinmeattáhusat"
    ]
  ],
  "text": "Sáráhkkás lean veaháš politihkken\n"
}

Kva får du med den kommandoen? Er det ein forskjell på di json-mode-fil og det du får med kommandoen over?

snomos commented 5 years ago

Eg får det same:

$ unzip -qo ~/Nedlastingar/se-ny.zcheck && \
>    mkdir -p modes && \
>    divvun-gen-sh -g -d modes pipespec.xml && \
>    sed '$s/$/ -j/' modes/smegram.mode >modes/smegram-j.mode && \
>    chmod +x modes/smegram-j.mode && \
>    echo "Sáráhkkás lean veaháš politihkken" | modes/smegram-j.mode | jq .
modes/smegramspell-linda.mode
modes/smespell.mode
modes/smegram.mode
modes/smespell-dev.mode
modes/smegram-dev.mode
modes/smegram-nospell.mode
{
  "errs": [
    [
      "Sáráhkkás",
      0,
      9,
      "typo",
      "Ii leat sátnelisttus",
      [
        "Sáráhká",
        "Sáráhkkái",
        "Sáráhkkán"
      ],
      "Čállinmeattáhusat"
    ]
  ],
  "text": "Sáráhkkás lean veaháš politihkken\n"
}

Og framleis same sak med divvun-checker:

$ echo "Sáráhkkás lean veaháš politihkken" | divvun-checker -n smegram -a Nedlastingar/se-ny.zcheck | jq .
{
  "errs": [
    [
      "Sáráhkkás",
      0,
      9,
      "typo",
      "Ii leat sátnelisttus",
      [
        "Sáráhká",
        "Sáráhkkái",
        "Sáráhkkán"
      ],
      "Čállinmeattáhusat"
    ]
  ],
  "text": "Sáráhkkás lean veaháš politihkken"
}

Så det er bra - då er ting konsistente på kommandolina. Så kopierte eg se-ny.zcheck slik at fila vart tilgjengeleg for LibreO:

$ sudo cp Nedlastingar/se-ny.zcheck /usr/local/share/voikko/4/se.zcheck

og starta LO på nytt. Og no er alt som det skal:

Skjermbilde 2019-03-18 kl  12 25 15

Dei manglande forslaga i LO trur eg er pga disambigueringa vart forvirra av setninga — med nøyaktig same setning så funkar det likt både stader (teksten i LO hadde med § Sáráhkás tidlegare, for å merkja av kva som er den forventa rettinga).

Kva som gjorde at det var skilnad på kommandolina mellom ulike variantar veit eg ikkje - men bra at det i alle fall er konsistent no.

Denne historia viser at vi treng meir systematisk og konsistent (og repeterbar) testing. Eg har alt prata med Børre om det, men om du har forslag så høyrer eg gjerne om det.

Uansett, avsluttar denne lusmeldinga no.