SamEst meeting 01.12.2015

Participants: Fran, Heiki, Heli, Jaak, Jack, Kadri, Sjur, Sulev, Tiina, Trond


  • FST
  • Estonian Oahpa
  • MT fin-est
  • MT fin-sme
  • Võro FST and Võro Oahpa
  • Articles
  • Next meeting


Network negation bug

nägema generates wrong forms. Why do not things behave? Priority union operation in fst seems to be broken. This may be related to epsilons and negation of network (low level fst that should work). Jaak has started reporting it and found there is already a bug report, probably about the same issue:


Also http://www.meso.ee/~jjpp/hfst-vs-xfst-testcase.tgz

Parallel forms

What to do with the parallel forms that are (almost) never used? We should tag them differently.

In January there was a command line for finding parallel forms. Look for the command line now. The wheel could be reinvented, albeit long.

Heiki-Jaan has been playing with the fst (making a toy fst) with the Apertium interface.

We have to look at the corpus to see what forms should be preferred. We should in theory have all of them, but in practice one form is used for one lemma and another form for another lemma.

Examples of parallel forms that have appeared in MT:

  1. Contraction: ei ole/pole
    1. olema+V+Pers+Prs+Ind+Neg: ole GI;
    2. ei+V+Neg#olema+V+Pers+Prs+Ind+Neg: pole GI;
  2. Emphaticness sinu/su
  3. ütelda/öelda
  4. nad/nemad
  5. väikese/väikse
  6. Plural forms: koeradele/koertele, küsimusesse/küsimusse, lapsile/lastele

tüngasid:tüng<n><pl><par> !!

York DUCK ;     ! York Yorki  Yorki Yorke
tüng:tüng  PIIM ;     ! tüng tünga tünga tüngasid
kuld:ku%{ll%}%{d%}%>%{i%}%{hyp%} PIIM ; ! kuld kulla kulda kuldasid (kuldi)

LEXICON DUCK          ! stable type (aktiivne muuttüüp) almost == TAUD, but final stop weak grade does not change 

%<n%>%<sg%>%<nom%>: # ;
%<n%>:%{WF%}%>i N_SG_SUBPARA ; ! sg gen + sg cases depending on it + pl nom
%<n%>%<sg%>%<par%>:%>i # ;     ! ducki
%<n%>%<sg%>%<ill%>:%>i # ;     ! ducki
%<n%>%<sg%>%<ill%>%+Use%/Hyp:%{WF%}%>i%>sse # ;
%<n%>:%>i%>de N_DE_PL_SUBPARA ;       ! pl gen + pl cases depending on it 
%<n%>%<pl%>%<par%>:%>e # ;     ! ducke
%<n%>%<pl%>%<par%>%+Use%/Rare:%>i%>sid # ; ! duckisid+Use/Rare

LEXICON PIIM   ! unstable type (passiivne muuttüüp) sepp, kaup, ...

%<n%>%<sg%>%<nom%>: # ;
%<n%>:%{W%}%>a N_SG_SUBPARA ; ! sg gen + sg cases depending on it + pl nom
%<n%>%<sg%>%<par%>:%>a # ;    ! piima
%<n%>%<sg%>%<ill%>:%>a # ;    ! piima
%<n%>%<sg%>%<ill%>%+Use%/Hyp:%{W%}%>a%>sse # ;
%<n%>:%>a%>de N_DE_PL_SUBPARA ;       ! pl gen + pl cases depending on it 
! pl par stem vowel (u, i, 0) is lexically determined and usage-wise tagged
! kingi, kingasid+Use/Rare vs. puudi+Use/Rare, puudasid
%<n%>%<pl%>%<par%>:%>%{a%}%>%{sid%} PL_PAR ;      ! piimasid, piimi+Use/Rare

Tag interpretation (by system):

  • +Use/Rare: Means: Discard in CG)
  • +Use/Hyp Means: Same as Err/Orth
  • Err/Orth: Orthographic error (but ignore the Academy when needed)
  • Use/NG: Do not generate
    • We have two forms for a single analysis, and one is dispreferred (dispreferred gets Use/NG)


  • +Use/NG instead of +Use/Hyp (??) and let +Use/Rare be a signal to CG
  • Use either lexica or flags ad lib for distinguishing between patterns

    Estonian Oahpa

    • Vasta-S is working. Testing to be done, more templates needed (now 4).
    • There has been comments on Vasta-S by Tiina and Kadri --> improvements.
    • Plan to show it to teachers at Tartu University in January

    Estonian Oahpa (Leksa, Morfa-S, Morfa-C) has been shown in schools.

    Note: Leksa should be developed more (student modeling).



      These problems thus to be fixed before starting on transfer rules:

      • generation errors (double + missing + lexicalised)

      Out of ~900 generation errors in texts/opik.fin.txt around 350 are of the type "stem is not found in the Estonian morphology".

           23 #Maria<np><sg><gen>    ^Maria/*Maria$
           13 #Helsinki<np><sg><ine>    ^Helsinki/*Helsinki$
            7 #ennen<adv>    ^ennen/*ennen$
            9 #tõepoolest<adv>      ^tõepoolest/tõde<n><sg><gen>+poolene<adj><sg><par>/tõde<n><sg><gen>+poolest<adv>/tõde<n><sg><gen>+pool²<n><pl><ela
            3 #tema<prn><sg><acc>    ^tema/*tema$ NB! not acc, but par !!
            3 #vabariik<n><sg><gen>    ^vabariik/vaba<adj><sg><nom>+riik<n><sg><nom>$
            2 #eeskujulik<adj><sg><nom>    ^eeskujulik/ees<adp>+kujulik<adj><sg><nom>/ees<adv>+kujulik<adj><sg><nom>$
            1 #pesema<vblex><pers><prs><ind><p3><sg>    ^pesema/*pesema$
            1 #autobuss<n><sg><gen>      ^autobuss/auto<n><sg><gen>+buss<n><sg><nom>/auto<n><sg><nom>+buss<n><sg><nom>$
            1 #Aafrika<np><sg><nom>    ^Aafrika/*Aafrika$
          <e><p><l>linja-auto<s n="n"/></l><r>autobuss<s n="n"/></r></p></e>
          <e><p><l>bussi<s n="n"/></l><r>buss<s n="n"/></r></p></e>
      $ echo pesema | hfst-lookup src/analyser-gt-norm.hfstol 
      pesema    pesema+?    inf
      echo 'tema+Pron+Sg+Par' | hfst-lookup generator-mt-gt-norm.hfst
      tema+Pron+Sg+Par        teda        0,000000
      $ echo tema | hfst-lookup src/analyser-gt-norm.hfstol 
      tema    tema+?    inf
      $ echo 'tema+Pron+Sg+Nom' | hfst-lookup src/generator-gt-norm.hfstol 
      tema+Pron+Sg+Nom    ta    0,000000
       buss+N:buss 22_I; ! (22_S -> +S) at: buss, bt: bussi, bn: bussi, btv: busse, b\
      autobuss+N:auto#buss 22_I; ! (22_S -> +S) at: buss, bt: bussi, bn: bussi, btv: busse, b\



      1. Stem is missing (Maria, pesema, tema, Aafrika)
      2. Stem can be formed by (sensible) dynamic compounding (vaba+riik)
      3. Stem can be formed with (not so) sensible dynamic compounding (auto+buss)


      Fran did sme-fin, with good results. The whole story was translated into colloquial Finnish with a WER of only 18.

      Duommá ja Máret on puutarhassa. On hyvä sää tänään, on tosi lämmin. Mut eilen oli tosi kylmä! Ne ei voinut leikkiä silloin ulkona. Duommá ja Máret tykkää leikkiä, ne leikkii aina yhdessä puutarhassa ison talon edessä.
      Duommá on pieni poika ja se on kuuden vuoden vanha. Pieni tyttönen on sen sisko, se on viiden vuoden vanha. Duommálla on pieni koiranen, sekin on nyt puutarhassa. Koira tykkää leikkiä sen kahden lapsenkaa. Koira on tosi iloinen nyt.
      Onks Máretilla myös koira? Ei, Máretilla ei oo koira, sillä on kissa. Mut kissa on talossa, kissa nukkuu.
      Niiden äiti on talon sisälle kissankaa yhdessä, se katsoo ikkunan ulos ja näkee Duommá ja Máret leikkimässä. Duommá juoksee nopeasti ison vanhan puun luo, se lymyää Máretilla. Tiedätkö miks? Máret istuu ja sillä olla kädet silmien edestä. Se ei näe mitään ja se laskee. Miks se tekee niin? Ja myös Duommá tekee puun luota?
      Se on leikki. Kun Máret lopettaa laskemasta, se katsoo ympärille. Se etsii Duommá: minne se meni? Näitkö sen?
      Máret ei tiedä missä Duommá on. Se kysyy koirassa: "Näitkö Duommá?". Mut koira tietysti ei osaa puhua! Máret ei saa vastauksen kysymykseen. Ei kukaan saa vastauksen, kun puhuu koirienkaa!
      Máret katsoo äidissä lasin luota, sen äiti nauraa. Máret ajatellee, että se on nähnyt minne Duommá on mennyt: "Kerro muhun missä se on!", se sanoo äitiin. "Ei Máret, en voi kertoa suhun!", se vastaa. Vaikka se todennäköisesti tietää missä poika on, se ei haluu kertoa.
      Máret kävellee hitaasti puutarhan läpi. Se yrittää edelleen etsiä Duommá. Se katsoo pöydän alta ja tuolien alta, mut Duommá ei oo siellä. Se katsoo joka sijassa, mut ei se voi löytää Duommá.
      Sit se kuullee äänen, se tulee ison vanhan puun luota. Voisko olla Duommá? Tuossa se ääni on taas! Se kuunnellee huolellisesti. Ei oo lintu eikin minkäänlainen muu eläin. Nyt se kuullee se hyvin. Pitää olla Duommá!
      Sit se näkee pienin kädenkin ja kun se tulee lähemmäs, sit se näkee sen pään myös! Máret nauraa ja sanoo: "Löysin sut!". Ne molemmat on ilossa ja menee taloon, on aika syödä jokin ja juoda vähän veden!


      The result here is made by:

      • identical tags
      • 16 transfer rules

      The result is still in branches (it is a proof of concept, using private fst's both for sme and fin).

      The path forward for this is to port the results to nursery.


      Võru FST

        Vro Wikipedia: 45% of the wordforms are recognised (50% recognised on a small story)

        Missing words, top list from WP:

        1716 kihlkunnan kihlkunnan      +?
        1499 vai        vai     +?
        1183 perrä      perrä   +?
         672 Põlva      Põlva   +?
         665 kallendri  kallendri       +?
         603 Gregoriusõ Gregoriusõ      +?
         600 Rõugõ      Rõugõ   +?
         587 kõgõ       kõgõ    +?
         527 ärq        ärq     +?
         496 Eesti      Eesti   +?
         483 nink       nink    +?
         423 oja        oja     +?
         416 vällä      vällä   +?
         397 Kanepi     Kanepi  +?
         370 sõs        sõs     +?
         361 Räpinä     Räpinä  +?
         349 timä       timä    +?
         348 ni ni      +?
         345 Vahtsõliina        Vahtsõliina     +?
         331 nii        nii     +?
         324 kihlkunna  kihlkunna       +?
         306 liigaastagal       liigaastagal    +?
         305 põh        põh     +?
         298 Urvastõ    Urvastõ +?
         290 olliq      olliq   +?
         276 internetitunnus    internetitunnus +?

        Lexicon size:

            10970 src/morphology/stems/nouns_newwords.lexc
            9419 src/morphology/stems/nouns.lexc
            4885 src/morphology/stems/verbs_newwords.lexc
            4718 src/morphology/stems/verbs.lexc
             851 src/morphology/stems/adjectives.lexc
             336 src/morphology/stems/adverbs.lexc
             205 src/morphology/stems/abbreviations.lexc
              50 src/morphology/stems/exceptions.lexc
              50 src/morphology/stems/acronyms.lexc
              16 src/morphology/stems/punctuation.lexc
               9 src/morphology/stems/pronouns.lexc
               7 src/morphology/stems/conjunctors.lexc
               5 src/morphology/stems/quantifiers.lexc
               5 src/morphology/stems/interjections.lexc
               4 src/morphology/stems/adpositions.lexc

        Võru CG

        • Mariann Loosaar intends to work on Võro CG (morphological disambiguation) for her bachelor's thesis.

        Võru Oahpa

        • Sort words ending by -nõ to adjectives and substantives, add more words to semantic classes for Oahpa (Sulev)
        • Adjectives in Morfa-S have been set up. More forms needed to get it work properly.
        • Numra is fine, Leksa is fine
        • Morfa-S and Morfa-C - nouns and verbs are working but there are still lots of erroneous verb forms => work on the FST.

        Bug reports:

        • Leksa: tahtma책 ville, 책 ønske - should be å ville, å ønske Korean (chaeg = book) pro Norwegian å.
        • Numra is too picky on date formats. Look at the sloppifyer for sma, it has been commented out. 12.2 was not accepted, but should (probably) be.
        • Answer without q seen as correct (but should there be a hint mechanism)
        • Answer without palatalisation is optional (both kats and kats' and kats´ accepted)
          • cf. south saami ï (correct) vs. i (in use)

        Usage: Showed Oahpa in beginner's course, and in a lecture to Kindergarten teachers. Question from Tallinn, on e-learning.

        In the Estonian language technology conference in Tartu Sulev demonstrated the Oahpa, and it was favourably recieved.

        Treebank gold standard corpus

        A student has started to translate the Finnish treebank corpus (1700 sentences) into Estonian.

        These are three attempts at getting it right:

        ettei        ettei+Pcle+CS
        ettei        että+CSei+Neg+Act+Sg3
        ettei        että#ei+CS

        The fin fst has no tag +CSei declared in fin/src/morphology/root.lexc

        What it should be is:

        ettei        että+CS#ei+Neg+Act+Sg3

        Useful for weird analyses:

         huest -X print-space -X show-flags 

        (or hufin etc.)

        echo ettei | hufin -X print-space -X show-flags
        ettei        e t t e i +Pcle +CS        0.000000
        ettei        e t t ä # e i +CS        0.000000
        ettei        e t t ä +CS e i +Neg +Act +Sg3        0.000000

        alias huest

        alias huest='$HLOOKUP $GTHOME/langs/est/src/analyser-gt-desc.hfstol'

        source $GTHOME/gt/script/init.d/lookup-init.sh grep est in that file, etc.


        (to be looked at during forthcoming meetings)

        • Monitor the "before" (implementation) articles
        • Move article topics from "after" to "before"

        The "before" articles

        Contrastive/comparative tag/grammar article

        Heiki-Jaan, Trond, Fran, ...

        Article before spellchecker is out?

        Relevant for Võru

        The "after" articles

        The usual MT articles

        -- next year EAMT (deadline February?) for finest? Comparing SMT (Google), SMT (Europarl), RBMT (Apertium), GF?

        Looking not at BLEU/WER, but at robustness: What can you trust, on what grounds (the kissa - koer - example) Marilla on kissa, hänellä ei ole koiraa. Google : Marilla on kass , ta ei ole koera . Apertium (old) Maril on kass, tal ei ole koera.

        Oahpa implementation article

        The first work-in-progress article has appeared in the Nodalida'15 ICALL workshop proceedings. Link to the article: https://aclweb.org/anthology/W/W15/W15-1906.pdf More articles will be written after we have got Vasta-S working better.

        Oahpa usage article

        (when in use)

        Next meeting

        15. Dec. (Tromsø 0900) (Tartu 1000)

        Issues to look at: Status, Articles, Establishing subgroups.