bild
Skolan för
datavetenskap
och kommunikation

Stava 2.66 - stavningskontroll av svensk text

Stava utvecklades av Viggo Kann och Joachim Hollman inom projektet Algoritmer för svenska språkverktyg vid Nada, KTH, och har sedan utvecklats till att klara olika teckenkodningar och att utföra morfologisk analys. Den som vill använda programmet kan göra det på webben under adressen http://www.csc.kth.se/stava/. Det finns också som ett C-program med textgränssnitt som beskrivs nedan. Det finns däremot inget Windows- eller Macgränssnitt för Stava.

I KTH-nytt nr 6/96 publicerades en artikel om stava.

Källkod

Källkoden och lexikonet till Stava finns tillgängliga under GNU General Public Licence.

Det finns en tidigare version av Stava (version 1.8) som är helt fri för icke-kommersiell användning. Källkoden (skriven i ANSI-C) kan hämtas och kompileras för åtminstone Unix.

Unixversion

Detta beskriver hur Unixversionen av Stava anropas. Programmet är tillgängligt på Nadas datorer på KTH.

Syntax

stava -ox ordlista -ux lexikonfil -lx lexikonfil -w ord -AbBdDefhiknpqrStv278 filnamn

Beskrivning

stava läser texten i filnamn och kontrollerar stavningen mot den inbyggda ordlistan. Ord som inte finns med i ordlistan antas felstavade och skrivs ut på standard output. Om inget filnamn ges som argument sker inmatningen från standard input.

Det finns möjlighet att påverka uppförandet hos stava genom ett antal väljare. Bland annat kan egna eller specialiserade ordlistor adderas till den ursprungliga ordlistan.

En särskild .ord-fil kan associeras med filnamn genom att man lägger till suffixet .ord till filnamnet. Här kan ord som inte hör hemma i en egen ordlista placeras, t.ex. slangord som man inte vill ha införda i en ordlista men som man för den skull inte vill ha rapporterade som felstavade.

Väljare kan också ges i omgivningsvariabeln STAVA.

Normalt sett godkänns dels ord som finns i någon av Stavas ordlistor, dels ord som kan bildas genom att man lägger till en ändelse till ett ord som finns i ordlistan, och dels sammansättningar. Ändelsereglerna är utformade så att de i stort sett aldrig ska kunna godkänna falska böjningar, men i undantagsfall kan det inträffa (till exempel godkänns böjningsformen dekorna). Om man inte vill att Stava ska använda ändelseregler så ska man ge väljaren -A, och om man inte vill att Stava ska tillåta sammansättningar så ska man ge väljaren -S.

Väljare

-A
Använd inte ändelseregler som tillåter ovanligare böjningsformer.
-B
Tillåt inte generering av sammansatta ord som rättelseförslag.
-d
Ordlistan utökas med vanligt förekommande datatermer.
-D
Visa en morfologisk analys av ordet (sammansättningsled och böjningsregel).
-e
Ett ord rapporteras som felstavat bara en gång, även om samma stavfel förekommer flera gånger i filnamn.
-f
Ordlistan utökas med vanligt förekommande förkortningar.
-h
HTML-koder och MHTML-koder sållas bort.
-i
Inför ord som inte accepteras i .ord-filen. Den gamla .ord-filen ersätts med en ny fil där de nya orden lagts till.
-k
Kort lista med fel, samma som -efnd.
-lx lexikonfil
Använd angiven lexikonfil som systemets basordlista. x anger lexikonfilens typ, antingen I (ILlist), E (ELlist), F (FLlist), U (ULlist) eller S (SLlist). Om typen inte anges antas den vara E. Lexikonfilen (av typ I, E, F eller U) måste ha skapats med väljaren -u.
-n
Ordlistan utökas med vanligt förekommande namn.
-ox ordlista
Basordlistan utökas med orden i filen ordlista. x anger lexikonfilens typ, antingen I (ILlist), E (ELlist), F (FLlist) eller U (ULlist). Om typen inte anges antas den vara E.

Flera ordlistor kan ges men var och en måste föregås av väljaren -o. Filformatet är mycket enkelt: varje nytt ord i filen ordlista avslutas med radframmatning.

-p
Extra petig kontroll. Ett ord med konstiga bokstavsanhopningar godkänns inte även om det skulle godkännas av stavningsalgoritmen.
-q
Läs inte den till filnamn hörande .ord-filen.
-r
Ge rättelseförslag till varje felstavat ord.
-S
Tillåt inte sammansättningar av ord i ordlistan.
-t
Ordlistan utökas med alla fördefinierade TeX-ord och LaTeX-ord. Denna väljare gör att du inte får onödiga klagomål på svenska TeX-manuskript. Om väljaren -7 används samtidigt antas att filen har SweTeX-format.
-ux lexikonfil
Skapa en ny lexikonfil av angiven typ (I, E, F eller U) som innehåller den gamla inklusive alla tillvalda ordlistor och de ord som inte accepteras i inmatningsfilen. x anger lexikonfilens typ, antingen I (ILlist), E (ELlist), F (FLlist) eller U (ULlist). Om typen inte anges antas den vara E.

Detta är bara användbart då de tillvalda ordlistorna har blivit så stora att det tar tid att läsa in dem när stava startas. Lexikonfilerna är kodade och ganska stora.

-v
Invertera Stavas funktion, det vill säga skriv ut de ord som inte är felstavade.
-V
Tala om versionsnumret för Stava.
-2
Stava letar efter fler rättelseförslag än annars. Detta tar lite längre tid.
-7
Stava använder 7-bitskoder för svenska bokstäver.
-8
Stava använder 8-bitskoder för svenska bokstäver enligt ISO 8859-1 Latin-1.
-16
Stava använder Unicode enligt UTF-8 för svenska bokstäver. Detta är standardläget.

Filer

/usr/local/bin/stava
det körbara programmet,
/misc/tcs/language/lib/
katalog med lexikonfiler och tilläggsordlistor. Om man vill att Stava ska söka i någon annan katalog efter ordlistor kan man ange katalognamn (avslutat med snedstreck) i omgivningsvariabeln STAVALIB.

Lexikonfiler och suffixregler

Stavas basordlista är sammansatt av fyra stycken lexikonfiler och en lista med suffixregler.
ILlist
Lexikonfil med ord som alltid står för sig själva och inte kan få några böjningsändelser, till exempel jag.
ELlist
Lexikonfil med ord som kan stå för sig själva och kan stå som efterled i sammansättningar. På dessa ord kan man också tillämpa suffixregler.
FLlist
Lexikonfil med ord som kan stå som förled och mellanled i sammansättningar.
ULlist
Lexikonfil med undantag, det vill säga ord som aldrig ska godkännas.
SLlist
Lista med suffixregler.
Suffixreglernas syntax beskrivs här.

Bibliografi

Implementation aspects and applications of a spelling correction algorithm.
V. Kann, R. Domeij, J. Hollman, M. Tillenius
NADA report TRITA-NA-9813, 1998.
Postscript. PDF.
Äntligen kan datorn stava rätt
V. Kann
Artikel i KTH-nytt, 6/1996.
HTML.
Efficient generation and ranking of spelling error corrections
M. Tillenius
Nadarapport TRITA-NA-E9621, 1996.
Postscript.
De ryska böjningsmönstrens betydelse vid maskinell rättstavning
L. Engebretsen
B-uppsats i ryska, april 1997.
Pdf.
Detection of spelling errors in Swedish not using a word list en clair
R. Domeij, J. Hollman, V. Kann
J. of Quantitative Linguistics 1:195-201, 1994.
QUALICO-94, 71-76, 1994.
Postscript.
En metod för svensk rättstavning baserad på bloomfilter
J. Hollman, V. Kann
Nadarapport TRITA-NA-P9213, 1992.
Postscript.

Buggar

Eftersom stava utnyttjar en probabilistisk metod för stavningskontroll finns det en liten risk för att felstavade ord godkänns. Risken för att felaktiga ord godkänns ökar något då väljarna för ändelser och sammansättningar valts.

Konstruktörer

Viggo Kann (viggo@nada.kth.se)
Joachim Hollman (joachim@nada.kth.se)

^ Upp till Stavas hemsida.

Sidansvarig: Viggo Kann <viggo@nada.kth.se>
Uppdaterad 2016-09-21