06.08.2013 Views

LingvoHelpilo & EspGram - VISL

LingvoHelpilo & EspGram - VISL

LingvoHelpilo & EspGram - VISL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>LingvoHelpilo</strong> & <strong>EspGram</strong><br />

­ The Backend<br />

Eckhard Bick<br />

University of Southern Denmark & GrammarSoft<br />

eckhard.bick@mail.dk


Framework<br />

<strong>VISL</strong> (University project 1996- )<br />

– language technology & grammar teaching<br />

– 28 languages<br />

– analysers, parsers, teaching tools, CALL games<br />

GramTrans (Commercial project 2006- )<br />

– machine translation<br />

– dynamic dictionaries<br />

– proofing tools<br />

Lingvohelpilo (2007- )<br />

– spell and grammar checking for Esperanto<br />

– financed by Esperanto Lingvohelpilo Studies 2011 Foundation


Outline<br />

1. The analyser/parser (<strong>EspGram</strong>)<br />

a) dictionary<br />

b) disambiguation grammar (CG)<br />

c) syntactic trees<br />

2. The spell and grammar checker (Lingvohelpilo)<br />

a) Interface<br />

b) Error types<br />

Lingvohelpilo 2011


Introduction:<br />

Esperanto as a designer language<br />

planned language, designed to be easy to lean and flexible<br />

highly regular morphology<br />

clearly perceived morphemes match linguistic categories<br />

almost one-on-one: tagger ≈ morph. analyzer<br />

atypically low lexical ambiguity (1.12 readings per nonname<br />

word)<br />

free word order, syntactic complexity<br />

almost completely free affixation, compounding and word<br />

class changes<br />

Lingvohelpilo 2011


The morphological analyzer<br />

provides input to the CG disambiguator, based on an NLP<br />

lexicon and morphological inflexion and affixation rules<br />

vir in o j n<br />

'vir' (= man) (female) noun plural accusative<br />

[root] [affix] [PoS] [number] [case]<br />

-o (noun), -a (adjective), -e (adverb), -i (infinitive/base verb)<br />

-j (plural), -n (accusative), -s (finite verb)<br />

-t- (passive participle), -nt- (active participle)<br />

-as, -at-, -ant- (present tense), -is, -it-, -int- (past tense), -os, -ot-, -ont- (future<br />

tense)<br />

-u (imperative), -us (conditional)<br />

Lingvohelpilo 2011


lexicon creation<br />

Valency and semantics<br />

– manual lexicography<br />

– corpus work<br />

– live morphological analysis<br />

-ig ( transitivity): kolorigi (to colour), sanigi (to cure), lum igi (to light<br />

-i ĝ ( intransitivity): malsani ĝ i (fall ill), prezidenti ĝ i (becom e president)<br />

-ul1 ( human, person): krim ulo (crim inal), ĝsa<br />

ulo (w ise man)<br />

-in (female), -id (offspring), ge- (couple), -ist (professional) ...<br />

-uj ( container), -ej ( place), ĵ<br />

-a (), -il () ....<br />

Lingvohelpilo 2011


valency or semantic category<br />

(tokens / types)<br />

Coverage of affix-based<br />

classification<br />

affix affix token<br />

count<br />

affixmarked<br />

token %<br />

affix type<br />

count<br />

affixmarked<br />

token %<br />

transitivity (50,358 / 12,160) -ig 4,659 9.3 % 1,856 15.3 %<br />

intransitivity (34,889 / 8,675) -iĝ 4,252 12.2 % 1,495 17,2 %<br />

ergative (9,688 / 1,649) -iĝ 1.584 16.4 % 825 50,0 %<br />

container (1,192 / 126) -uj 66 5.5 % 27 21.4 %<br />

place (12,400 / 1,806) -ej 1,614 13.0 % 344 19.0 %<br />

tool (713 / 179) -il 345 48.4 % 99 55.3 %<br />

... human<br />

(19,503 / 3,017)<br />

(not counting human groups )<br />

-ul<br />

-in<br />

-id<br />

-ist<br />

-an<br />

-estr<br />

-nj, -ĉj ge-, bo-<br />

-ant, -int, -ont<br />

all human<br />

1,673<br />

1,311<br />

27<br />

2,941<br />

845<br />

294<br />

70 (62, 8)<br />

79 (74, 5)<br />

3,158<br />

10,398<br />

8.6 %<br />

6.7 %<br />

0.1 %<br />

15.1 %<br />

4.3 %<br />

1.5 %<br />

0.4 %<br />

0.4 %<br />

16.2 %<br />

53.3 %<br />

522<br />

237<br />

8<br />

621<br />

196<br />

55<br />

7 (3,4)<br />

0<br />

719<br />

2,365<br />

17.3 %<br />

7.9 %<br />

0.3 %<br />

20.6 %<br />

6.5 %<br />

1.8 %<br />

0.2 %<br />

0.0 %<br />

23.8 %<br />

78.4 %<br />

hit rate higher for types than for tokens, Lingvohelpilo reflecting 2011 the productive nature of Esperanto<br />

affixation and the frequency of the un-affixed core vocabulary


CG (Constraint Grammar – ”Perkonteksta Gramatiko”, Karlsson 1990, 1995):<br />

– birdo N S NOM @SUBJ><br />

– grandaj ADJ P NOM @N


Syntactic CG<br />

● addition of syntactic function hypotheses: 644 MAP rules (+ 29 ADD)<br />

● iterative levels of contextual disambiguation rules<br />

● 541 REMOVE rules<br />

● 212 SELECT rules<br />

● implicit structure --> dependency arrows<br />

@SUBJ> (left subject), @


plenaj sintaksaj arboj<br />

Numbered and edge-labelled dependency arcs from<br />

daughter (function) to mother (form)<br />

– @FS-N< -> (¤NPHEAD) IF (L) TRANS:()<br />

BARRIER:(PR,IMPF,)<br />

– @>A -> (ADJ,ADV,DET,NUM,PCP1,STA) IF (R)<br />

NOTHEAD=(.*@>A)<br />

The CG dependency annotation is used as such in<br />

Lingvohelpilo, but can be filtered into other annotation<br />

schemes (MALT, Conll), or transformed into classical PSG<br />

trees, xml structures etc.<br />

Lingvohelpilo 2011


En [en] PRP @ADVL> #1->5<br />

la [la] ART @>N #2->4<br />

tria [tria] ADJ S NOM @>N #3->4<br />

grupo [grupo] N S NOM @P< #4->1<br />

kuni ĝis [kunigxi] V IMPF @FS-STA #5->0<br />

tiuj [tiu] PRON DET P NOM @5<br />

$, #7->0<br />

kiuj [kiu] PRON DET P NOM @SUBJ> #8->9<br />

malaprobas [malaprobi] V PR @FS-N< #9->6<br />

ĉion [cxio] PRON INDP S ACC @9<br />

$, #11->0<br />

kio [kio] PRON INDP S NOM @SUBJ> #12->13<br />

okazis [okazi] V IMPF @FS-N< #13->10<br />

en [en] PRP @13<br />

la [la] ART @>N #15->17<br />

katolika [katolika] ADJ S NOM @>N #16->17<br />

eklezio [eklezio] N S NOM @P< #17->14<br />

dum [dum] PRP @13<br />

la [la] ART @>N #19->22<br />

pasintaj [pasi] V PCP AKT IMPF ADJ P NOM @>N #20-<br />

>22<br />

dudek [dudek] NUM P @>N #21->22<br />

jaroj [jaro] N P NOM @P< #22->18<br />

STA:fcl<br />

=fA:pp<br />

==H:prp("en")<br />

==DP:np<br />

En<br />

===DN:art("la") la<br />

===DN:adj("tria" S NOM) tria<br />

===H:n("grupo" S NOM) grupo<br />

=P:v-fin("kunigxi" IMPF VFIN)<br />

=S:np<br />

kuni ĝis<br />

==H:pron-dem("tiu" DET P NOM)<br />

==,<br />

==DN:fcl<br />

tiuj<br />

===S:pron-rel("kiu" DET P NOM)<br />

===P:v-fin("malaprobi" PR<br />

VFIN)malaprobas<br />

===Od:np<br />

kiuj<br />

====H:pron("cxio" INDP S ACC)<br />

====,<br />

====DN:fcl<br />

ĉion<br />

=====S:pron-rel("kio" INDP S NOM) kio<br />

=====P:v-fin("okazi" IMPF VFIN) okazis<br />

=====fA:pp<br />

======H:prp("en")<br />

======DP:np<br />

en<br />

=======DN:art("la") la<br />

=======DN:adj("katolika" S NOM) katolika<br />

=======H:n("eklezio" S NOM)<br />

=====fA:pp<br />

eklezio<br />

======H:prp("dum")<br />

======DP:np<br />

dum<br />

=======DN:art("la") la<br />

=======DN:v-pcp("pasi" AKT IMPF ADJ P NOM)<br />

pasintaj<br />

=======DN:num("dudek" P)<br />

Lingvohelpilo 2011<br />

=======H:n("jaro" P NOM)<br />

dudek<br />

jaroj


Lingvohelpilo 2011


Evaluation 1<br />

(Monato, 4.400 tokens, 3439 words)<br />

Recall Precision F-score<br />

Base form / lexeme 99.7 99.7 99.7<br />

PoS (part of speech, word class) 99.5 99.5 99.5<br />

Morphology / inflexion 99.7 99.7 99.7<br />

Syntactic function 93.4 90.9 92.1<br />

excellent morphological error rates (even lower than CG in general), also found<br />

in Warin's rule-based system for Eo (99.3% correct > 98.6% for TnT) --> due to<br />

specific traits of Esperanto morphology<br />

syntactic error rate higher than in similar CG systems (F-Score~5% for Danish,<br />

Portuguese, Spanish, Bick 2003, 2006, Recall 97-98% for ENGCG, Lingsoft<br />

2007, 98.5% Estonian CG, Müürisep & Uibo, 2005), but still good compared to<br />

probabilistic systems [for other languages]<br />

Lingvohelpilo 2011


Evaluation 2<br />

comparison with machine learning systems (CoNLL)<br />

– 80% (Basque) - 93% (English) correct functions,<br />

even with manually corrected morphological input<br />

comparison with other Esperanto systems<br />

– Warin (2004): PDP11 with similar morphology<br />

correctnes (99.3%), cp. probabilistic tagger (TnT)<br />

98.6% (though even those figures beat those for<br />

other languages)<br />

– Lin & Sung (2004): partial parsing TBL-PSG, not<br />

comparable: only sentences of 3-5 words, 1 in 30<br />

correct (?)<br />

Lingvohelpilo 2011


Reasons for the syntactic difficulties<br />

relatively free wordorder<br />

international community with first language interferences<br />

and/or preferences<br />

La? speciala komisiono de [la] sovetia registaro en<br />

1943 venis al la alia konkludo. (articles)<br />

Tiel la filmo estas duoble ĝuinda<br />

de esperantistoj.<br />

(both intensifier-modifier and complement)<br />

Nun jam planite estas, eksporti la filmon al la tuta<br />

mondo.<br />

(pre-location of participles)<br />

Lingvohelpilo 2011


Lingvohelpilo<br />

3 year project, funded by ESF, 5-6 people involved<br />

Goal: Spell- and grammar checker for Esperanto (online and<br />

integrated), with the following features<br />

– handles compounding and affixation<br />

– handles words that are correctly spelled but wrong in context<br />

– pedagogical framework: error classification with explanations<br />

– contextual ranking of correction suggestions<br />

Integration of <strong>EspGram</strong> parser to provide grammatical context<br />

Use of CG rules (vislcg3) to mark errors<br />

Internally, reuse the basic architecture of an existing (Danish)<br />

spell/grammar-checker also based on CG<br />

Collection of error examples, compilation of an error corpus<br />

Lingvohelpilo 2011<br />

Community testing, false positive testing


Graphical revision interface<br />

Lingvohelpilo 2011


Error marking with suggestions and<br />

explanations<br />

Lingvohelpilo 2011


fullform lexicon (phonetic lexicon) inflexion lexicon valency/semantics<br />

(error) word<br />

(error) text<br />

error<br />

list<br />

error<br />

list<br />

graphical similarity<br />

phonetic similarity<br />

comparator<br />

weighting system<br />

word fuser / splitter<br />

(error) word<br />

f90 list sugg.<br />

47 list sugg.<br />

w92 match<br />

s88 match<br />

.....<br />

<strong>EspGram</strong> 1<br />

Lingvohelpilo 2011<br />

tagger<br />

n sg<br />

n acc<br />

adj pl<br />

adv<br />

v pr<br />

v inf<br />

“kaĝo”<br />

“kaĉo”<br />

“kaŝo”<br />

<br />

<br />

<br />

<br />

<br />


context<br />

corr-1 analysis 1a<br />

analysis 1b<br />

corr-2 analysis 2<br />

corr-3 analysis 3a<br />

analysis 3b<br />

corr-4 analysis 4<br />

corr-5 analysis 5a<br />

analysis 5b<br />

CG mapping rules CG remove/select inflexion lexicon<br />

error map.<br />

malcerta<br />

@uppercase<br />

@compound<br />

@headstop<br />

@:suggest.<br />

disambigator<br />

<strong>EspGram</strong><br />

Analysis 1ab<br />

Analysis 2<br />

Analysus 3ab<br />

Analysis 5ac<br />

Analysis 5b<br />

Analysis 4<br />

error map.<br />

certa<br />

@vfin<br />

@inf<br />

@pl<br />

@acc<br />

<strong>EspGram</strong> 2<br />

Lingvohelpilo 2011<br />

generator<br />

comparator-ordered suggestions<br />

corr-5b<br />

inflex.<br />

1. suggestion<br />

2. suggestion<br />

3. suggestion<br />

4. suggestion<br />

.....


Grammar checker examples<br />

● ADD (%nom) TARGET ACC + @ACC> (s @>> BARRIER<br />

@NON->N) (*1 @SUBJ> BARRIER @NON->N OR KC OR<br />

KOMMA) (p () LINK NOT c @ACC OR @SC) ; #<br />

sentence-initial object recognized using verbal transitivity-marker,<br />

missing other object and existance of subject: Profundo vi povas<br />

altigi ...<br />

Lingvohelpilo 2011


orthography<br />

marko signifo ekzemplo<br />

: ... (vorto) propono de nova vortformo:<br />

(a) ortografia eraro<br />

(b) malgxusta vortelekto<br />

Lingvohelpilo 2011<br />

(a) espernatisto [esperantisto]<br />

(b) sur [en] mia retejo<br />

kostas 8 dolarojn po [por] metro (ADV->PRP)<br />

sxi estas amata far [de] cxiuj


Inflexion 1<br />

marko signifo ekzemplo<br />

pl, pl* 1 pluralo abaux virino [virinoj]<br />

sg, sg* singularo li estas junaj [juna]<br />

acc akuzativo li mangxis pomo [pomon]<br />

du jaroj [jarojn] antaux la milito<br />

sxi preferas la francan kiel dua lingvo [lingvon]<br />

nom nominativo cxeestas tie multajn naciajn tradukojn<br />

[al] mi estis donita trinkajxon [trinkajxo]<br />

pluvis sxtonojn [sxtonoj] sur ilin<br />

nom + al “dativo” Mi dankis lin [al li] la tujan reagon.<br />

1 cxe nombro-eraro en nominalfrazo, normale la reguloj komparas modifikatorojn (ADJ, DET) kaj kernojn (N), kaj<br />

plej ofte ne eblas certe diri kiu el la du estas erara, do ambaux estas markitaj. Tamen, pro la semantika pezo de la<br />

kerno, estas malpli versxajne ke estas gxi kiu adaptigxu al la modifikatoro. En tiu kazo, ni uzas asteriskon post la<br />

@sg aux @pl markoj.<br />

Lingvohelpilo 2011


Inflexion 2<br />

marko signifo ekzemplo<br />

inf->vfin finitivo (-as, -os, -is, -us)<br />

from infinitive<br />

abs->vfin finitivo (-as, -os, -is, -us)<br />

from participle small clause<br />

kredas ke religio esti [estis] la kreado de Dio<br />

Li rigardis televidon dum mangxi [dum li<br />

mangxis]<br />

Li ne povis skribi pro ne havi inkon [cxar li ne<br />

havis]<br />

La infanoj veninte hejmen, li povis trankviligxi<br />

(post kiam la infanoj venis hejmen)<br />

Farite/farita la laboro, ili iris hejmen (Post kiam<br />

ili faris la laboron, ...)<br />

is pasinteco (-is) antaux 50 jaroj en Euxropo preskaux ne ekzistas<br />

[ekzistis] ...<br />

li jxus venas [venis]<br />

us imago-formo (-us) skribunta viro, skributa letero, li estis skribunta<br />

(li estus skribinta)<br />

Lingvohelpilo 2011


Inflexion 3<br />

marko signifo ekzemplo<br />

inf infinitivo (-i) la politikistoj tion volas sxangxos [sxangi]<br />

cond ne-realo (-us) se mi estu [estus] ricxa, mi estus felicxa<br />

ita perfektiva aspekto Sxi estis naskata [naskita] la kvaran de januaro<br />

ata imperfektiva aspekto Sxi estis plu kaj plu amita [amata]<br />

La foiro estas cxiam vizitita [vizitata] de multaj<br />

homoj.<br />

inte adverba participo Post diri tion [Dirinte tion]<br />

akt aktiva (ne pasiva) formo Paroli estis finite de li [Li finis paroli]<br />

Lingvohelpilo 2011


Word classes<br />

marko signifo ekzemplo<br />

iu tabelvort-eraro cxio [cxiu] granda religio<br />

adv adverbo Estas normala [normale] ke ...<br />

Du jaroj antaux [antauxe] mi estis en Islando<br />

adj adjektivo Tio estas bone [bona].<br />

pripensi viroj kaj inoj interrilatoj<br />

noun substantivo ... por kiu cele [celo] ni pagos<br />

ordinal ordinala numeralo la 20 [20-a] jarcento<br />

refl mankanta refleksivo li preferas lian [sian] propran biciklon<br />

no-refl troa refleksivo sia [lia] edzino estis kisata de li<br />

Lingvohelpilo 2011 Sxi sentis, ke pluvas sur sin [sxin]


Affixes<br />

marko signifo ekzemplo<br />

ado -ado finajxo du monatoj de studi [studado] de Esperanto<br />

ig -ig transitiveco mallaulegxante [...legxigante] alkoholon<br />

Lingvohelpilo 2011<br />

lumita [lumigita]<br />

ul -ul substantivigo li estas genio [geniulo]<br />

DEL:ul duobla +HUM skribantulo [skribanto]<br />

virulo [viro]<br />

culture nacikulturaj influoj socialdefendo [socia monsubteno?]


“non-linguistic” orthography<br />

marko signifo ekzemplo<br />

lower minusklo en Hungara [hungara] popolarmeo<br />

upper majusklo en italio [Italio]<br />

comma mankanta komo maldekstre Sxi rakontis [,] ke sxi estis en Afriko.<br />

no-hyphen tro ligstreko cxi-tie (cxi tie)<br />

E-TYPE:dis erara kunskribo pied pilko [piedpilko] markita: pied=pilko<br />

E-TYPE:joined erara dis-skribo novaloko [nova loko]<br />

Lingvohelpilo 2011


insertion and removal of words<br />

marko signifo ekzemplo<br />

remove troa vorto en la mia domo [en mia domo]<br />

estas kostus multe da mono<br />

estas normale voki geamikojn kiel gefratoj<br />

la urbo de Novjorko [la urbo Novjorko]<br />

PREADD:.. (vorto) mankanta vorto maldekstre Vi volas veni? [Cxu vi volas veni?]<br />

interkonatigxi multajn amikojn [kun multaj<br />

amikoj]<br />

mi ne parolas cxinan [la cxinan]<br />

Mi dankis lin la tujan reagon [al li]<br />

PREADD:subject mankanta subjekto Mi diris, ke venu al mi [ke vi/li ... venu al mi]<br />

Sxi rakontis, ke [sxi] estis en Euxropo.<br />

@:... (vorto)<br />

@:BASE-... (bazo)<br />

malgxusta vortelekto<br />

(BASE transprenas la<br />

fleksivojn de la originalo)<br />

Lingvohelpilo 2011<br />

pri kiu subjekto vi diskutis? [temo]<br />

Lia heroeco tre sxatis al mi [tre placxis al mi]


syntax<br />

marko signifo ekzemplo<br />

clefting emfazo-strukturo uzata ekz. Tiu laboro mi pensas, keestas<br />

malfacila [mi<br />

en skandinavaj lingvoj pensas, ke tiu laboro estas malfacila]<br />

marko signifo ekzemplo<br />

normala uzo cxe kelkaj<br />

esperantistoj<br />

“molaj” eraroj<br />

Lingvohelpilo 2011<br />

skributa letero<br />

tiom forta kiom vi<br />

iomete da teo<br />

amata far cxiuj


Internet:<br />

http://beta.visl.sdu.dk<br />

(<strong>EspGram</strong> & Lingvilo)<br />

http://corp.hum.sdu.dk (CorpusEye)<br />

http://gramtrans.com (DeepDict)<br />

Lingvohelpilo 2011


Bibliography<br />

Birn, Jussi (2000) Detecting grammar errors with Lingsoft's Swedish grammar<br />

checker. In Nordgård, Torbjørn (ed.) NODALIDA '99 Proceedings from the 12th<br />

Nordiske datalingvistikkdager, p. 28-40. Trondheim: Department of Linguistics,<br />

University of Trondheim.<br />

Hagen, Kristin, Lane, Pia & Trosterud, Trond (2001) En grammatikkontrol for bokmål.<br />

In Vannebo, Kjell Ivar & Helge Sandøy (eds.) Språkknyt 3-2001, p. 6-9, 47. Oslo:<br />

Norsk Språkråd<br />

Karlsson, Fred, Voutilainen, Atro, Heikkilä, Jukka & Anttila, Arto (1995) Constraint<br />

Grammar: A language-independent system for parsing unrestricted text, p. 1-88. Berlin:<br />

Mouton de Gruyter.<br />

Lingvohelpilo 2011

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!