LingvoHelpilo & EspGram - VISL
LingvoHelpilo & EspGram - VISL
LingvoHelpilo & EspGram - VISL
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