giellalt / lang-sme

Finite state and Constraint Grammar based analysers and proofing tools, and language resources for the Northern Sami language
https://giellalt.uit.no
GNU General Public License v3.0
6 stars 1 forks source link

Talanalyse og taleining - eitt eller to segment? #19

Closed snomos closed 3 years ago

snomos commented 3 years ago

Slik den noverande talanalysatoren er organisert (i giella-shared?) så blir fleire ulike typar einingar analyserte i lag med talet:

echo '37 km' | hfst-lookup -q analyser-gt-desc.hfstol 
37 km   37 km+N

Dette er både problematisk og ufleksibelt i lengda. Det er problematisk for tekst-til-taleprosesseringa, fordi konverteringa frå tal og avstytting til tekst ikkje funkar eller blir alt for komplisert:

echo 'Man vuoras: 37 km' | ./testpipeline.sh 
"<Man>"
    "mii" Pron Indef Sg Gen <W:0.0> <sme>
: 
"<vuoras>"
    "vuoras" A Sem/Hum Attr <W:0.0> <sme>
"<:>"
    ":" CLB <W:0.0>
: 
"<37 km>"
    "37 km" N Sem/Measr <W:0.0> <sme>
:\n

Legg eg inn to mellomrom mellom 37 og km så blir resultatet slik:

echo 'Man vuoras: 37  km' | ./testpipeline.sh 
"<Man>"
    "mii" Pron Indef Sg Gen <W:0.0> <sme>
: 
"<vuoras>"
    "vuoras" N Sem/Hum Sg Nom <W:0.0> <sme>
    "vuorra" N Sem/Dummytag Sg Loc <W:0.0> <sme>
"<:>"
    ":" CLB <W:0.0>
: 
"<37>"
    "golbmalogičieža" Num Sg Nom "golbmalogičieža"phon
        "37" Num Arab Sg Nom <W:0.0> <sme>
:  
"<km>"
    "kilomehter" N Sg Nom "kilomehter"phon
        "km" N Sem/Measr ABBR Gram/IAbbr Sg Gen <W:0.0> <sme>
:\n

Og det er dette vi vil ha (altså konvertering til tekst).

Vil det ikkje vera mest fleksibelt for alle bruksområde at vi analyserer tal og forkortingar kvar for seg, og ikkje i lag? Dette gjeld òg sjølvsagt SMJ.

Kva synest de, @ilm024 @Trondtr @lynnda-hill @leneantonsen ?

Trondtr commented 3 years ago

Dette er ikkje bra.

Dei einaste måleeiningane som er med er lengemål, vekt er derimot ikkje med (sjå nedanfor).

Dette gjev ulik handsaming av 34 km og 34 kg. Det fører også til at 34 km/t (34 km/d?) blir analysert slik:

$ echo 34 km/t | hfst-tokenise -cg tools/tokenisers/tokeniser-disamb-gt-desc.pmhfst | vislcg3 -g src/cg3/disambiguator.cg3 "<34 km>" "34 km" N Sem/Measr "</>" "/" PUNCT "" "t" N Sem/Sign ABBR Gram/TAbbr Sg Gen "t" N Sem/Sign ABBR Gram/TAbbr Sg Nom :\n "<>" Adv

$ echo 34 kg hfst-tokenise -cg tools/tokenisers/tokeniser-disamb-gt-desc.pmhfst vislcg3 -g src/cg3/disambiguator.cg3 "<34>" "34" Num Arab Sg Acc

"" "kg" N Sem/Measr ABBR Gram/IAbbr Sg Acc :\n "<>" Adv

$ echo 34 km | hfst-tokenise -cg tools/tokenisers/tokeniser-disamb-gt-desc.pmhfst | vislcg3 -g src/cg3/disambiguator.cg3 "<34 km>" "34 km" N Sem/Measr :\n "<>" Adv

Fila det skjer i er (nok) denne:

src/fst/generated_files/smi-digits.lexc

Her er leksikonet:

LEXICON MEASUREMENTS <{ km}> MEASUREMENTS-tags ; < { m}> MEASUREMENTS-tags ; <{ dm}> MEASUREMENTS-tags ; <{ cm}> MEASUREMENTS-tags ; <{ mm}> MEASUREMENTS-tags ; < " ": {km}> MEASUREMENTS-errtags ; < " ": {m}> MEASUREMENTS-errtags ; < " ": {dm}> MEASUREMENTS-errtags ; < " ": {cm}> MEASUREMENTS-errtags ; < " ": {mm}> MEASUREMENTS-errtags ;

Vi bør kanskje prøve å spore opp dei eventuelt gode grunnane for LEXICON MEASUREMENTS, men slik det ser ut for meg ser dette heller ikkje bra ut frå ei lingvistisk side, der km er komplement til numerus på same måte som "34 láibbi". Uansett må vi jo rydde opp i skilnaden på km og kg og km/t.

snomos commented 3 years ago

Det ser ut som om det leksikonet er laga for grammatikkontrollen, for å fanga opp og retta manglande mellomrom. Eg legg inn ein tagg som seier at dette leksikonet berre skal brukast i grammatikkontrollen - då slepp vi slike analyser i andre samanhangar.

snomos commented 3 years ago

Jepp, no funkar det som det skal:

echo 'Man vuoras: 37 km' | ./testpipeline.sh 
"<Man>"
    "mii" Pron Indef Sg Gen <W:0.0> <sme>
: 
"<vuoras>"
    "vuoras" N Sem/Hum Sg Nom <W:0.0> <sme>
    "vuorra" N Sem/Dummytag Sg Loc <W:0.0> <sme>
"<:>"
    ":" CLB <W:0.0>
: 
"<37>"
    "golbmalogičieža" Num Sg Nom "golbmalogičieža"phon
        "37" Num Arab Sg Nom <W:0.0> <sme>
: 
"<km>"
    "kilomehter" N Sg Nom "kilomehter"phon
        "km" N Sem/Measr ABBR Gram/IAbbr Sg Gen <W:0.0> <sme>
:\n

Fiksa i https://github.com/giellalt/giella-shared/commit/d1bcb96801a0610648d130587210a2e3cb3e18f9.