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

No analysis for "#" at beginning of sentence #22

Open carges opened 3 years ago

carges commented 3 years ago

"#" doesn't get an analysis at the beginning of a sentence:

lang-sme>echo '#MeeToo-fáddagilkor lea álggahan govda ja dehálaš digaštallama servodagas'| hfst-tokenise --print-all --giella-cg --no-weights --unique tools/tokenisers/tokeniser-disamb-gt-desc.pmhfst | vislcg3 --grammar tools/tokenisers/mwe-dis.bin | cg-mwesplit | vislcg3 --grammar src/cg3/disambiguator.bin | vislcg3 --grammar src/cg3/korp.bin | vislcg3 --grammar src/cg3/dependency.bin
:#
"<MeeToo-fáddagilkor>"
    "MeeToo-fáddagilkor" ? @X #1->0
: 
"<lea>"
    "leat" V IV Ind Prs Sg3 @FAUX #2->0
: 
"<álggahan>"
    "álggahit" V TV Gram/3syll PrfPrc @IMV #3->2
: 
"<govda>"
    "govdat" A Sem/Hum Attr @>N #4->7
: 
"<ja>"
    "ja" CC @CNP #5->4
: 
"<dehálaš>"
    "dehálaš" A Sem/Dummytag Attr @>N #6->4
: 
"<digaštallama>"
    "digaštallan" N Sem/Act Sg Acc @<OBJ #7->3
: 
"<servodagas>"
    "servodat" N Sem/Org Sg Loc @<ADVL #8->3
:\n
Trondtr commented 3 years ago

Keine ahnung... This must be looked into.

carges commented 3 years ago

Here is another example:

lang-sme>echo '#SápmiMaid, Sandra Márjá West, NSR Dievasčoahkkinjođihangoddi čuovvula ášši.'| hfst-tokenise --print-all --giella-cg --no-weights --unique tools/tokenisers/tokeniser-disamb-gt-desc.pmhfst | vislcg3 --grammar tools/tokenisers/mwe-dis.bin | cg-mwesplit | vislcg3 --grammar src/cg3/disambiguator.bin | vislcg3 --grammar src/cg3/korp.bin | vislcg3 --grammar src/cg3/dependency.bin
:#
"<SápmiMaid>"
    "SápmiMaid" ? @X #1->0
"<,>"
    "," CLB #2->1
: 
"<Sandra>"
    "Sandra" N Prop Sem/Fem Attr @>N #3->4
: 
"<Márjá>"
    "Márjá" N Prop Sem/Fem Attr @>N #4->5
: 
"<West>"
    "West" N Prop Sem/Sur Sg Nom @SUBJ> #5->9
"<,>"
    "," CLB #6->5
: 
"<NSR>"
    "NSR" N Prop Sem/Org ACR Sg Gen @>N #7->8
: 
"<Dievasčoahkkinjođihangoddi>"
    "dievasčoahkkinjođihangoddi" N Sem/Org Sg Nom <cohort-with-dynamic-compound> @SUBJ> #8->5
: 
"<čuovvula>"
    "čuovvulit" V TV Gram/3syll Ind Prs Sg3 @FMV #9->0
: 
"<ášši>"
    "ášši" N G3 Sem/Semcon Sg Acc @<OBJ #10->9
"<.>"
    "." CLB #11->9
:\n
carges commented 3 years ago

It seems however, that is not just at the beginning of sentence. "#" is not analysed at all, even when alone:

echo '#'| hfst-tokenise --print-all --giella-cg --no-weights --unique tools/tokenisers/tokeniser-disamb-gt-desc.pmhfst | vislcg3 --grammar tools/tokenisers/mwe-dis.bin | cg-mwesplit | vislcg3 --grammar src/cg3/disambiguator.bin | vislcg3 --grammar src/cg3/korp.bin | vislcg3 --grammar src/cg3/dependency.bin

:#\n
snomos commented 3 years ago

Problemet er # i seg sjølv - vi nyttar det teiknet internt for å merkja av ordgrenser. Dermed er det meir styr å kunna analysera det som eit sjølvstendig teikn.

Det har ikkje vore eit problem tidlegare - teikn som # med fleire har berre hatt teknisk bruk som ikkje har vore frekvent i tekstane våre. Men med sosiale medium og tagging av alle slag har situasjonen endra seg.

Det grunnleggjande problemet er at vi nyttar vanlege teikn som spesialteikn i lexc. Eitt mogleg svar på det som eg har tenkt på er at vi bør endra alle slike spesialsymbol (typisk for ulike slag morfemgrenser) til alltid å vera eit multicharsymbol. Dvs noko i stil med:

Då treng vi ikkje handtera dei same teikna i vanleg tekst på ein spesiell måte, og problem som dei du har rapportert her vil forsvinna. Kva synest @Trondtr @flammie og andre?

(Det er ein stor jobb å endra alle, og tilsvarande endringar må gjerast i alle filter, så endringa må planleggjast nøye.)

flammie commented 3 years ago

mm, # er ganske mest overloaded symbol også i xerox systemer... den ligger allerede i giella-shared/all_langs/src/fst/stems/symbols.lexc som:

  %#:#7 Noun_symbols_never_inflected       ;

men #7 er ikke definiert i lang-sme/src/fst/root.lexc og også har ingen postprosessering giella-shared. Æ prövde bara med #7some en multichar og med #7 -> %# og fikk:

echo '#MeeToo-fáddagilkor lea álggahan govda ja dehálaš digaštallama servodagas' \
| hfst-tokenise --print-all --giella-cg --no-weights --unique tools/tokenisers/tokeniser-disamb-gt-desc.pmhfst \
| vislcg3 --grammar tools/tokenisers/mwe-dis.bin | cg-mwesplit \
| vislcg3 --grammar src/cg3/disambiguator.bin | vislcg3 --grammar src/cg3/korp.bin \
| vislcg3 --grammar src/cg3/dependency.bin
"<#>"
    "#" N Symbol @X #1->0
"<MeeToo-fáddagilkor>"
    "MeeToo-fáddagilkor" ? @X #2->0
: 
"<lea>"
    "leat" V IV Ind Prs Sg3 @FAUX #3->0
: 
"<álggahan>"
    "álggahit" V TV Gram/3syll PrfPrc @IMV #4->3
: 
"<govda>"
    "govdat" A Sem/Hum Attr @>N #5->8
: 
"<ja>"
    "ja" CC @CNP #6->5
: 
"<dehálaš>"
    "dehálaš" A Sem/Dummytag Attr @>N #7->5
: 
"<digaštallama>"
    "digaštallan" N Sem/Act Sg Acc @<OBJ #8->4
: 
"<servodagas>"
    "servodat" N Sem/Org Sg Loc @<ADVL #9->4
:\n

men vi kanske vill også ha hashtaggar som url-guesser eller likadant?

Trondtr commented 3 years ago

Ok, eg ser at du har sjekka inn #7 som Multichar. Så skriv du: #7 -> %# men kor er den regelen?

snomos commented 3 years ago

Den står alt i giella-shared/all_langs/src/filters/remove-word-boundary.regex. Så alt som må gjerast er å definera #7 som multichar i root.lexc, og så funkar det.

flammie commented 3 years ago

mm ja æ pushte den i lang-sme sin root.lexc og i giella-shared in i all_langs/src/filters/remove-infl_deriv-borders.regex fordi de var likadana reglar där för >7 osv.