På skolelinux-samlingen i helgen, samt i dag, har jeg flikket på et script som kan brukes til å oppdatere stavekontrollen med nye ord fra no.speling.org. Det fungerer nå for ganske mange ord. Scriptet trenger ca. 700 MiB RAM for å kjøre.
Scriptet ligger i CVSen til spell-norwegian, under scripts/speling2words. For å bruke det, kjør
make update-from-spelingorg speling-new.nb speling-new.nn
Det vil endre norsk.words, og legge inn bokmål- og nynorsk-ordene fra no.speling.org som mangler i norsk.words. Deretter vil den lage litt statistikk over differansen. En slik kjøring vil i dag gjøre endringer på godt over 800 000 ord i norsk.words, og jeg har ikke mulighet til å gjøre annet enn stikkprøver av om resultatet blir korrekt.
Jeg har lagt inn kode i scriptet for å unngå at ord med trippelkonsonant legges inn, da det ikke fungerer som det skal for slike ord. Det er en god del andre ord som heller ikke tas inn. Se i speling-new.nb og speling-new.nn for å se en liste med ord som ikke er overført.
Her er utskrift fra en testkjøring:
% make update-from-spelingorg speling-new.nb speling-new.nn scripts/speling2words > update-from-spelingorg.tmp && mv update-from-spelingorg.tmp norsk.words GET http://tyge.sslug.dk/~korsvoll/nb.speling.org/htdocs/status/words.disputed.g... | gunzip|sort > speling-disputed.nb sort words.nb > tmp-nb sort speling-good.nb speling-disputed.nb > tmp-nb-new-full comm -13 tmp-nb speling-good.nb > speling-new.nb comm -23 tmp-nb tmp-nb-new-full > speling-missing.nb nye på speling.no: 12821 speling-new.nb mangler på speling.no: 3347 speling-missing.nb omstridt på speling.no: 269 speling-disputed.nb rm tmp-nb tmp-nb-new-full GET http://tyge.sslug.dk/~korsvoll/nn.speling.org/htdocs/status/words.disputed.g... | gunzip|sort > speling-disputed.nn sort words.nn > tmp-nn sort speling-good.nn speling-disputed.nn > tmp-nn-new-full comm -13 tmp-nn speling-good.nn > speling-new.nn comm -23 tmp-nn tmp-nn-new-full > speling-missing.nn nye på speling.no: 8763 speling-new.nn mangler på speling.no: 368 speling-missing.nn omstridt på speling.no: 43 speling-disputed.nn rm tmp-nn tmp-nn-new-full %
Som en kan se her er det 12821 bokmålsord som ikke ble overført fra no.speling.org til norsk.words. Jeg foreslår t vi ser på dem senere, og i første omgang konsenterer oss om de ordene som legges inn i norsk.words. Jeg har ikke sjekket inn oppdatert norsk.words, da jeg som sagt ikke er sikker på om alle ordene som blir lagt inn skal være med.
Jeg håper flere kan ta en titt og sjekke at scriptet fungerer som det bør.
Vennlig hilsen,
Petter Reinholdtsen wrote:
På skolelinux-samlingen i helgen, samt i dag, har jeg flikket på et script som kan brukes til å oppdatere stavekontrollen med nye ord fra no.speling.org. Det fungerer nå for ganske mange ord. Scriptet trenger ca. 700 MiB RAM for å kjøre.
Scriptet ligger i CVSen til spell-norwegian, under scripts/speling2words. For å bruke det, kjør
make update-from-spelingorg speling-new.nb speling-new.nn
Det vil endre norsk.words, og legge inn bokmål- og nynorsk-ordene fra no.speling.org som mangler i norsk.words. Deretter vil den lage litt statistikk over differansen. En slik kjøring vil i dag gjøre endringer på godt over 800 000 ord i norsk.words, og jeg har ikke mulighet til å gjøre annet enn stikkprøver av om resultatet blir korrekt.
Jeg har lagt inn kode i scriptet for å unngå at ord med trippelkonsonant legges inn, da det ikke fungerer som det skal for slike ord. Det er en god del andre ord som heller ikke tas inn. Se i speling-new.nb og speling-new.nn for å se en liste med ord som ikke er overført.
Flott! Men jeg lette etter speling-new.nb og speling-new.nn, men fant dem ikke. Hvor ligger de?
I den forbindelse noen spørsmål:
Hva trenger egentlig et slikt overføringsskript å gjøre?
Man må ta med alle ordene unntatt de med: * «status: -» * trippelkonsonant * enkeltbokstaver/-tegn * rene endelser
Er det noe mer? Hva krever ordlista norsk.words for å være fornøyd? Jeg ser den har noe metainformasjon, men foreløpig brukes vel ikke den til noe?
Jeg tittet også i OOo-ordlistene, og ser det er metainformasjon der av typen /j etter ordene. Noen som vet hva dette betyr og om den brukes til noe? *.aff-filene ser jeg inneholder endelser av alle mulige slag, vil det si at orddelingsalgoritmen i OOo bruker .aff-fila sammen med /j og slikt for å avgjøre hvordan ord kan settes sammen? Hvis ikke så er vel denne informasjonen foreløpig helt overflødig?
Hilsen Axel
[Axel Bojer]
Flott! Men jeg lette etter speling-new.nb og speling-new.nn, men fant dem ikke. Hvor ligger de?
De lages når du kjører 'make speling-new.nb speling-new.nn'.
I den forbindelse noen spørsmål:
Hva trenger egentlig et slikt overføringsskript å gjøre?
Man må ta med alle ordene unntatt de med:
- «status: -»
- trippelkonsonant
- enkeltbokstaver/-tegn
- rene endelser
Er det noe mer?
Jeg valgte et annen tilnærming. Scriptet går igjennom alle ordene i URL:http://tyge.sslug.dk/~korsvoll/nb.speling.org/htdocs/status/words.good.gz og URL:http://tyge.sslug.dk/~korsvoll/nn.speling.org/htdocs/status/words.good.gz, og legger dem inn i listen over ord. Sjekker at ordene ser fornuftige ut i dette steget. Deretter går scriptet igjennom source-filen og ser etter WORD, STATUS og COMPOSITE-WORD, og oppdaterer orddelingsmarkører for alle ordene som allerede ble funnet i norsk.words og words.good.
Hva krever ordlista norsk.words for å være fornøyd? Jeg ser den har noe metainformasjon, men foreløpig brukes vel ikke den til noe?
Dagens byggesystem krever formatet som er beskrevet i toppen av norsk.word. Hva som er kravet fra ispell, aspell, myspell og hunspell kan jeg ikke svare på.
Jeg tittet også i OOo-ordlistene, og ser det er metainformasjon der av typen /j etter ordene. Noen som vet hva dette betyr og om den brukes til noe? *.aff-filene ser jeg inneholder endelser av alle mulige slag, vil det si at orddelingsalgoritmen i OOo bruker .aff-fila sammen med /j og slikt for å avgjøre hvordan ord kan settes sammen? Hvis ikke så er vel denne informasjonen foreløpig helt overflødig?
/j er ikke meta-info. Det er ordendelsesinfo. Les nb.aff.in for å se hva /j betyr. Let etter 'flag *j:'. Tenk på det som komprimering, der ordene Volvo, Volvoene, Volvoen, Volvoer, Volvos og Volvoens slås sammen til Volvo/AEGJ. Du kan bruke ispell til å ekspandere en slik komprimert versjon:
% echo Volvo/AEGJ | ispell -d nb -e Volvo Volvoene Volvoen Volvoer Volvos Volvoens %
Jeg sjekket inn oppdatering av alle ord som både fantes i norsk.word og på speling.org, slik at de er markert med henholdsvis B og *. Gjør at ordklassifiseringen gjør et godt steg forover. Har ikke lagt til nye ord ennå, da jeg tror vi bør se over scriptet for å redusere sjansen for at vi legger inn mer enn vi skal.
Vennlig hilsen,