Den 5. feb. 2009 kl. 00.02 skrev Petter Reinholdtsen:
[Karl Ove Hufthammer]
Eg forstår ikkje heilt kva du er på jakt etter.
Jeg er ute etter en måte å måle opplevd kvalitet på stavekontrollen. Jeg har opplevd andre som mener at den frie stavekontrollen for bokmål og nynorsk er av dårlig kvalitet, uten at det er helt klart for meg hvorfor de mener dette,
Eg er av dei som meiner at kvaliteten på i det minste den nynorske ordlista er for dårleg. Eg meiner det av fleire grunnar: - stavekontrollen taklar ikkje samansette ord, slik at mange av dei orda eg skriv får raud strek - stavekontrollen er usystematisk når det gjeld bøyinga av enkeltord, slik Karl Ove Hufthammar har peikt på i det siste - stavekontrollen har allment for dårleg dekning, dvs for få ord - stavekontrollen kjem med store mengder irrelevante forslag (ja, eg veit dette er subjektivt, men eg kjem attende til ein måte å måla dette på)
Viss ein lagar ein metrikk på dette, vil jo det gje forskjellige resultat avhengig av korleis du vel måla det. Viss du for eksempel vel å seia at stavekontrollen vert betre jo fleire ord han har, vil du få at kvaliteten heila tida aukar. Viss du målar talet på rettstava ord (korleis skulle du gjera det?), vil du då andre resultatet. Viss du målar talet på ord med fullstendige bøyingar, får du andre resultatet. Viss du målar kor raskt stavekontrollen er (i snitt / beste fall / verste fall) får òg andre resultatet. Det heile vil minna meir på trylling og tulling med tal.
Dette er ikkje relevant argumentasjon. Det er heilt rett at mengda ord ikkje automatisk heng i hop med kvaliteten på stavekontrollen, og det er jo sjølvsagt(?) at ein stavekontroll skal ha med alle bøyingane av eit ord? (For norsk kan ein diskutera om ein skal ha med alle slags genitivar.) Og ein må gå ut i frå at alle orda i ein stavekontroll er korrekte - det er jo heile poenget med ein stavekontroll ;)
Men det er jo ikkje slik at det er uråd å måla kvaliteten på ein stavekontroll. Det finst litteratur om dette i fleng. Det viktigaste å måla er:
- kor mange skrivefeil i ein tekst som blir oppdaga kontra dei som ikkje blir oppdaga - kor mange korrekt skrivne ord som blir merka som skrivefeil
Dette er enkle og deskriptive tal, som direkte seier noko om kvaliteten på stavekontrollen. Dei blir på fagspråket pakka inn i to termar:
- precision/presisjon: mengda påståtte skrivefeil i høve til faktiske skrivefeil (dvs det er eit mål på kor overivrig stavekontrollen er - stavekontrollen skal ikkje påstå at noko er feilskrive om det ikkje er det) - recall/gjenfinning: mengda av korrekt identifiserte skrivefeil jf med mengda faktiske skrivefeil, dvs eit mål på kor flink stavekontrollen er til å finna skrivefeil
Dette er dei to grunnleggjande måla, og det er i prinsippet enkelt å rekna ut kvaliteten på ein stavekontroll etter denne metrikken. Sjå lenger ned for detaljar om ein praktisk implementasjon av denne metrikken.
I tillegg finst det andre kvalitetsmål ved ein stavekontroll:
- kor mange av dei korrekt identifiserte feila får eit korrekt forslag? - kor mange av desse orda har korrekt forslag mellom dei fem første? - kor mange av desse orda har korrekt forslag på fyrste plass? - kor mange forslag finst det i snitt pr korrekt identifisert feilskriving? Maks tal på forslag?
Her òg er det mogleg å rekna precision/recall. Grunninnsikten er at den aktuelle korrigeringa bør koma som fyrste forslag, eller nær toppen, og at irrelevante forslag er støy, og jo mindre støy, jo betre. Både Hunspell og Aspell er svært dårlege når det gjeld støynivået - eg får ofte lange lister med forslag, der dei fleste er irrelevante. Det er sjølvsagt grenser for kva som er mogleg å filtrera vekk så lenge ein ikkje kan bruka resten av setninga til å bestemma aktuelle ordklasser, men etter å ha prøvd og arbeidd med ganske mange stavekontrollmotorar, er skilnaden mellom dei stor sjølv med denne avgrensinga.
Kort sagt, forslaga er brukargrensesnittet til stavekontrollen, og jo oftare brukaren opplever at stavekontrollen kjem med relevante/ korrekte forslag, jo meir positivt opplever brukaren stavekontrollen, og omvendt. Med mange irrelevante forslag vil den subjektive/opplevde kvaliteten til stavekontrollen typisk gå ned.
og hvis vi hadde en måte å kvantivisere opplevd kvalitet så hadde vi en målestokk som kunne brukes for å se om vi klarer å forbedre stavekontrollen eller ikke.
Sjå over. I praksis har det vore vanskeleg å utføra desse målingane nøyaktig. Det er to grunnar til det: det har ikkje funnest eit ope og tilgjengeleg korrekt-korpus, der alle skrivefeil er identifiserte i lag med korrigeringane deira, og for det andre har det ikkje funnest verkty for å kunna utføra testane automatisk og på ein reproduserbar måte.
Det å samla inn og byggja opp eit korrekt-korpus er tidkrevjande og lite spennande, men heilt naudsynt. Det som kompliserer biletet er sjølvsagt at ein stavekontroll vil gje ulike resultat for ulike typar tekst. Ein bør derfor helst byggja opp eit korrekt-korpus med fleire ulike teksttypar.
Til no har det vore tungvint å testa stavekontrollar automatisk sjølv om ein har hatt tilgang på eit korrekt-korpus, og det har vore vanskeleg å jamføra resultata frå ulike stavekontrollar. Men i Divvun- prosjektet har vi no laga ein testbenk som kan ta ulike typar testdata som inndata, ein kan spesifisera kva for stavekontroll ein vil testa, og testbenken produserer ein testrapport i XML som representerer testresultata frå ulike typar stavekontrollar i same format. Vi kan altså testa fleire ulike stavekontrollar på nøyaktig same data, og jamføra resultata, med berre éin kommando pr stavekontroll.
Eit eksempel på ein slik testrapport finn de på:
http://www.divvun.no/doc/proof/spelling/testing/Markansluska-pl-forrest-sme-...
Det som ville vore meir fornuftig er å forbetra kvaliteten på *prosessen*.
Sjølvsagt bør ein sjå over prosessen. Eg håper eg kan koma tilbake til det i ein annan e-post.
So vil kvaliteten på resultatet betra seg av seg sjølv.
Det er her jeg gjerne skulle sett at vi hadde en måte å måle at resultatet ble bedre, i stedet for å tro og håpe at det blir bedre hvis vi gjør endringer vi tror er av det gode.
Dette er fullt mogleg, og vi kan (og vil gjerne) hjelpa til med det. Her er forslaget mitt:
(temporært: - nokre av dykk får svn-konto for svn-servaren vår - vi har ikkje hatt tid til å få svn-servaren til å funka som vi vil, og noko av materialet vårt har opphavsrettsklausular knytta til seg, eller er skjerma av kontraktar, derfor trengst det ein svn-konto til vi har fått anonym svn til å funka etter planen.)
- de samlar inn korpus for norsk (nb og nn), tekstane bør helst vera public domain, og ikkje korrekturlesne tidlegare, heller ikkje med stavekontroll - de korrekt-merker korpusa - dersom de bruker vår standard for dette (sjå http://www.divvun.no/doc/proof/spelling/testing/error- markup.html), kan vi automatisk konvertera til ein XML-representasjon, og derifrå til inndata for testbenken - vi køyrer testen med siste versjon av stavekontrollen dykkar, og publiserer resultatet på heimesida vår
Ein må rekna med fleire omgangar med testing, retting og ny testing - ofte ser ein ikkje alle skrivefeil i korpuset, og må leggja til fleire korrekt-merke etter å ha studert testmaterialet.
NB!!! For ein fungerande korrekt-test (gullstandardtest) er det absolutt strengt forbode å bruka resultata til å leggja til manglande ord i ordlista! Det er det same som å "fiksa" testen, og gjer korrekt- dokumentet ubrukbart.
Etter at vi har eit bra korrekt-korpus, er det enkelt å køyra testen på nytt med ein ny versjon av stavekontrollen, og jamføra med den gamle versjonen. Tilsvarande er det like enkelt å jamføra ein versjon basert på ordlista de har no, med ein versjon (berre) basert på ord frå ordbanken.
På lengre sikt arbeider eg i lag med Arbeidsgruppa for språkteknologi i Norden, ei arbeidsgruppe i Nordisk språkråd, med å få til meir systematiske og jamførande testar av ulike språkkontrollverkty, i fyrste omgang stavekontrollar, på tvers av språk, og for fleire parallelle verkty for kvart språk. Det er altså eit mål å få ein uavhengig og jamførande test av t.d. norske stavekontrollar: MS Word, Aspell, Hunspell, iSpell, m.fl. - alle som finst tilgjengelege.
Med testing på tvers av språk er det meininga at vi skal samla inn testmateriale med så like eigenskapar som råd for kvart språk, og køyra same slags verkty på alle språka, t.d. alle dei nordiske MS- stavekontrollane, alle Aspell, osb. På det viset håper vi å få fram om det er systematiske skilnader i kvaliteten på verktya avhengig av kva språk det gjeld, men som burde vera uavhengig av grammatiske skilnader mellom språka - t.d. skilnader i storleiken på ordforrådet/ dekningsgrad/precision&recall, i forslagsmekanismen, i fart, m.m.
I tillegg til at vi reknar med å læra oss ein del av ein slik test, håper vi òg at det vil spora dei ulike miljøa til å arbeida med å auka kvaliteten på verktya dei produserer.
Beste helsing Sjur N. Moshagen Samediggi · Sametinget Prosjektleiar for Divvun-prosjektet http://www.divvun.no/ http://www.samediggi.no/ +358-9-49 75 29 (a) +358-505 634 319 (m)