hunspell(1)

NÉV
hunspell - helyesírás-javító, szótövező és morfológiai elemző program

ÁTTEKINTÉS
hunspell [-1 -a -G -h -H -l -L -m -n -t] [-d szótár] [-p saját_szótár] [állomány(ok)]

LEÍRÁS
A hunspell Ispell-szerű interaktív és csőfelület a (Magyar) Myspell függvénykönyvtárhoz. Felismeri és javítja az elütéseket és típushibákat sima szöveges, (La)TeX, HTML, és groff (kézikönyv oldal) állományokban.

Ha nem adunk meg állománynév paramétert, a Hunspell az Ispell csőfelületéhez hasonlóan működik: a bemenet sorait szavakra bontja, és *, +, vagy - jellel kezdődő kimeneti sorral jelzi, ha egy szó jó, és # vagy & jellel, ha rossz. A csőfelület parancsait viszont az Ispellhez hasonlóan csak a -a kapcsoló megadásával értelmezi.

Állománynév paraméter esetén elindul egy az Ispelléhez hasonló interaktív felület.

A program a következő előnyöket nyújtja a hasonló célokat szolgáló Ispell-lel szemben:

-   Képzők átfogó ismerete. (Több tízezer helyes szóalak elfogadását tette lehetővé a tesztelésre használt 4 millió szavas gyakorisági szótárban.)

-   Homonimák kezelése (nincsenek például olyan alakok elfogadva, mint megvárban).

-   Helyes javaslatok a több karakter változásával járó tipikus hibákra (j/ly, íj/ijj, nyj/nny és még több tucatnyi tévesztés megvizsgálásával). Az Ispell csak két karakter felcserélése; vagy egy karakter hiánya, cseréje, illetve felesleges jelenléte esetén ad helyes javaslatot.

-   Az összes helyes összetett szónak látszó, de tipikus hibával előálló alak tiltása (karvaj, színtű, súlytó stb.)

-   Javaslatok valószínűségi sorrendben jelennek meg (tipikus hibák, i/í, o/ó, u/ú tévesztések stb.).

-   Összetett szavak esetén 6-3-as szabály alkalmazása (helyesírás-ellenőrző, gépkocsi-összeszerelés).

-   Mozgószabály alkalmazása (kiviteli engedély, kiviteliengedély-kérés).

-   A magyar nyelv egyéb összetételi szabályainak alkalmazása (például hatlövetű, tizenkét lövetű, kéthavi, két hónapos, másodmagával).

-   Leg-, legesleg- és -bb confixum helyes kezelése (nincs pl. legédes, csak legédesebb).

-   Ragozható tőszófelvétel. Megkönnyíti egy új szó ragozott változatainak ellenőrzését, feleslegessé téve ezek külön-külön történő felvételét a saját szótárba.

-   Javaslatok mássalhangzó-triplázások (sakkkör, baletttáncos, dzsesszszak) esetén. (Ispell helyesnek fogadja el ezeket.)

-   Javaslatok szótagduplázások (oktatatás, igenenevet) esetén.

-   Javaslatok ékezet nélküli szövegre (tukorfurogep->tükörfúrógép).

-   Kötőjeles szavak kezelése (unos-untalan).

-   Toldalékolt számok (1-jén, 11-én, 5.-et) kezelése.

-   °, %, és § jelek (%-kal) toldalékolt alakjainak kezelése.

-   Mozaikszavak (MÁV-osokat) kezelése.

-   Y-ra végződő szavak (boyjal, pennyvel) kezelése.

-   Idegen ejtésű szótagra végződő szavak (Anonymusszal, Voltaire-nek) kezelése.

-   Két szóból álló földrajzi nevek (San Franciscó-i) kezelése.

-   Hibás alakok tiltása (Babitssal, tanit, alkotóművész stb.)

-   Tiltások jelzése a felhasználói felületen.

-   Egyéb (például az Ispell ragozott utószó esetében bármilyen szóösszetételt elfogad: macskatekerem, kutyakavarom, ezt a Hunspell nem teszi meg).

-   Magyar nyelvű (illetve locale (7) függő) felület.

-   Hordozható szöveges szótárállományok, szemben az Ispell platform, és bináris Ispell fordítástól függően (nem) kezelhető adatállományaival.

KAPCSOLÓK

-1  Speciális formátum: a bemeneti állomány tabulátorjelet tartalmazó soraiból csak az első tabulátorjel előtti karaktersorozatot vizsgálja meg.

-a  Ispellhez csőfelület. A !, +, -, @, #, vagy ^ jellel kezdődő sorok a csőfelület parancsai, jelentésüket az Ispell kézikönyvoldal részletezi. A -a kapcsoló hatására a kimenetben a jó szavakat csak csillaggal jelzi a Hunspell. Ez nagyobb kompatibilitást biztosít az Ispellt használó programok némelyikével (például a LyX-szel). Ekkor nem kell megadnunk a -a kapcsolót, mivel az Ispellt használó programok automatikusan ezzel a kapcsolóval indítják el az Ispell nevében futó Hunspellt is.

-d  szótár
    Meghatározza a helyesírási szótárt. Az alapértelmezett szótár a /usr/share/hunspell/default. A megadott útvonal lehet abszolút és relatív is. Relatív útvonal esetén először az aktuális, majd a /usr/share/hunspell könyvtárban keresi a szótárt a program. L. PÉLDÁK.

-G  A -l, -w, és -L kapcsolókat kiegészítő kapcsoló. A standard bemenetről érkező hibás szavak, illetve sorok megjelenítése helyett a jó szavak és a hibátlan sorok megjelenítését kérhetjük vele. Ha mást nem adunk meg, a -l kapcsoló hatásának megfelelően működik, csak a rossz helyett a jó szavakat írja a standard kimenetre.

-h, --help
    A beépített leírás megjelenítése.

-H  HTML bemeneti állományformátum beállítása. Ha az állomány nevének .html, .htm, vagy .xml a kiterjesztése, ez automatikusan bekövetkezik.

-l  Kiírja a hibás szavakat a standard bemenetről érkező állományból. Használható a -H, -t, -n, -1 kapcsolókkal együtt is. A -G kapcsoló megfordítja a Hunspell működését: csak a jó szavak kerülnek kiírásra.

-L  Csak a hibás szavakat tartalmazó sorokat írja ki a standard bemenetről érkező állományból. Használható a -H, -t, -n, -1 kapcsolókkal együtt is. A -G kapcsoló megfordítja a működését: csak azok a sorok kerülnek kiírásra, amelyek egy hibás szót sem tartalmaznak.

-n  Nroff/troff bemeneti állományformátum beállítása, elsősorban a kézikönyvlapok ellenőrzésére.

-p  saját_szótár
    A felhasználó saját szótárának beállítására szolgál. Az alapértelmezett saját szótár a $HOME/.hunspell_default állomány. Ha szótárat is megadunk a -d kapcsolóval, vagy a DICTIONARY környezeti változóval, a saját szótár a $HOME/.hunspell_szótárnév lesz. Ha a saját szótár nem létezik, létrehozza. Ha az aktuális könyvtárban is van egy ugyanilyen nevű állomány, akkor annak tartalma is beolvasásra kerül, mint saját szótár, és az újonnan felvett szavak is ide kerülnek. A -p , vagy a WORDLIST környezeti változó megadásával új saját szótárat jelölünk ki. A saját szótárat az aktuális könyvtárban, és a saját könyvtár gyökerében ($HOME) keresi a Hunspell. Ha nem található, akkor az újonnan felvett szavak mentésénél létrehozza a saját könyvtár gyökerében.

-t  LaTeX bemeneti állományformátum beállítása. Ha az állomány nevének .tex a kiterjesztése, ez automatikusan bekövetkezik.

-u  Tipikus hibák kijelzése az állományból, cserejavaslattal.

-u2 Tipikus hibák és javításuk kijelzése módosítható, és a sed programmal végrehajtatható formában. Irányítsuk a Hunspell kimenetét egy állományba. Törüljük azokat a sorokat az elmentett állományból, amelyek sed paranccsal megadott javítását nem szeretnénk. Mentsük el az állományt, és a sed -f javítás eredeti_állomány >javított_állomány paranccsal javíthatjuk az állományt gyorsan és egyszerűen. (A sok hibát tartalmazó állományok javítását gyorsítja meg ez a lehetőség.)

-U  Ha az -u kapcsolóval kapott javaslatokat mind el szeretnénk fogadni, akkor az -U kapcsolóval a Hunspell automatikusan végrehajtja a cseréket, és a módosított állományt a szabványos kimenetre küldi. Példa a javításra: hunspell -U eredeti_állomány >javított_állomány. A hibakimeneten megjelennek a javítások is még egyszer, a - kapcsolóhoz hasonló módon.

-v  Verziószám.

-vv Verziószám (Ispell kompatibilitás miatt).

-w  Csak a hibás szavakat írja ki a standard bemenetről érkező, soronként egy szót tartalmazó állományból. A sorok nincsenek szavakra bontva. A sorok szavakra bontása, és csak a hibás szavak kiírása a -w kapcsolóval érhető el. A -G kapcsoló megfordítja a Hunspell működését: csak a jó szavak kerülnek kiírásra.

INTERAKTÍV FELÜLET
A felület legfelső sorában a hibás szóalakot, és az éppen vizsgált állomány nevét látjuk. Amennyiben egy szóalak szótári tiltás miatt nem kerül elfogadásra, a bal felső sarokban a TILTOTT! (FORBIDDEN!) üzenet is megjelenik. Ez az üzenet arra utal, hogy nem hiányos szókincs, hanem szándékos tiltás miatt nem került a szó elfogadásra. Az első sor alatt az állomány hibás szót tartalmazó sorát, és szövegkörnyezetét láthatjuk, majd ezt követik a javaslatok, ha vannak.

A használható billentyűkombinációk:

Szóköz
    Továbblépés javítás nélkül a következő hibás szóra.

Számok
    A megfelelő javaslat kiválasztása.

c   Csere. A hibás szó cseréje a megadott szóra, vagy szavakra. Az Escape billentyű kétszeri lenyomásával megszakíthatjuk a a cserét.

j   A szó elfogadása a program futásának befejeződéséig.

f   A szó felvétele a saját szótárba.

k   A szó kisbetűsként való felvétele a saját szótárba.

t   Ragozott tőszó felvétele. A ragozás a másodikként megadott, mintául szolgáló szó alapján történik. Ha ez a szó nincs felvéve a szótárba, a tőszófelvételt elölről kell kezdeni. Példa: gyakran hiányoznak az idegen és a mozaikszavak. Vegyük fel a hiányzó OTP szót a tv köznévi mozaikszó toldalékaival! Lenyomjuk a t billentyűt, beírjuk, hogy OTP, leütjük az új sor billentyűt, beírjuk, hogy tv, és ismét új sor. A tv szó ugyanis már szerepel a szótárban, és ragozása mondja meg a programnak, hogy az OTP szót milyen toldalékokkal szeretnénk látni, pl. OTP-hez, OTP-met stb. a tv-hez, tv-met mintájára. A -val/-vel, -vá/-vé toldalékokat a kötőjellel kapcsolt toldalékú szavak esetében külön kell felvenni, de még így is sokkal kényelmesebb a speciális tőfelvétel, mint minden (akár több száz) toldalékos alakot külön-külön felvenni. Egy kis segítség a minta kiválasztásához: első menetben a hangrend számít. Pl. mozaikszavaknál a mély hangrendű új szavak felvételénél használhatjuk a MÁV szót példaként, ajakréses magas hangrendnél pedig az említett tv-t. Ajakkerekítéses magas hangrend esetében a HÖK szót használhatjuk (amíg át nem lesz javítva a helyes hök-re). Ha a hiányzó szó nem mozaikszó, hanem például tulajdonnév, a Pál, Péter, Örs szavakat adhatjuk meg példának a hangrendtől függően. Ha meg egyszerű köznévről van szó, akkor használjuk az ok, ék, ük szavakat. Igéknél áll, vél, ül, ikes igéknél ázik, vérzik, nőzik lehet a példa (remélhetőleg a következő változatokban egyszerűsödik ez a tőfelvétel). Az Escape billentyű kétszeri lenyomásával megszakíthatjuk ezt a műveletet. Az itt felvett szavak automatikusan a saját szótárba kerülnek. Ha ezt innen törölni szeretnénk, a programból kilépve a saját szótár kézi átszerkesztésével tehetjük meg.

m   Kilépés a változtatások mentése nélkül. A program változtatás megléte esetén megerősítést kér.

v   Az állomány ellenőrzésének megszakítása a változtatások mentésével. Ha van következő állomány, akkor a program annak ellenőrzését kezdi el.

?   Segítség. Hasonló rövid leírás megjelenítése a billentyűparancsokról.

CSŐFELÜLET
A Hunspell soronként dolgozza fel az állományokat, a helyes szavakat * (tőszó), - (összetett szó), vagy + (ragozott szó) karakterrel jelöli, a helyteleneket # (nincs javaslat) , vagy & (van javaslat) karakterrel. A + jelet a kimenetben követi még a szótő. A # jel után a hibás szó, és kezdőpozíciója van feltüntetve. A & jelet követi a hibás szó; a javaslatok száma; a hibás szó kezdőpozíciója; majd kettőspont után a javaslatok, vesszővel elválasztva:

    macska
    *
    macskabajusz
    -
    macskák
    + macska
    mcsk
    # mcsk 0
    macka
    & macka 7 0: macska, maca, racka, packa, vacka, marka, mackó

PÉLDÁK

hunspell -d en_US english.html
    Az amerikai angol helyesírási szótár kiválasztása (aktuális, vagy a /usr/share/hunspell könyvtárból.

hunspell -d /opt/OpenOffice.org1.0.1/share/dict/ooo/de_DE
    A német helyesírási szótár kiválasztása a megadott abszolút útvonalról, a standard bemenet feldolgozásával.

hunspell *.html
    Az aktuális könyvtárban található összes HTML állomány interaktív ellenőrzése.

hunspell -l szöveg.html
    A megadott állomány hibás szavainak kiírása.

hunspell -r *.html
    Az aktuális könyvtárban található összes HTML állomány szavainak, és a szavak szótöveinek kiírása.

KÖRNYEZET

DICTIONARY
    A szótár helyének megadására szolgál. Szerepe megegyezik a -d kapcsolóval.

DICPATH
    A szótárkeresési útvonalat tartalmazó változó.

WORDLIST
    A saját szótár helyének megadására szolgál. Szerepe megegyezik a -p kapcsolóval.

ÁLLOMÁNYOK
/usr/share/default.aff Az alapértelmezett ragozási táblázat. Lásd hunspell(4).

/usr/share/default.dic Az alapértelmezett szótár az előző ragozási táblázathoz. Lásd hunspell(4). $HOME/.hunspell_default Az alapértelmezett saját szótár. Az állományt létrehozza a Hunspell, ha nem létezik. Lásd ispell(1).

LÁSD MÉG
hunspell (4), hunstem (1), makedb (1), lookdb (1), ispell (1), ispell (4), Magyar Ispell dokumentáció.

SZERZŐ
A Hunspell az International Ispell lényegi részének C++-os újramegvalósításának, a Myspell függvénykönyvtárnak a bővítése. Nemcsak felület a könyvtárhoz, hanem egy jelentős bővítés is a magyar nyelv vonatkozásában (Magyar Myspell).

A mintaként szolgáló International Ispell szerzője Geoff Kuenning, sok más elődje munkájára támaszkodva (l. ispell(1)).

A Myspellt Kevin Hendricks készítette a kiváló és ingyenes OpenOffice.org (eredetileg StarOffice) irodai programcsomaghoz 2001-2002-ben.

A Magyar Myspellt, illetve a Hunspell felületet Németh László <nemethl@gyorsposta.hu> készítette 2002-2003-ban.

2003 márciusától a fejlesztést a Szószablya projekt viszi tovább egy nyitott forráskódú magyar morfológiai elemző elkészítésének irányába.

A Hunspell a Magyar Ispell projekt eredményét, a magyar Ispell/Myspell helyesírási szótármodult használja a magyar nyelvű szövegek ellenőrzésekor. A Magyar Ispell levelezőlista a magyarispell@yahoogroups.com címen található. Várunk minden olyan észrevételt, illetve segítséget, ami jobbá teheti a Magyar Myspell helyesírás-ellenőrzőt, és a Magyar Ispell szótármodult.

Az International Ispell-nek, és így a Myspellnek is magyar vonatkozása is van. A programokban szereplő affixumtömörítés a Dömölki-algoritmuson alapszik, Dömölki Bálint egyik 60-as években publikált algoritmusán, amit a magyar M3-as, az első hazai elektronikus számítógép megépítését követően, nyelvészeti jellegű kutatások kapcsán dolgozott ki.

HIBÁK
Az UTF-8, vagy UTF-16 karakterkódolású állományok ellenőrzését a Hunspell parancssori felület még nem támogatja. UTF-8 kódolású szótárak, és a check() függvény már használható.

A sorok maximális mérete nincs korlátozva, de a 8 kB-os határokon tévesen hibát jelezhet a program. A szóköz lenyomásával ugorjuk át a téves hibajelzést!

Az e-mail címek, URL-ek, és egyéb útvonalak ellenőrzését elkerülhetjük, ha ezeket a javasolt módon; HTML esetében a <var>útvonal</var>, LaTeX esetében \url{útvonal} formában adjuk meg. (A címek elválasztást is lehetővé tevő \url LaTeX parancs az url csomagban található, tehát használatához a \usepackage{url} parancs kiadására is szükség van a preambulumban.)