Sjur Nørstebø Moshagen:
Ja, det stemmer. Det eg reagerte på, var at ho inneheldt «bokstaven» þ, som me vel ikkje brukar på norsk, samt at store og små bokstavar sto hulter til bulter.
Må innrømme at jeg ikke vet hvordan bokstavlisten er satt sammen. Tror den ble kopiert fra en pakke andre har laget.
Det står nemnt i kommentaren over lista korleis ho er laga. Datagrunnlaget inneheld tydeligvis eit ord med ein þ, av éin eller annan grunn.
Truleg islandske (stad)namn, dei bør skrivast slik islendingane skriv dei, òg på norsk.
Ja, det kan vera (og ja, det bør dei).
Kan for øvrig melda at arbeidet med nynorskstavekontrollen min går godt. Eg arbeida litt på han i helga, og har no ein stavekontroll som kjenner att alle orda i Ordbanken, og som ser ut til å gje veldig gode forslag på feilstavingar. For eksempel er rette skrivemåtar av orda i feilstavingslista (som er på bokmål!) for det meste forslag 1, og nesten alltid blant dei 5 øvste.
Bra:)
Om eg forstod deg rett, bruker du Hunspell. Sidan vi har ferdig støtte for hunspell i testbenken vår, skulle det vore artig å testa stavekontrollen din der. Har du høve til å gjera han tilgjengeleg slik han er no, dvs utan samansetjingar, og berre med ordbanksorda inne?
Ja, det kan eg. Eg vil testa han litt meir sjølv først (forslagssyntaksen er langt frå so omfattande som han nok bør vera, sjølv om han fungerte fint på dei testane eg kjørte).
Det kan bli ein god referanse for kor dekkjande ordbanken er i høve til "vanleg tekst".
Det er for øvrig verdt å merka seg at Ordbanken enno inneheld ein del feiloppføringar grunna feil ved eksporten. Han vil altso dessverre godta nokre ord som ikkje er lovlige (som for eksempel «parantes»).
No gjenstår det hovudsaklig attkjenning av samansette ord, samt mykje testing. Dette krev ein del manuelt arbeid, for å unngå overgenerering, men eg er forsiktig optimistisk på at eg skal få i stand ein ganske brukbar stavekontroll.
Eg trur det er no du vil møta bøygen, dvs dei samansette orda. Det er fleire problem, og nokre av dei uløyselege innanfor Hunspell- formalismen. Her er ei kort liste over nokre av utfordringane:
- samansetjingsinformasjon er leksikalsk, dvs spesifikt for kvart
enkelt ord, sjølv om det finst klasser med ord som oppfører seg likt (substantiv på -ing, avleidde frå verb, skal alltid ha -s- på grensa til neste ord, -ing frå adjektiv skal ikkje ha det)
Ja. Den førebelse løysinga mi på dette er å gå gjennom alle orda, og markera om dei skal ha fuge-s, fuge-e, nullbinding eller ikkje kan inngå i samsettingar. Eg har no so vidt begynt på substantiva. Det er rundt 80 000 ord å gå gjennom manuelt, men det er overkommelig … :-/
Eg er fullt klar over at ei slik enkel tilnærming ikkje er fullgod, men ho vil uansett gje eit godt datagrunnlag å bygga vidare på.
- samansetjingsfugen (dvs -s-, -e- eller null) kan variera etter
posisjon i samansetjinga.
Ja, dette er eit stort problem. Det vert redusert *litt* ved at Ordbanken inneheld ein del samansette ord. Eksempelvis heiter det jo vinglas (utan fuge) men raudvinsglas (med fuge-s). Men sidan Ordbanken inneheld både ordet «vinglas» og ordet «raudvin», kan me laga stavekontrollen slik at for eksempel «vinglas», «vinglashaldar» og «raudvinsglas» vert godtatt, mens «vinsglas», «vinglasshaldar» og «raudvinglas» ikkje vert det.
(Men «raudvinglas» er jo òg i mykje bruk, so det bør kanskje godtakast likevel?)
- i norsk ortografi har vi ein regel som seier at der to like
sluttkonsonantar møter ein lik fyrstekonsonant i neste ord i ei samansetjing, så skal ein av dei tre like konsonantane ein då får strykast, eller ordgrensa skal gjerast synleg med ein bindestrek. Døme: buss+stasjon = busstasjon eller buss-stasjon, *ikkje* bussstasjon. Ein enkel og likefram regel for eit menneske, men heilt uråd for Hunspell - i det minste har ikkje ein svært dyktig datalingvist eg kjenner ikkje klart å få det til (men eg veit ikkje kor mykje han prøvde). Bindestrek(s?)varianten er sjølvsagt enkel, den andre derimot alt anna enn triviell i ein formalisme som Hunspell.
Eg veit ikkje om eg heilt forstår kva som er uoverkommelig. Den aller nyaste versjonen av Hunspell har direkte støtte for slik trippelkonsonant- redusering. Den føregår kort sagt ved at samansette ord med tre like bokstavar etter kvarandre i fugen får éin av bokstavane fjerna, eks.: topp + plassering = topplassering
(I tillegg ligg det jo alt inne nokre slike samansette ord, som «bussjåfør».)
- norsk (og svensk og dansk) har mange korte substantiv, som har ein
tendens til å laga store problem for samansetjingar. Fordi dei er korte, har dei lett for å maskera reelle skrivefeil som ei samansetjing av fleire korte ord.
Ja, dette har eg sett kan lett bli eit stort problem.
- ikkje opna for samansetjingar i det heile, berre leggja dei inn som
heile ord etter kvart som ein finn dei (dette prinsippet blir brukt av norske aviser, dvs at korrektursystemet Tansa, med litt intelligens på toppen for å analysera ukjende ord som potensielle samansetjingar; dette er i praksis det som òg gjeld ordlista som ligg til grunn for den norske stavekontrollen bygd på open kjeldekode, truleg mest av tradisjon og nedarva tekniske hindringar i iSpell m.fl.)
Akkurat. Dette er ikkje ei brukbar løysing, synest eg.
- opna for samansetjingar med ***maksimalt 2 ledd***, dvs "dodør",
men ikkje "dodørhandtak" (med mindre både "dodør" og "handtak" er lagt inn som enkeltord kvar for seg) - slik var stavekontrollen i MS Word fram til Word 97
Dette er heller ikkje bra. Samansette ord hugsar eg var eit stort problem i Word 97 (eg visste faktisk ikkje at dei var støtta i det heile). Men sjølv med ein slik implementering, der mange lovlige ord ikkje vert gjenkjende, er stavekontrollen *nyttig* (stavekontrollen i Word 97 var veldig nyttig for meg, og hjelpte meg til å retta mange skrivefeil).
Men eitt av måla er iallfall at stavekontrollen skal verta betre enn den i Word 97. :)
- opna for fri samansetjing, men med ei grense for kor korte ord som
blir akseptert i samansetjinga, rekna ut etter ein formel som tek omsyn til lengda på heile ordet, slik at korte ord kan laga samansetjingar i ord som i seg sjølv ikkje er spesielt lange eller har mange ledd, men blir avviste i lengre ord - dette er oppførselen i den svenske stavekontrollen for MS Word, og speglar ein reell tendens til at lange ord vanlegvis ikkje inneheld svært korte ord som ein del av samansetjinga
Det hørest interessant ut. Eg ser at nyaste versjon av Hunspell har støtte for ein heilt ny måte å definera samansette ord på (brukt for ungarsk), som kanskje kan brukast til dette. I første omgang har eg tenkt å bruka den gamle metoden, og seinare gå over til den nye (når eg har fått oversikta over avgrensingane til den gamle i praksis, samt fått lese meg opp og forstått den nye). Den nye metoden er òg under utvikling, og skal vera forbetra i neste versjon av Hunspell.
- opna for fri samansetjing, men med ei grense for kor korte orda kan
vera for å få lov til å vera del av ei samansetjing, typisk går grensa mellom 3 og 4 bokstavar, slik at ord på 3 bokstavar eller mindre ikkje blir aksepterte i samansetjingar, medan lengre ord blir aksepterte.
Ja, denne avgrensingane har eg tenkt å bruka, i utgangspunktet med grensa sett på 3 bokstavar.
Eit slikt system blir litt i stivaste laget, og må komplementerast med delvis å leggja inn vanlege samansetjingar av korte ord, og delvis opna for at spesifikke korte ord kan laga samansetjingar. - Dette er slik dei norske stavekontrollane i Word fungerer, men der fungerer det som sagt ikkje bra nok, fordi korte ord som er vanlege i samansetjingar ikkje vart godkjende, t.d. 'båt' ('ubåt' er derimot på 4 bokstavar, slik at eit ord som 'fiskebåt' ikkje blir akseptert, og får som forslag 'fiskeubåt' :/ ).
:)
Den *beste* strategien etter mitt syn, er å byggja vidare på det siste alternativet over, men komplettert med 2 ting: 1) grundige korpusstudiar, slik at ein får eit tydeleg bilete av kva for korte ord som er vanlege i samansetjingar; og 2) posisjonsbestemt samansetjing (korte ord er vanlege fyrst og sist i samansetjingar, midt inne i ei samansetjing er dei mindre sannsynlege, og er meir sannsynleg ein skrivefeil), slik at eit ord som 'båt' berre kan laga samansetjingar som 'fiskebåt' ('båt' står sist) eller 'båttur' ('båt' står fyrst). Etter ein slik strategi vil eit ord som 'fiskebåtflåte' *ikkje* bli godkjent, fordi 'båt' her står i midten (dersom ein legg inn 'fiskebåt' er det sjølvsagt ingen problem).
Med ein slik strategi trur eg at ein får det beste kompromisset mellom ein tilstrekkeleg dynamisk samamsetjingsmekanisme, utan at ein får alt for mykje (problematisk) overgenerering.
Hunspell har støtte for å seia om ord er lovlige eller ikkje inne i ord, men eg er meir i stuss for korleis me bør fastsetja kva ord det gjeld (utanom bruk av berre lengda på orda, då).
Hunspell har verkty for å handtera i det minste delar av ein slik strategi, men eg er usikker på om det går å implementera alt. Hunspell har derimot ikkje dei verktya vi treng for å handtera samansetjing i samisk, der det finst enno meir kompliserte mønster (t.d. at det fyrste ordet vanlegvis lagar samansetjing i nominativ, dvs vanleg grunnform, men det etterfylgjande ordet krev at det føregåande ordet står i genitiv eintal eller fleirtal - det er i praksis uråd for oss å formulera dette programmatisk i Hunspell). Vi kjem derfor truleg til å gje opp Hunspell, og satsa på ein ny stavekontroll vi sjølve kjem til å vera med på å utvikla (open kjeldekode, sjølvsagt).
Kunne ikkje ein idé heller vera å prøva å forbetra Hunspell til å støtta dette. Eller er oppbygginga av Hunspell so forskjellig at dette ikkje er mulig?