Magyar Ispell dokumentáció Németh László 2003. július 22.
Tartalomjegyzék 1. Bevezetés 1.1. A dokumentáció felépítése 1.2. Elérhet˝oség . . . . . . . . 1.3. Köszönetnyilvánítás . . . . 1.4. A dokumentáció . . . . . . 1.5. Felhasználási engedély . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
2. Telepítés és használat 2.1. OpenOffice.org . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Telepítés . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2. Használat . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3. A szöveg nyelvének kiválasztása . . . . . . . . . . . . 2.1.4. Nagybet˝us és számokat tartalmazó szavak elleno˝ rzése 2.1.5. Alapértelmezett nyelv beállítása . . . . . . . . . . . . 2.1.6. Automatikus elválasztás beállítása . . . . . . . . . . . 2.1.7. Helyesírási állományok frissítése . . . . . . . . . . . 2.1.8. Az OpenOffice.org nem magyar változatai . . . . . . . 2.2. A Hunspell telepítése és használata . . . . . . . . . . . . . . . 2.2.1. Linux és egyéb Unix-típusú rendszerek alatt . . . . . . 2.2.2. Windows alatt . . . . . . . . . . . . . . . . . . . . . . 2.2.3. Hunspell Mac OS X alatt . . . . . . . . . . . . . . . . 2.3. Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Az Emacs telepítése Linuxra . . . . . . . . . . . . . . 2.3.2. Az Emacs telepítése Windowsra . . . . . . . . . . . . 2.3.3. A Xemacs telepítése Windowsra . . . . . . . . . . . . 2.3.4. A Hunspell telepítése az Emacs alá . . . . . . . . . . 2.3.5. A Hunspell telepítése konzolon indított Emacshoz . . 2.3.6. Az Emacs használata . . . . . . . . . . . . . . . . . . 2.4. Az Ispell telepítése és használata . . . . . . . . . . . . . . . . 2.4.1. Telepítés Linuxra . . . . . . . . . . . . . . . . . . . . 2.4.2. Telepítés Linuxra, forráskódból . . . . . . . . . . . . 2.4.3. Windows . . . . . . . . . . . . . . . . . . . . . . . . 2.4.4. A
állomány telepítése és használata . . . 2.4.5. Az Ispell változat megfelel˝osége . . . . . . . . . . . . 2.4.6. Az Ispell használata . . . . . . . . . . . . . . . . . .
2
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
3 3 3 3 4 4
6 . . . . . . . . . . 6 . . . . . . . . . . 6 . . . . . . . . . . 6 . . . . . . . . . . 7 . . . . . . . . . . 7 . . . . . . . . . . 7 . . . . . . . . . . 7 . . . . . . . . . . 8 . . . . . . . . . . 8 . . . . . . . . . . 9 . . . . . . . . . . 9 . . . . . . . . . . 11 . . . . . . . . . . 12 . . . . . . . . . . 12 . . . . . . . . . . 12 . . . . . . . . . . 13 . . . . . . . . . . 13 . . . . . . . . . . 13 . . . . . . . . . . 13 . . . . . . . . . . 14 . . . . . . . . . . 14 . . . . . . . . . . 15 . . . . . . . . . . 15 . . . . . . . . . . 15 . . . . . . . . . . 16 . . . . . . . . . . 17 . . . . . . . . . . 17
Magyar Ispell dokumentáció 2003. 9. 15. 3. Fejleszt˝oi dokumentáció 3.1. Helyesírás-ellen˝orz˝ok ismertetése . . . . . . 3.1.1. Aspell . . . . . . . . . . . . . . . . . 3.1.2. Ispell . . . . . . . . . . . . . . . . . 3.1.3. Pspell . . . . . . . . . . . . . . . . . 3.1.4. Myspell . . . . . . . . . . . . . . . . 3.1.5. Mozilla Spell Checker . . . . . . . . 3.1.6. Magyar Myspell . . . . . . . . . . . 3.1.7. OpenOffice.org . . . . . . . . . . . . 3.2. Az Ispell felépítése és m˝uködése . . . . . . . 3.2.1. Ragozási szabályok . . . . . . . . . . 3.2.2. Ragozási osztályok . . . . . . . . . . 3.2.3. Szótárállomány . . . . . . . . . . . . 3.2.4. Affixum tömörítés . . . . . . . . . . 3.3. Magyar Ispell . . . . . . . . . . . . . . . . . 3.3.1. Történet . . . . . . . . . . . . . . . . 3.3.2. Alapvet˝o problémák . . . . . . . . . 3.3.3. Affixum keretrendszer . . . . . . . . 3.3.4. Szótári keretrendszer . . . . . . . . . 3.4. Új szótármodulok létrehozása . . . . . . . . . 3.4.1. Szófaji bontás . . . . . . . . . . . . . 3.4.2. Kivételek a szófaji kategóriákon belül 3.4.3. Állományok táblázata . . . . . . . . 3.4.4. Y-ra végz˝od˝o szavak . . . . . . . . . 3.4.5. Kivételek könyvtár . . . . . . . . . . 3.4.6. További információk . . . . . . . . . 3.4.7. Segédprogramok . . . . . . . . . . . 3.5. Magyar Myspell . . . . . . . . . . . . . . . . 3.6. Javítási cseretáblázat . . . . . . . . . . . . . 4. Programozói dokumentáció 4.1. Hunspell cs˝ofelület . . 4.2. Magyar Myspell felület 4.2.1. Konstruktor . . 4.2.2. Metódusok . . 5. Hunspell kézikönyvoldalak 5.1. Hunspell(1) . . . . . . 5.2. Hunstem(1) . . . . . . 5.3. Makedb(1) . . . . . . . 5.4. Lookdb(1) . . . . . . . 5.5. Hunspell(4) . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
3
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 19 19 19 20 20 21 21 22 23 23 24 25 25 25 26 26 28 33 34 34 35 36 37 39 39 39 40 40
. . . .
43 43 44 44 44
. . . . .
48 48 57 58 59 60
Magyar Ispell dokumentáció 2003. 9. 15. 6. A Magyar Ispell tesztelése 6.1. A szókincs tesztelése . 6.2. Tévesztések ellen˝orzése 6.3. A tesztek értékelése . . 6.3.1. Szókincs . . . 6.3.2. Tévesztések . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
67 67 68 68 68 68
7. Szabályok Általános tudnivalók . . . Általános tudnivalók . . . A bet˝uk . . . . . . . . . . A kiejtés szerinti írásmód . A szóelemz˝o írásmód . . . A hagyományos írásmód . Az egyszer˝usít˝o írásmód . A különírás és az egybeírás
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
70 71 71 71 72 75 77 77 77
. . . . . . . .
Irodalomjegyzék
79
4
1. fejezet Bevezetés 1.1. A dokumentáció felépítése A Magyar Ispell dokumentáció els˝o része a felhasználói ismereteket foglalja össze, második része a fejleszt˝ok számára tartalmaz útmutatást. A függelék elso˝ felében a Hunspell helyesírásellen˝orz˝o és -javító program, és az általa használt szótárállományok formátumának kézikönyvlapjait találjuk. Itt kapott helyet egy részletes összehasonlítás is a Hunspell és a magyar helyesírási szabályzat (illetve a jelenleg legelterjedtebb magyar helyesírás-elleno˝ rz˝o program, a MS Office XP-ben megtalálható Helyes-e?) között, amit végül egy a Hunspell m˝uködésének helyességét vizsgáló leírás követ.
1.2. Elérhet˝oség
!" $# A lista archívuma: "%%&('*)+),-,.,/ ! (+0 $#/)121! ) * A Magyar Ispell honlapja: "%%&3')) 4 + *5 6!7#0892! ;:% A Szószablya honlapja: %%&('*)+),.,-, 6<+6<"!=! (
!
A Magyar Ispell levelezési listája:
1.3. Köszönetnyilvánítás A dokumentáció korábbi változatának elkészítésében, javításában, kiegészítésében Mayer Gyula segített. A fejlesztésben sokan részt vettek. Szántó Tamás, Bíró Árpád, Hilzinger Marcel, Koblinger Egmont, Godó Ferenc, Trón Viktor, Pásztor György, Noll János, Bencsáth Boldizsár, Fransoa Holop, Goldmann Eleonóra, Halácsy Péter, Kornai András és sokak segítségét köszönöm! Anyagi jelleg˝u támogatást kaptam Mátó Péterto˝ l, a TypoTEX könyvkiadótól (Mayer Gyula segítségével), a SuSE Linuxtól (Koblinger Egmont és Hilzinger Marcel segítségével), az UHU5
Magyar Ispell dokumentáció 2003. 9. 15. Linuxtól. Jelenleg az állami támogatással m˝uködo˝ Szószablya munkacsoport tagjaként a Magyar Ispell fejlesztésén is dolgozom. A tesztprogramok és a dokumentáció 2002. évi változatának elkészítéséhez, valamint a tesztelés kivitelezéséhez a TypoTEX Kft. 300 000 (+áfa) forinttal járult hozzá, a Széchenyi Terv keretében az Informatikai Kormánybiztosság SZ-IS-10/3 pályázati számon elnyert támogatásából. 2002 o˝ szét˝ol az összegb˝ol vásárolt számítógéppel készülnek a Magyar Ispell új változatai.
Az IMEDIA Kft. ( "%%('))",-,.,/ ;*0>(
! ) különösen nagy segítséget nyújtott a szókincs ellen˝orzésében és b˝ovítésében, azzal, hogy nagy és ellen˝orzött szókincset nyújtott át a fejlesztés számára. Az UHU-Linux Kft. ( "%?%&('*)+)",-,-,
! !!5:!@
! ) szoftverfejlesztési pályázatának támogatásával készült el a 0.98-as Magyar Ispell és ennek honlapja, valamint a Magyar MySpell használatát lehet˝ové tev˝o AbiWord-programkiegészítés (folt). Noll János és Koblinger Egmont munkája révén az UHU-Linux 1.0-s változatába is bekerült a legfrissebb Magyar Ispell szótárat és helyesírás-ellen˝orz˝ot tartalmazó OpenOffice.org irodai csomag, illetve AbiWord szövegszerkeszt˝o.
A Szószablya ( "%%('))",-,.,/ A<+6<"!=! 3 ; ! ) révén sor kerül a Magyar Ispell javítására és tovább fejlesztése is, mind szókincsét, mind a magyar nyelv kezelését tekintve, egy nyitott forráskódú magyar morfológiai elemz˝o, a Hunmorph elkészítése céljából. A Szószablya keretén belül elvégzett vizsgálatok szerint a Magyar Ispell 0.99.3-as változata a magyar weboldalakon található (helyes) szóalakok körülbelül 96%-át – beleértve ebbe az összes gyakori szót – felismeri.
1.4. A dokumentáció A dokumentáció forrása LATEX nyelven készült. A mesterfájlban a B 6 #C!0D%E5GF utasítás abból a célból szerepel, hogy a >+87%6G@ program segítségével jó mino˝ ség˝u és kis méret˝u PDF változatot lehessen el˝oállítani. A dokumentáció HTML változata a
H"%AE@+I3 "%&J+KL! %NMO 4 + * parancs segítségével szinte hiba nélkül el˝oállítható.
1.5. Felhasználási engedély A Magyar Ispell szótár jelen változatát Németh László készítette a fejlesztés résztvev o˝ inek és támogatóinak segítségével, és a GNU GPL (General Public License) kettes, vagy kés o˝ bbi változata alapján szabadon felhasználható. A Hunspell program, és a Magyar Myspell függvénykönyvtár a GNU LGPL (GNU Library GPL) kettes, vagy kés˝obbi változata alapján szabadon felhasználható.
6
Magyar Ispell dokumentáció 2003. 9. 15. Ez a dokumentum a Free Software Foundation által kiadott GNU Free Documentation License 1.2-es vagy újabb változatában foglalt feltételek szerint másolható, terjeszthet˝o és módosítható; rögzített fejezet, els˝o borítólapszöveg és hátsó borítólapszöveg nincsen (http://www.gnu.org/licenses/fdl.html). Németh László ( : P%& HQ 0 +A%R( ; ! )
7
2. fejezet Telepítés és használat A Magyar Ispell fejlesztés eredményei Linux, Windows és Mac OS X operációs rendszereken is használhatóak olyan programokkal, mint az OpenOffice.org, AbiWord, Hunspell, Emacs, vagy a magyar nyelv támogatása szempontjából elavult Ispell.
2.1. OpenOffice.org Az OpenOffice.org a legjobb nyitott forráskódú irodai csomag, ezért a legtöbb felhasználó az OpenOffice.org révén kerül kapcsolatba a Magyar Ispell fejlesztés eredményeivel.
2.1.1. Telepítés Az OpenOffice.org hivatalos magyar változata az FSF.hu Alapítvány honlapjáról érhet o˝ el:
"%%('))+ST# H89?86
! . Itt tölthet˝o le Windows, és Linux platformra is, illetve már letöltött formában számítástechnikai lapok mellékletén is megtaláljuk.
A program magyar nyelv˝u telepít˝ovel rendelkezik. Kövessük a telepít˝o, vagy a honlap (illetve az újság) útmutatását!
2.1.2. Használat Az OpenOffice.org magyar változataiban alapértelmezett nyelv a magyar, és rendszerint a beírás közbeni ellen˝orzés is be van kapcsolva. Ez utóbbi lehet˝oséget a bal oldali eszköztáron található piros hullámvonallal aláhúzott ABC ikonnal tudjuk ki- és újra bekapcsolni. Az OpenOffice.org kis hibája, hogy a szövegszerkeszto˝ ben az els˝o bet˝u beírása után tölt˝odik be a magyar helyesírási szótár. Ez lassabb gépeken másodperceket is igénybe vesz. Mivel az ellen˝orzés párhuzamosan folyik az írással, nem kell megvárnunk a szótár betölt o˝ dését, nyugodtan elkezdhetünk gépelni. (Igaz, a gépelt szöveg egy részét a szótár betölto˝ désének befejez˝odéséig nem fogjuk látni.) 8
Magyar Ispell dokumentáció 2003. 9. 15. Ha beírás közben hibás szót írtunk be, a szó piros hullámvonallal kerül aláhúzásra. Ha a jobb egérgombbal kattintunk a szón, a megjelen˝o helyi menü tartalmazza a javaslatokat a hibás szóra. Az ellen˝orzést külön párbeszédablak segítségével is elvégezhetjük. Ez az ablak az F7-es gomb lenyomásával hívható el˝o a leggyorsabban. A kés˝obb tárgyalt beállításokhoz itt egy helyen férhetünk hozzá, így célszer˝u lehet megismerkedni a használatával.
2.1.3. A szöveg nyelvének kiválasztása El˝ofordul, hogy olyan dokumentummal találkozunk, ahol a szöveg, vagy annak egy része hibásként jelenik meg, bár helyes magyar szavakat tartalmaz. Ennek oka, hogy a szöveg – bár magyar – más nyelv˝unek lett beállítva. Jelöljük ki a szöveget, és válasszuk ki a Formátum→Karakter párbeszédablakban a Bet˝utípus lapot! Válasszuk ki a Nyelv listából a magyart, és kattintsunk a OK gombon! Ha egy szó, vagy bekezdés nyelvét szeretnénk átállítani, az OpenOffice.org rendelkezik egy kényelmes lehet˝oséggel: kattintsunk egy hibásnak jelzett szón a jobb gombbal. Az OpenOffice.org a rendelkezésre álló helyesírási szótárak alapján megpróbálja megállapítani, hogy milyen nyelv˝u a kérdéses szó. Ha ez sikerül, a felnyíló helyi menü alján két új menüpontot is láthatunk. A példánknál maradva, „A szó: magyar” menüponttal a kiválasztott szó, a „bekezdés: magyar” menüponttal a teljes bekezdés nyelvét állíthatjuk egy kattintással magyarra.
2.1.4. Nagybetus ˝ és számokat tartalmazó szavak ellen o˝ rzése Az Eszközök→Beállítások párbeszédablakban a Nyelvi beállítások→Írástámogatás lapon egyéb beállításokat is megtehetünk. A nagybet˝us és számokat tartalmazó szavak ellen o˝ rzését a Beállítások dobozban lehet kérni. Ezt igényesebb dokumentumok elleno˝ rzése esetén érdemes megtenni. (A korábbi változatok a nagybet˝us szavakat helyességto˝ l függetlenül hibásnak jelezték, ha kértük az ilyen szavak ellen˝orzését. Ez a probléma az OpenOffice.org 1.02 magyar változatával megsz˝unt.)
2.1.5. Alapértelmezett nyelv beállítása Az Eszközök→Beállítások párbeszédablakban a Nyelvi beállítások→Nyelvek lapon állíthatjuk be az OpenOffice.org dokumentumok alapértelmezett nyelvét. Jelöljük be a Csak az aktuális dokumentumban jelöl˝onégyzetet, ha csak az éppen szerkesztett dokumentum alapértelmezett nyelvét szeretnénk megváltoztatni!
2.1.6. Automatikus elválasztás beállítása A helyesírás része a helyes elválasztás. Ennek automatikus változatát az Eszközök→Beállítások párbeszédablakban a Nyelvi beállítások→Írástámogatás lapon vá9
Magyar Ispell dokumentáció 2003. 9. 15. laszthatjuk ki. Kattintsunk a Szerkesztés gombon, a megjeleno˝ párbeszédablakban válasszuk ki a magyar nyelvet, majd az ALTLinux LibHnj Hyphenator jelölo˝ négyzetet válasszuk ki. Az OpenOffice.org magyar változatai között akadnak olyanok is, ahol az elo˝ z˝o beállítás nem m˝uködik (könnyen ellen˝orizhet˝o: kattintsunk újra a Szerkesztés gombon, ha az elo˝ z˝o jelöl˝onégyzet újra nincs kiválasztva, a beállítás nem lehetséges). Ilyenkor ha mégis elválasztást szeretnénk, jelöljük ki az egész dokumentumot, és a Formátum→Bekezdés párbeszédablakban válasszuk ki a Szövegfolyam lapot, és jelöljük be az Elválasztás szakaszban az Automatikusan jelöl o˝ négyzetet!
2.1.7. Helyesírási állományok frissítése A helyesírási állományokat ( !!UJVNW- >H# , !!UJVNW- $X , 0! !UY ( >H# ) a Magyar Ispell honlapról ( "%%&('*)+)(+4 + *5 A86 ;:% ) tölthetjük le, és az OpenOffice.org 7") >H#%R)( (régebben R 9)",.>Z= 1C ) könyvtárába másoljuk át kibontás után. Az OpenOffice.org újraindítás után már az új állományokat fogja használni.
2.1.8. Az OpenOffice.org nem magyar változatai Különbségek Az OpenOffice.org nem magyar változatai nem tartalmazzák az OpenOffice.org Myspell nev˝u helyesírás-ellen˝orz˝ojének magyar b˝ovítését (amelyen tulajdonképpen a Hunspell program is alapszik), emiatt sok hibát követnek el a helyesírás elleno˝ rzésében, különösen az összetett szavak kezelése terén. Például nincs korlátozva az összetett szavak hossza; nem ismeri fel az olyan tipikus hibákat, mint a színt˝u, karvaj, rovarirtószer; sok helyes szót sem fogad el, mint például kéthavi, Sydneyvel; nem kezeli a köt˝ojeles szavakat, mint a MÁV-ot, Voltaire-rel stb. Könnyen meggy˝oz˝odhetünk róla, hogy az OpenOffice.org nem magyar változatával van dolgunk: írjuk be a szövegszerkeszt˝obe, hogy helyesírásellen˝orz˝o. A nem magyar változatok helyesnek fogadják el a szót, ha egyébként a magyar helyesírási szótár lett kiválasztva az Eszközök→Beállítások párbeszédablakban a Nyelvi beállítások→Írástámogatás lapon. A magyar változatok hibásnak jelzik a szót, és a helyesírás-ellen˝orz˝o alakot javasolják helyette. Helyesírási állományok telepítése Ha mindezek ellenére a nem magyar változat használata mellett döntünk, szükségünk lehet a helyesírási állományok ( !!UJVNW- >H# , !!UJVNW- $"X , 0(! !UY !( $>H# ) kézi telepítésére, ha ezeket nem tartalmazza az OpenOffice változat. Az említett állományokat a Magyar Ispell honlapról ( "%%&('*)+)( + *5 A8A
:% ) tölthetjük le, és az OpenOffice.org megfelelo˝ könyvtárában kell elhelyeznünk. A könyvtár helye az újabb változatokban a )>1 #%R)( . Az itt található dictionary.lst állományba kell még bejegyeznünk a helyesírási állományokat a
[]\*^`_ !aVNWb !UJVNW 10
Magyar Ispell dokumentáció 2003. 9. 15.
VdceQVf !aVNWg 0 !UY ! sorokkal. Az OpenOffice.org indítása után az Eszközök→Beállítások párbeszédablakban a Nyelvi beállítások→Írástámogatás lapon válasszuk ki a Szerkesztés gombot, és a megjelen o˝ lapon a magyar nyelvhez kapcsoljuk be az OpenOffice MySpell SpellCheckert és az ALTLinux LibHnj Hyphenatort, és az alapértelmezett nyelvet is módosítsuk a korábban ismertetett módon, a Nyelvi beállítások→Nyelvek lapon.
2.2. A Hunspell telepítése és használata 2.2.1. Linux és egyéb Unix-típusú rendszerek alatt A Hunspell már része egyes Linux terjesztéseknek, például az UHU-Linuxnak (az 1.0-s változatban még Mispell néven). A legfrissebb változatokat forráskódból fordíthatjuk le. Fordítás Töltsük le a
"%%&('*)+)( ; A8A
:%
oldalról a legfrissebb Hunspell csomagot.
Telepítsük a következ˝o GNU, vagy ezzel egyenérték˝u fejleszt˝oi csomagokat:
!C& , *=!:#2RRiK>!&h , ">Z$5:&K>!&h , %%AE@%LK>!&h .
5=+#&K>!&h ,
Csomagoljuk ki, és fordítsuk le a Hunspell forrást:
%6 j@h<8N !!:+ *5 H%6 H< #0>k !!:* !C& !C&l5:A%6!* Amennyiben a telepítési útvonalak nem megfelel˝oek, a Makefile állományban pontosíthatunk ezeken. Ellen˝orizzük a program m˝uködését a
!!:+ *ZH"%&*:(m0I1
"%&J vagy a
!!:+ *!(1 4 + * %6A<% H%n@% parancs kiadásával.
11
Magyar Ispell dokumentáció 2003. 9. 15. Fordítás menüs felület nélkül A !: ; $#E@"@ állományban kapcsoljuk ki a CURSES makrót, megjegyzésbe téve, vagy törölve a
o >!pq: ^ W-rqsdts sort. Ez esetben a menüs felület nem fog m˝uködni, csak a parancssori. Fordítsuk és telepítsük a programot az el˝oz˝o szakaszban ismertetett módon. A Hunspell használata A program és szótárállománya formátumának leírását a két feltelepített kézikönyvoldal (Hunspell(1), Hunspell(4)) tartalmazza.
A telepítés során kiadott !CEu5:A%6!* parancs az Ispell parancshoz is a Hunspell programot állítja be. Az eredeti Ispell + *; H(4 néven indítható a továbbiakban.
A személyes szótárat a v Vxwzyat1)3
!!:+ **U{>!84!! % , vagy ha nem az alapértelmezett magyar szótárakat használjuk, akkor a v V|wzyat1) ; !!:+ **UJ}~:0" h fájlba írja a program.
A saját szótár kés˝obb kézzel is átszerkeszthet˝o, érdekes tulajdonsága, hogy ragozható szavakat is felvehetünk ide. A Hunspell az Ispellhez hasonlóan együttm˝uködik az Emacs, LyX, KWord programokkal. A KWordhöz való beállításban Szántó Tamás leírása segít. A leírás a "%?%&(')) + *; HA86 ;:&% oldalon található. Ha a Hunspell programot állománynév paraméterekkel hívjuk meg, sorban megnyitja az állományokat, és a hibás szavakat egy menüs felület segítségével felkínálja javításra. A kiterjesztés alapján felismeri a szöveges, TEX, Nroff/Troff és HTML állományokat, de kapcsolókkal is befolyásolhatjuk ezt: -t (TEX), -H (HTML), -n (Nroff/Troff). A felület további ismertetését a függelékben található Hunspell kézikönyvoldal tartalmazza. Itt csak a használható billenty˝ukombinációk leírását idézzük. Zárójelben megadjuk a billenty˝uparancsok angol megfelel˝oit is. • Szóköz: Továbblépés javítás nélkül a következ˝o hibás szóra. • Számok: A megfelel˝o javaslat kiválasztása. • c (r): Csere. A hibás szó cseréje a megadott szóra, vagy szavakra. Az Escape billenty˝u kétszeri lenyomásával megszakíthatjuk a a cserét. • j (a): A szó elfogadása a program futásának befejezo˝ déséig. • f (i): A szó felvétele a saját szótárba. • k (u): A szó kisbet˝usként való felvétele a saját szótárba. 12
Magyar Ispell dokumentáció 2003. 9. 15. • t (–): Ragozott t˝oszó 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 to˝ szófelvételt elölr˝ol 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˝ut, beírjuk, hogy OTP, Enter, beírjuk, hogy tv, és Enter. 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 o˝ jellel kapcsolt toldalékú szavak esetében külön kell felvenni, de még így is sokkal kényelmesebb a speciális t˝ofelvé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: elso˝ menetben a hangrend számít. Pl. mozaikszavaknál a mély hangrend˝u ú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˝ol függ˝oen. Ha meg egyszer˝u köznévr˝ol van szó, akkor használjuk az ok, ék, ük szavakat. Igéknél áll, vél, ül, ikes igéknél ázik, vérzik, no˝ zik lehet a példa (remélhet˝oleg a következ˝o változatokban egyszer˝usödik ez a t˝ofelvétel). Az Escape billenty˝u kétszeri lenyomásával megszakíthatjuk ezt a m˝uveletet. 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 (q): Kilépés a változtatások mentése nélkül. A program változtatás megléte esetén meger˝osítést kér. • v (x): Az állomány ellen˝orzésének megszakítása a változtatások mentésével. Ha van következ˝o állomány, akkor a program annak ellen˝orzését kezdi el. • ? (?): Segítség. Hasonló rövid leírás megjelenítése a billenty˝uparancsokról.
2.2.2. Windows alatt Töltsük le a "%?%&('*)+) *; ?86
:% oldalról a Windowsra készített csomagot, és csoma^ goljuk ki a ' meghajtó gyökerében a WinZip programmal. A kicsomagolás után a futtatható program ( V-!:+ * ) és a szótárállományok a yz+ * könyvtárba kerülnek. Nyissunk meg egy Parancssor ablakot, majd adjuk ki a
^ '
^ '
yz+ * V-!:+ * parancsot. A beírt szavakat, illetve mondatokat a Hunspell feldolgozza, és a hibás szavakat &, vagy # jellel kezdve írja ki. (A kimeneti formátum részletes ismertetését a függelékben közölt kézikönyvlapok tartalmazzák.) Ha egy meglév˝o állományban szeretnénk a hibás szavakat megkeresni, a -l kapcsolót, és esetleg az állomány típusát adjuk meg, az állományt pedig a standard bemeneten keresztül adjuk a Hunspell programnak. 13
Magyar Ispell dokumentáció 2003. 9. 15.
!!:+ *+KE+K&VfY =(
"%&J A példában a =(
"%&J állomány hibás szavait irattuk ki a képernyo˝ re. Ha a kimenetet el szeretnénk menteni, irányítsuk fájlba:
!!:+ *+KE+K&VfY =(
"%&JZY 5=U6<00h+!C %L@% A Windows alá letölthet˝o futtatható állomány nem tartalmazza a Linux alatt alapértelmezésként m˝uköd˝o menüs felületet, amely lehet˝ové teszi a szöveges, HTML, LATEX és Groff formátumú állományok gyors javítását.1
2.2.3. Hunspell Mac OS X alatt Fazekas Mihály ( = !
# #1 ) a Hunspell 0.94-es változatát egy Cocoa felülettel bo˝ vítette, ezzel lehet˝ové téve a helyesírás-ellen˝orz˝o rendszerszint˝u használatát Mac OS X alatt. Letölthet˝o csomagok, és részletes telepítési útmutató található a "%?%&('))* @1 HA86 # címen. A Hunspell program lefordítható Mac OS X alá is. Telepítsük a GNU fejleszto˝ eszközöket (glibc-devel, ncurses-devel, readline-devel, gettext-devel), vagy a !!:+ *; #E@@ állományban kapcsoljuk ki a CURSES makrót, megjegyzésbe téve, vagy törölve a
o >!pq: ^ W-rqsdts sort. Ez utóbbi esetben a menüs felület nem fog m˝uködni, csak a parancssori.
2.3. Emacs Az t# , illetve a programot használni.
#
program mind Windows, mind Linux alatt képes a Hunspell
Ismeretlen okból csak a Xemacs kezeli jól a köto˝ jeleket tartalmazó szavakat, így ennek használata javasolt az Emacs helyett.
2.3.1. Az Emacs telepítése Linuxra Linux esetében a terjesztések tartalmazzák mindkét programot. Az alapcsomag az # . Ha az #?K m+m csomagot is telepítjük, az X grafikus felületen egy bo˝ vebb változat indul el, ami menüsorral és eszköztárral is rendelkezik. Ez utóbbival jelento˝ s részben megegyezik a @+# csomagban található # . 1
A Cygwin környezet leheto˝ vé teszi a menüs rendszer fordítását. A menüs rendszer Ncurses, Readline, és Gettext függvénykönyvtárakat használ, amelyeket az Visual C++ – szemben a Cygwinnel – alapból nem tartalmaz. A . Cygwin címe:
6HR| ?GEH ?
14
Magyar Ispell dokumentáció 2003. 9. 15.
2.3.2. Az Emacs telepítése Windowsra Windowsra több helyen is találhatunk bináris csomagot, például az 8%&('))8%&( :!3 H):! ) ,P5:>",NG) #E)( %A?%G) címen. Általános esetben az #?KIZm+ $IKG=5:0KRH+! H%6 H< csomagra van szükség, melyet az 8%&('*)+)8%&( :!( )1:! )",P5:>",NE) #G)("%E5 %EHE) !) címen található programokkal vagy a WinZIP programmal is kibonthatunk. Egy másik lel˝ohely a CTAN archívum, például: ,P5:+I!)8?"%AE@)+ $i!)! 2%R) #?KGI1m ~m ~m&KA,P*:I1 <* .
8%&('*)+)8%&( $>!:"%6+ $>!)%6E@KE 7# h)A%A PG)
2.3.3. A Xemacs telepítése Windowsra A
"%%&('*)+),-,.,/ @+ #0
címr˝ol tölthet˝o le a Xemacs windowsos változata.
2.3.4. A Hunspell telepítése az Emacs alá Az Emacs és Xemacs programok a háttérben indított Hunspell-lel együttm˝uködve képesek a helyesírás-ellen˝orzésre. A Hunspell-nek a keresési útvonalon kell elhelyezkednie, méghozzá ^ történ˝o telepítés során ez megtörénik. Windows alatt készítsünk a '
néven. A Linuxra
yz+ * V-!:+ * programról egy másolatot \ + * néven valamelyik rendszerkönyvtárba (például ^ ' 5:>",N , ^ ' 5:( _ ).
Windows, és az Emacs X-en futó változatai (Emacs-X11, Xemacs) esetében további beállításra nincs szükség. Az yYK4@ + * parancs kiadása után az Emacs elindítja a Hunspell programot, és ellen˝orzi a segítségével az éppen szerkesztett szöveget.
A Xemacs esetében a yYK4@ + * KG=!"Xj parancsot adjuk ki els˝onek, majd a következ˝o ellen˝orzések során már használható yzK4@¡ + * is.
2.3.5. A Hunspell telepítése konzolon indított Emacshoz Az Emacs (tehát nem Xemacs) konzolon való használathoz szükségünk lehet az + *; módosított változatára, bár inkább javasolt helyette a Xemacs konzolon történo˝ indítása.
Az ispell.el állomány a "%%&3')+)( 4 + *5 A86 ;:%R) *; $ címen található meg. A letöltött és kibontott állományt másoljuk abba a könyvtárba, ahol a lefordított + *5 $ # található (például )9) 7") #?KIZm+ 2m") )%6G@%&P(>E) könyvtár, vagy régebben )(9) 7) #E)I1 ¢) ) ). Ezután töröljük az ebben a könyvtárban található
+ *; $ #
állományt!
A telepített Ispell.el nev˝u szótárállományokat keres, ezért gyo˝ zödjünk meg arról, hogy ^ a default.aff, default.dic állományok ilyen néven is elérheto˝ k (Windows alatt a ' 15
Magyar Ispell dokumentáció 2003. 9. 15.
yz+ * , Linux alatt a )() )(]+ könyvtárakban). Ha nem, akkor készítsünk másolatot (vagy kötést) ezekr˝ol L "X és L $>H# néven ugyanabban a könyvtárban. Adjuk ki az yYK4@ + * K# :&K>H#%E : ~ parancsot, és válasszuk ki a magyar szó beírásával a magyar Ispell szótármodult. magyar az alapbeállításunk, természetesen az Emacs indító konfigurációjába (vagyis a £ )3 $Ha # fájlba) is beleírhatjuk:
¤ * K# !:!&K>H#&%& 1: ~k¥" 6¥¦ ¤ *¦ ¤ * KGC5 KR + *H¦ A folyamatos ellen˝orzés alatt használható billenty˝uparancsok megegyeznek a Hunspell angol billenty˝uparancsaival.
§
!!:+ *U{>&8!! % , a módosított ispell.el használata esetén A saját szótárba felvett szavak a )3 §
!!:+ **UY állományba kerülnek. a )3 Minthogy a Spell-menü tartalmának alapbeállítása az emacs programba bele van fordítva, indításkor az nem tartalmazza a magyar leheto˝ séget, viszont az ispell legalább egyszeri indítása után már igen, tehát ekkor már a menü is használható a parancssori utasítások helyett: a 20. verzió esetében Edit→Spell, a 21. verzió esetében pedig Tools→Spell Checking.
2.3.6. Az Emacs használata A teljes szöveg ellen˝orzésére szolgál az
yYK4@a + * parancs.
Az itt használható billenty˝uparancsok megegyeznek a Hunspell angol billenty˝uparancsaival.
yzK v
Egy szót az .
yzK4@O + * K,¨(>
paranccsal ellen˝oriztethetünk. Ehhez létezik gyorsbillenty˝u is:
Az Emacs flyspell üzemmódja lehet˝oséget nyújt a beírás közbeni helyesírás-elleno˝ rzésre, de a magyar beállításokkal nem m˝uködik tökéletesen együtt. Az üzemmódba az yzK4@©( KGP(> paranccsal léphetünk be. Ezután a hibás szavak grafikus felületen piros szín˝uvé és aláhúzottá válnak. Ha a 3. egérgombbal (vagy a két széls˝ovel egyszerre) kattintunk a szón, felnyílik egy menü, amellyel a javasolt cseréket fogadhatjuk el, illetve továbbléphetünk, felvehetjük a hibás szót az elfogadott szavak közé az ellen˝orzés idejére, illetve „végérvényesen”.
2.4. Az Ispell telepítése és használata Az Ispell a Hunspell képességeit tekintve elavult, és magyar nyelv˝u szövegek helyesírásellen˝orzésére csak végszükség esetén, a Hunspell hiányában javasolt. A különbségeket a függelékben található Hunspell kézikönyvoldal foglalja össze. 16
Magyar Ispell dokumentáció 2003. 9. 15.
2.4.1. Telepítés Linuxra Az Ispell része a legnagyobb Linux terjesztéseknek, és egy átlagos Linux telepítésnél az Ispell telepítésére is sor kerül automatikusan.
Linux alatt az Ispell szótárállományai a )()($5= ) + * állományban kerülnek elhelyezésre. A magyar Ispell szótár, vagyis a ( ; ) állomány is ide kerül.
2.4.2. Telepítés Linuxra, forráskódból Az ispell-honlapról ( "%%('))8?{ KA,-,.,/ $#"
# H( 0>1 )8P K0P J=+ E)+X`)%R 2E) ) letölthet˝o for[ ráscsomag a benne lév˝o rQt(ª yut fájlban leírtak szerint (make all ; su ; make install) lefordítható. A local.h fájl linux esetében javasolható módosításai a
o >!pq: xw1« \_
)!¬ur Ph %& 80R \ sZw®# #%A R%?¬+)
sor törlése és a
o >!pq: Ws¯ o >!pq: µ \ « []\ r
)!¬ [ pj:/:sA%A ±°²¨ 8%6n #,¨1:(³ %´#J5 J¬+) ¥)9)5= )! + 2¥
sorok eredetijeinek átírása a közöltekké. Némely rendszerek esetében szükség lehet o :Y KL/5="%A #"!( 6Z $Iu*="%6 #"!( A kötés létrehozására.
a
))(*=+)
Ezután már csak make és – rootként – make install, mely parancs a az angol adatfájlokat és /usr/local/bin/-be a programokat.
könyvtárban
a
)9)5= )! + *H) -be teszi
2.4.3. Windows A Windowsra történ˝o telepítéshez Geoff Kuenning Ispell honlapján ( "%%&('*)+)8PK6,.,-,/ #"
# H( $0>1 )8?{ K0 z=E)! X`) + * KA,P5:!:"%
"%&J ) több lehet˝oséget is találunk. Windows alatt két f˝o módja van az Ispell telepítésének és használatának. Az elso˝ ben a teljes Cygwin környezetet telepítjük a Windows NT, 2000, illetve XP operációs rendszerünkre. Ez gyakorlatilag teljes Unix környezetté egészíti ki a Windowst, és utána telepítünk egy Cygwin környezet alá fordított Ispell változatot. A másik módszer azok számára, akik a szokásos Windows környezetet elo˝ nyben részesítik, egyszer˝ubb: ez a bináris csomag formájában letöltheto˝ WIN32-re fordított Ispell változat Cygwin nélküli használata. módszer esetében az 8%&3'))8%&( H8!:!C& :( >!)(!!= )",P5:+I)>!&h 1 )1:!&,{5:I!)#&,P5: ) ¶ Mindkét 2%A G)V-!J=! %UJedH 7 Uª-)°Pm ~m") címen található verziót javasoljuk. A telepítést az + * KZ IZ $K#&,P5:0K&m+ $KG=5:( 2rQt(ª [ yat nev˝u fájl ismerteti. Az egyszer˝ubb esetben a csomagból kizárólag a 9) (#"!)=!*: ) *; $E@ fájlra van szükség, melyet a PATH-ban található valamelyik 17
Magyar Ispell dokumentáció 2003. 9. 15.
[\^`_P[]\
r környezeti változó által meghatákönyvtárba kell elhelyezni. A szótárfájlok (lásd ??) a rozható helyre teend˝ok. (A .tar.gz végz˝odés˝u fájl kicsomagolásához a Cygwin környezeten kívül pl. a djtarnt.exe program, vagy akár a népszer˝u WinZIP újabb változatai használhatók.) ^ ' B ªNW _ wzt t ^ ds t _ eª _ Vx· ^ ' B ¸\ [ w sj¹ ^ ds t _º[]\*^d_P[]\ rd· ^ ' B \ sdeQtqµµ Ha tehát a
~«jª _ fájlban a ' B ¸\ [ w s B ^ wYyuyJª [ ¹ ^ ' B « \
sorok találhatók, akkor az ispell.exe fájlt a alkönyvtárba kell helyezni.
#+' B =!*: , a magyar.hash és a magyar.aff fájlt a #' B +
Szintén a PATH-ban kell elhelyezni a cygwin1.dll nev˝u fájlt. Egy másik bináris csomag formájában letöltheto˝ WIN32-re fordított Ispell változat található a 8%&('*)+)8%&( H%&
:!)!!= )%AE@)!¯N«ji!) + * KG>1"%A# ») + * ,NI1 <* címen.
^
A letöltés után csomagoljuk ki a ZIP állományt a ' B meghajtó gyökerében, és ad^ \ juk a keresési útvonalunkhoz a ' B + * B =5: könyvtárat. Ehhez nyissuk meg a Start menü→Beállítások→Rendszer párbeszédablakot, és a Speciális lapon a középso˝ részben (Környezet) keressük meg a keresési útvonalakat rögzíto˝ környezeti változót (PATH), és írjuk a végére ^ \ pontosvessz˝ovel elválasztva a ' B + B =*: útvonalat. Sajnos ez a dán Ispell modulhoz készült csomag még kis számú ragozási osztállyal lett lefordítva, ezért ha a legfrissebb Magyar Ispell szótármodult szeretnénk használni vele, újra kell fordítanunk az Ispellt. Ehhez az EMX+gcc csomagokra van szükség. Egy harmadik win32-változat a CTAN:fptex (8%&('*)+)8%&3 >!:"%6 >!)%AE@KE 7# h)?A%A PG) ,P5:+I!) ) disztribúcióban található.
¼ ½-¾
¿`½
À!Á¨½.Ãj állomány telepítése és használata ± A L
állomány, vagyis a magyar Ispell szótár része több Linux terjesztésnek is (különböz˝o neveken: + * KG ! , * !:! !: stb.). A "%%&('*)+)( + ; A8A
:%R) oldalról töltsük le a legfrissebb változatát a Magyar Ispell csomagnak ( + K ¨x KL%6 H< ), majd adjuk ki a következ˝o parancsokat: %6 j@h<8N + K ¨x H%6 +< #0>k + * K x¨ !C&l + * # z%&J )( M3 + *; ; )()($5= ) + *) ; 2.4.4. A
Windows esetében a
állomány a 2.4.3 pontban leírt helyre kell tenni.
Ha a magyart alapértelmezett nyelvként szeretnénk látni, akkor gondoskodjunk arról, hogy a szótárállományokat tartalmazó könyvtárban a >!84! %0 ; a
-ra mutasson.
nÄ)()(*= ) *)>!8!! %
*:YKLP)9)5= )! + )(
)9)5= )! + ) >!84! %0 ; 18
Magyar Ispell dokumentáció 2003. 9. 15.
2.4.5. Az Ispell változat megfelelo˝ sége Ahogy már említésre került, az Ispell számos fordítás során beállított paramétert o˝ l függ˝oen végzi tevékenységét. Különösen régebbi Linux terjesztésekben, vagy Windows alatt meg kell gy˝oz˝odnünk arról, hogy az Ispell képes helyesen lefordítani és kezelni a Magyar Ispell forrásállományait. Adjuk ki Linux/Unix alatt a következ˝o parancsot:
+ *+KhhkÅ17u« \H_ Ha a bináris Ispell megfelel a céljainknak, akkor a következo˝ két sort kell látnunk:
ylª.sdÆ-« \_ Ç s ·ÈM É xw1« \H_ ¤ Z« \ _ ¦ Az els˝o sor jelzi, hogy elegend˝o számú ragozási osztályt kezel az Ispell (a régebbi Ispell változatoknál a 32 volt az alapértelmezett). A második sor jelzi, hogy a szótárban található szavak tartalmazhatnak ékezetes bet˝uket is. Windows alatt a következ˝o parancsot adjuk ki a parancssorban:
+ *+KhhkÅP7 A listában keressük meg a fenti két sort. Ha a MASKBITS értéke 32, vagy a NO8BIT értéke igaz, akkor a Magyar Ispell használatához szükség van az Ispell újrafordítására.
2.4.6. Az Ispell használata Szöveges állományok A következ˝o paranccsal kérhetjük szövegfájlok ellen˝orzését:
+ *+K>k d8?ÊE ¤ C¦ Ebben az esetben megjelenik egy kényelmes és gyors menü, amely sorban felmutatja a hibásnak vélt szavakat. Ha van javítási javaslat, akkor a javaslat el˝ott látható számjegyek leütésével fogadjuk el a javaslatot. A legfontosabb billenty˝uparancsok a következ˝oek: • szóköz: Átugrik a szón, azt változatlanul hagyva. 19
Magyar Ispell dokumentáció 2003. 9. 15. • számok: Választás a javasolt cserék közül. • r: Csere az általunk megadott szóra. • a: Elfogadjuk a szót az ellen˝orzés befejez˝odéséig.
£
• i: Felvesszük a saját szótárunkba. (Ez a ) 5 + **UY , vagy ha létezik az aktuális könyvtárban az ; + *UY állomány, akkor az. Kés˝obb – ha elhagytuk az Ispell programot – ez akár kézzel is módosítható.) • u: Felvesszük a saját szótárunkba, de kisbet˝usre alakítjuk elo˝ tte. • x: A következ˝o fájlra ugrunk. A félig ellen˝orzött állománynak a fennmaradó része nem lesz kijavítva.
• l: A rendszerszótárban végezhetünk kereséseket. A ¬ jel segítségével mintázatot is megadhatunk, hasonlóan a fájlrendszerben megadott útvonalakhoz: pl. az µ¬ mintázat minden L bet˝uvel kezd˝od˝o szót kilistáz a )9)>H#%R),¨7> állományból. A rendszerszótár angol nyelv˝u. • q: Kilépés mentés nélkül, ha a „q” után „y”-t nyomunk megero˝ sít˝o kérdésre. A vizsgált állomány javításai elvesznek. A Hunspell program hasonló felülettel rendelkezik Linux alatt, de több újdonsággal is szolgál a magyar nyelv számára. Leírást a Hunspell(1) kézikönyv oldalon találunk. TEX állományok A következ˝o paranccsal kérhetjük TEX, illetve LATEX állományok ellen˝orzését:
+ *+Kn%-K>k d8?ÊE ¤ 1C"¦ Amennyiben az állomány(ok) kiterjesztése .tex, a -t kapcsolót nem szükséges megadni. A -t kapcsoló hatására az Ispell nem tör˝odik a fordított perjellel kezd˝od˝o, ékezetes bet˝uket nem tartalmazó szavakkal (vagyis a TeX parancsokkal). Bizonyos parancsokat felismer, és az utána következ˝o egy, vagy két argumentummal sem foglalkozik. A matematikai környezetben lév˝o szavakat nem ellen˝orzi az Ispell. HTML állományok A következ˝o paranccsal kérhetjük HTML állományok ellen˝orzését:
+ *+K&Vf `84AÊG ¤ C¦
20
3. fejezet Fejleszt˝oi dokumentáció 3.1. Helyesírás-ellen˝orz˝ok ismertetése Számos helyesírás-ellen˝orzésre szolgáló program, illetve függvénykönyvtár áll a szabadszoftver-fejleszt˝ok rendelkezésére.
3.1.1. Aspell Angol nyelvterületen a legkedveltebb helyesírás-elleno˝ rz˝o szabad szoftver az Aspell, Kevin Atkinson munkája. Az Aspell az angol nyelv fonetikai információinak ismeretében egy speciális algoritmussal képes nagymérték˝u alaki eltérések esetén is helyes javaslatot tenni. Sajnos a programból hiányzik a nagy mennyiség˝u ragozási szabály hatékonyan kezelésének képessége, ezért nem megfelel˝o a magyar és sok egyéb nyelv számára sem.
3.1.2. Ispell Az Ispell egyenes ági leszármazottja R. E. Gorin 1971-ben, PDP-10-re assemblyben írt Spell programjának. A Spellt Pace Williamson írta át C nyelvre 1983-ban. Geoff Kuenning 1987 és 1988 között nagyobb változtatásokat eszközölt a kódon, amelynek számunkra legjelento˝ sebb lépése az affixum tömörítési technika bevezetése volt, az affixum tömörítéssel ugyanis lehet o˝ vé vált nagyszámú ragozási szabály futásidej˝u hatékony kezelése is. Gyakorlatilag ennek köszönhet˝o, hogy az Ispellhez több tucat nyelv helyesírási szótármodulja készülhetett el, köztük olyan agglutináló nyelveké, mint a finn és a magyar. A magyar nyelv vonatkozásában az is kiemelhet˝o, hogy az Ispell szabályozott szóösszetételképzési lehet˝oséggel rendelkezik, vagyis a szóösszetétel-képzést korlátozhatjuk a szavak egy bizonyos részhalmazára. Az Ispell egyéb kiemelhet˝o tulajdonságai: • De facto szabvány a szabad szoftverek világában. A Free Software Foundation GNU fej21
Magyar Ispell dokumentáció 2003. 9. 15. lesztésének alapértelmezett helyesírás-elleno˝ rz˝oje, és a legtöbb Linux terjesztésben is megtalálható. • A cs˝oben használható felületének köszönhet˝oen számos programba „beágyazható” (pl. Emacs, Kword, LyX).
3.1.3. Pspell A Pspell függvénykönyvtár Kevin Atkinson kezdeményezése, ami az Aspell és az Ispell el o˝ nyeit hivatott a forráskód egybefogásával biztosítani.
3.1.4. Myspell A Myspell az OpenOffice.org irodai programcsomaghoz készült BSD licenc˝u helyesírásellen˝orz˝o függvénykönyvtár. 2001-ben kezdte fejleszteni Kevin Hendricks azzal a szándékkal, hogy a GPL licenc alatt is elérhet˝ové tett, de a licencelt szoftverkomponensekto˝ l (mint a nyelvi modulok) is megszabadított StarOffice – új nevén OpenOffice.org – helyesírás-elleno˝ rz˝ovel rendelkezhessék. A Myspell egy kicsi, C++-ban megvalósított program, amely az Ispell tömörítési algoritmusán alapszik és kis változtatással képes az Ispell szótármodulok használatára is. A Myspellnek az Ispell-lel szemben több határozott elo˝ nye van: • Kicsi és áttekinthet˝o: mivel csak a lényeget tartalmazza, kiváló kiindulási alapot jelent egy professzionális magyar helyesírás-elleno˝ rz˝o program elkészítéséhez. • A C++ nyelv megkönnyíti a keresztplatformos C++-alapú fejlesztésekhez való integrációját. • Nagy mértékben hordozható, mivel eleve Unix/Linuxra és Windowsra fejlesztik egyidej˝uleg. • Szintén a hordozhatósággal kapcsolatos, hogy a Myspell futásido˝ ben állítja el˝o két egyszer˝u szöveges állományból – a ragozási szabálygy˝ujteménybo˝ l (affixum állomány), és a szótárállományból – a m˝uködése során használt speciális adatszerkezeteket. Ezzel szemben az Ispell bináris adatállományokat használ, so˝ t az Ispell program fordítási idej˝u beállításaitól függ, hogy futásid˝oben képes-e feldolgozni ezt a bináris adatállományt, vagy sem. • Egy Unix/Linux, és Windows operációs rendszerek alá készült professzionális irodai programcsomag, az OpenOffice.org része, amely szabad szoftverként minden felhasználó számára elérhet˝o ingyenesen, jogtisztán és korlátozások nélkül. • Az említett vonzó tulajdonságok miatt több közrem˝uködo˝ is folyamatosan fejleszti a Myspellt. Így került bele a Myspell kódjába egy jelento˝ s sebességoptimalizáció, egy a javaslattevés min˝oségét nagy mértékben növel˝o megoldás (javítási cseretáblázat), valamint a hiányzó szóösszetétel-képzési lehet˝oség és több kisebb hiba javítása. 22
Magyar Ispell dokumentáció 2003. 9. 15. • Az említett szóösszetétel-képzési kiegészítés javítja az Ispell egy bosszantó (bár kevésbé felt˝un˝o) hibáját: az Ispell egy szó ragozott alakját akkor is elfogadja egy szóösszetételben, ha amúgy a t˝oszót nem (pl. kutyaokos hibás, de kutyaokosnak elfogadott szóösszetétel).
3.1.5. Mozilla Spell Checker A Myspell forráskódján alapuló ellen˝orz˝o. David Einstein munkája. A Mozilla Spell Checker jelent˝os sebességoptimalizációja visszakerült a Myspellbe, és a tervek szerint a két ellen o˝ rz˝o egyesülni fog a közeljöv˝oben.
3.1.6. Magyar Myspell A Myspell forráskódján alapuló GPL licenc˝u elleno˝ rz˝o, amit 2002-ben kezdtem fejleszteni. El˝oször kisebb hibajelentések illetve foltok készültek a Myspellhez, de késo˝ bb rákényszerültem az id˝o és a támogatni kívánt nyelvek sajátosságai ismeretének hiányában egy külön ág létrehozására. A Magyar Myspell fejlesztés eredményeként került az eredeti Myspell ágba, és az így az OpenOffice.org-ba is a szóösszetétel-képzési leheto˝ ség, valamint a javaslattevés min˝oségét jelent˝os mértékben emel˝o javítási cseretáblázat-kezelés. A külön Magyar Myspell ág a következ˝o fontosabb tulajdonságokkal rendelkezik: • A magyar helyesírás szabályai 138. számú köto˝ jellel írási szabályához (3-6-os szabály) igazított szóösszetétel-ellen˝orzés. • Javaslattevés a szótárban nem szerepl˝o szóösszetételek esetén is. • A szókincs futásidej˝u b˝ovítésének lehet˝osége. • Az újonnan felvett szavak továbbragozása egy mintaként megadott to˝ szó alapján. • Javított javaslattevés nagybet˝ut tartalmazó szavakra. • A mássalhangzó-triplázások letiltása (sakkkör). • Cs˝o felület a beágyazáshoz. • Ékezet nélküli szavak esetén helyes javaslattevés. • Hibásan írt szavak helyes szóösszetételként való elfogadásának megakadályozása. Az egyes t˝oszavak szóösszetételben való megjelenésének (és ezzel teljes szóbokrok) letiltása helyett a javítási cseretáblázat (esetleg a teljes javaslattevo˝ modul) felhasználásával megvizsgálható, hogy nem tipikus hibáról van-e szó ritka szóösszetétel helyett. (Ilyen hibás összetételek, amelyek korábban csak az egyik to˝ szó teljes letiltásával vagy sehogy nem voltak lekezelve: szervíz, vizitorma, birság, elitélt, vasárú, tejles, szívéjes, karvaj, stb.)
23
Magyar Ispell dokumentáció 2003. 9. 15. Számos egyéb tulajdonság megjelenése a közeljövo˝ ben várható: • Köt˝ojeles és nagyköt˝ojeles alakok ellen˝orzése a köt˝ojellel kapcsolt toldalékok, ikerszók, a mozgószabály alapján egybeírt szóösszetételek, földrajzi nevek, számnevek és nagyköt o˝ jelet tartalmazó összetételek esetében. • Szóismétlések kisz˝urése (esetleg opcionálisan). • Kötelez˝o egybeírásra való figyelmeztetés (pl. legalábbis, véghezvisz).
3.1.7. OpenOffice.org Nem kifejezett helyesírás-ellen˝orz˝o, de a Magyar Myspell fejlesztésének egyik kiemelt célpontja. Az OpenOffice.org alapját képez˝o StarOffice a német StarDivision cég kereskedelmi terméke volt a 90-es években. A Sun Microsystems a céget és termékét felvásárolta üzleti megfontolásokból. A cég 2000-ben GPL licenc mellett szabad szoftverré tette a StarOffice nagy (a StarDivision által fejlesztett) részét. A licencelt nyelvi eszközökto˝ l, és adatbázis-technológiától megfosztott program az OpenOffice.org nevet kapta (az OpenOffice védett név volt, ezért a furcsa, a nyitott fejlesztés honlapjának címét hordozó elnevezés). A Sun jelenleg kereskedelmi támogatással vállalati ügyfelek számára az OpenOffice.org-on alapuló StarOffice-t is biztosítja. Az OpenOffice.org jellemz˝oi: • Professzionális irodai programcsomag • Kiváló Microsoft Office export, import sz˝uro˝ k • Nagy méret˝u, sok képet tartalmazó dokumentumok gyors kezelése. • GPL-es: ingyenes, módosítható, terjesztheto˝ (illetve kett˝os licencelés˝u). • XML alapú saját fájlformátum (Java jar formátumú állományokban). • UNICODE támogatás, még ázsiai nyelvekhez is (mindketto˝ Sun fejlesztés) • A GPL licenc alá nem helyezhet˝o licencelt részek fokozatos kiváltása (lingucomponent kísérleti fejlesztés: Myspell helyesírás-elleno˝ rz˝o, ALTLinux elválasztó modul, szinonimaszótár, nyelvhelyességi ellen˝orzés). • Honosított: magyar helyesírás-ellen˝orzés a Magyar Myspell helyesírás-ellen˝orz˝o, és -javító programmal, és a Magyar Ispell szótármodullal. Magyar elválasztás Mayer Gyula és Miklós Dezs˝o !! 0(! ( %6E@ TEX elválasztási moduljával. Mintegy 20 000 programfelirat és üzenet magyar fordítása. A számos új funkció miatt is az OpenOffice.org sokáig fejleszto˝ i stádiumban volt. Mivel azonban a program meglep˝oen üzembiztos és jól használható, 2002-ben (marketing okokból is) kibocsátásra került az 1.0-s elnevezés˝u változat. 24
Magyar Ispell dokumentáció 2003. 9. 15. A fejleszt˝oi változat jelenleg még az eredeti számozást használja (641D), de ez a számozás várhatóan a közeljöv˝oben megsz˝unik.
A Magyar OpenOffice.org változatai a "%%&('*)+) ST#0 89A86 ; ! oldalon jelennek meg, a fejleszto˝ i változatok a "%?%&('))+ST# H89?86
! )",.nC könyvtárban találhatók. A Magyar OpenOffice.org windowsos és linuxos változatai a OOo változatszám mellett egy csomagszámot is kapnak (egymástól függetlenül). Tehát pl. a legfrissebb linuxos Magyar OpenOffice.org teljes „neve”: Magyar OpenOffice.org 1.0, 43-as számú linuxos csomag.
3.2. Az Ispell felépítése és muködése ˝ Az Ispell adatállományai
kiterjesztéssel rendelkeznek, és Unix/Linux alatt a () 9)($5= ) + *) vagy )9) (#"!)5= )! + *) könyvtárban kerülnek elhelyezésre.
Egy ilyen hash állomány (pl. a
) két f˝o részb˝ol áll: tartalmazza a (ragozási) osztályokba sorolt ragozási szabályokat, és tartalmazza a tényleges hasítótáblát is. A hasítótábla tárolja a t˝oszavakat és minden egyes t˝oszónál még az azon alkalmazni kívánt ragozási osztály vagy osztályok kapcsolóit.
Egy Ispell hash-állomány a =!5 >1 paranccsal állítható elo˝ , amely két állományt vár bemenetként: egy ragozási szabályokat (és egyéb beállításokat) tartalmazó affixum állományt és egy szótárállományt, amely a t˝oszavakat és kapcsolóikat tartalmazza.
3.2.1. Ragozási szabályok Az Ispell affixum állomány formátumát egy kézikönyvoldal (man 4 ispell) ismerteti részletesen. Itt most csak a ragozási szabályokat, és az affixum tömörítés módszerét vizsgáljuk meg közelebbr˝ol. Egy ragozási szabály nem más, mint egy feltételes kifejezés, amely leírja, hogy milyen feltételek között milyen módon helyezhetünk toldalékot egy alapszóhoz. Az Ispell ragozási szabályainak leírása emlékeztet a szabványos regex reguláris kifejezésekre, és a következ˝o f˝o jellemvonásokkal rendelkezik: • A feltétel a t˝oszó utolsó (prefixum esetén els˝o) legföljebb nyolc karakterére vonatkozik. • A feltételben erre a legföljebb nyolc karakterre vonatkozóan szerepelhetnek karaktertartományok is. • A toldalékolásnál a toldalék hozzáillesztése elo˝ tt lehet˝oség van a t˝oszó végének leválasztására. Itt viszont már nem használhatunk karaktertartományokat (pontosan ismerni kell a leválasztandó karaktert vagy karaktersorozatot). Példák, amelyek bemutatják a ragozási szabályok szintaxisát. (A ketto˝ s kereszt után sor végéig tartó megjegyzés következik, amely már nem része a ragozási szabálynak.) 25
Magyar Ispell dokumentáció 2003. 9. 15.
o <KGÌ7<< o 7<KGÌ<<0 Ë ËÍ µ o 0><KGÎ0><0 : C+Ïj+0><KGÌ+0>< : C ² [ Ë t tqNtjÆ o KGÌ h !;Ï1!!YKGº!!0h+!;Ïq=!ÒYKGÌ=!Ò0h+! }5ÐYW-Ñd °qª{µ o CE+NKGÎCG:!C }4Óª{t! ª{Æ o C "%4YKGÌC"%!C&Õ :"%Ï3CE+´KG±CE+CEÕ :"%
Æ-Ôj _ ª KªÏ Í ªÆ o #C&YKGÌ#C&!: !C [ Ö Ë }4Ós \ Æg K \ Æ
Ï Ë o = 7"%CG<5CPKEÌ= 7%&CG<< Ë
Ë
Az els˝o két példa jelentése, hogy Z bet˝ure végz˝od˝o t˝oszó Z, és ZÁL toldalékkal rendelkez˝o alakja is helyes (ez a kisbet˝us alakokra is vonatkozik). A harmadik példa szerint az EDZ bet˝usorozatra végzo˝ d˝o szavak ENEK toldalékot is kaphatnak. A negyedik példában karaktertartományt adunk meg az utolsó karakterre vonatkozóan: minden Ó, U, és Ú-ra végz˝od˝o szó VAL toldalékot kaphat. Az ötödik példa komplementer karaktertartományt ad meg: ha a szó nem A vagy E bet˝ure végz˝odik, megkaphatja a NAK toldalékot. A hatodik példa a tetsz˝oleges karakter jelét, a pontot mutatja be: bármely szó megkaphatja a KÉNT ragot. A hetedik példa a t˝oszó végének levágását mutatja be: az A-ra végz˝od˝o szavak ÁNAK toldalékot kaphatnak a szóvégi A levágásával. Az utolsó egy kombinált példa: A nem SZIK, vagy DZIK vég˝u, de ZIK-re végzo˝ d˝o szavak Z toldalékot kaphatnak a szó végi IK levágásával. Így pl. a barátkozik→barátkozz helyes átalakítás, de a vakaródzik→vakaródzz, illetve mászik→mászz már nem.
3.2.2. Ragozási osztályok Az el˝oz˝o példák meglehet˝osen keverve tartalmaztak különböz˝o szófajú szavakra vonatkozó (és részben hibás) szabályokat. Az Ispell ragozási osztályok kialakításának lehet o˝ ségével biztosítja, hogy a t˝oszavakat a kategóriájuknak megfelel˝o ragokkal láthassuk el. A ragozási osztályok egy bet˝us (vagy egy karakteres) névvel rendelkeznek, amit a továbbiakban kapcsolóknak nevezünk. Példa két ragozási osztály definiálására:
©ZTª{' }4Óµ
µ× }4Óµ
µ× µuµ µuµ
µªµ o + 0>!KGÌ+0>!*H! µ Í o +0 >!KGÌ+0>!*H ªµ o A<"! C!*+KG±6<"!C&!*H! Í o A<"!C!*+KG±6<"!C&!*H
©ZÇ«¨' 26
Magyar Ispell dokumentáció 2003. 9. 15.
µ
µuµ
ª{Æ o 6 <0"h !KG±A<"0h+!*:!C ªªÆ o AÊ 0h+!*+KGØÊA0h H!:!C
Az els˝o osztály a mély hangrend˝u f˝onevek ragozásának egy részletét mutatja, az L bet˝ure végz˝od˝o szavak -val toldalékolását, míg a másik osztály a mély hangrend˝u alanyi igeragozás egy részletét.
3.2.3. Szótárállomány Az Ispell szótárállományban (.dict fájl) egyszer˝uen felsoroljuk a to˝ szavakat, a megfelel˝o kapcsolókkal ellátva:
#C& )ª-)t)!¯ +0>!)ª-)3Ù !C 9)3«) ^ 6<"0h H)« !!H!=!= Látható, hogy egy t˝oszó tetsz˝oleges számú ragozási osztályba sorolható, de akár ragozási osztályt sem kötelez˝o megadni.
3.2.4. Affixum tömörítés Minden ragozási szabályhoz egy 256 byte-ból álló tömb kerül a hash állományba. A tömb szerepe, hogy gyorsan eldönthet˝o legyen egy ragozott szóról, hogy az adott ragozási szabály alkalmazásával állt-e el˝o, vagy sem. A tömb az ASCII karaktertábla elemeivel indexelheto˝ , és visszaad egy byte-ot, ami a már említett 8 karakterpozícióra vonatkozó elo˝ fordulási információkat tartalmazza: pl. ha a tömb[’A’] elem értéke binárisan 11111010, akkor a t o˝ szóra nem alkalmazható a ragozási szabály, ha a t˝oszó „A” bet˝ure végz˝odik, vagy a kett˝ovel el˝otti pozíción is „A” bet˝u található. A Myspell forráskódja részletesen dokumentálva tartalmazza az affixum tömörítési algoritmust. Amiért itt említésre került, az az, hogy az affixum tömörítés elnevezés nem az affixum állomány kisebb méretre való tömörítésére utal, hanem arra, hogy a lehetséges gyors adatszerkezetek közül talán a legtömörebbet sikerült Geoff Kuenningnek megtalálnia, gyakorlatilag a ragozási szabályokban szerepl˝o karaktertartományok hatékony tárolásával és kezelésével.
3.3. Magyar Ispell A Magyar Ispell egy keretrendszer, amely magyar affixum és szótárállományt állít el o˝ az Ispell számára. Az HI3+ * program segítségével ezekbo˝ l az állományokból hozható létre a megfelel˝o Myspell affixum és szótárállomány is. 27
Magyar Ispell dokumentáció 2003. 9. 15.
3.3.1. Történet A Magyar Ispell kialakítását 1998-ban kezdtem. 1999-re a tárgyas igeragozás, néhány képz o˝ s toldalékolás, sok határozószó és névutó kivételével a helyesírási-modul hibákkal ugyan, de alapjaiban elkészült. A félkész helyesírás-elleno˝ rz˝ovel 1999-ben a Közm˝uvel˝odésügyi Minisztérium és a Matáv által közösen meghirdetett „A Magyarországi digitális kultúráért” pályázaton is részt vettem, de sikertelenül. 1999 o˝ szén a helyesírás-ellen˝orz˝ovel való munkát befejeztem, az eredmények 2000 nyaráig, £ azonosítóm megsz˝untéig elérhet˝oek voltak a "%?%&('*)+)615 $#0# ;0KGA<00>
! ) : %& !) címen. 2001 o˝ szén Szántó Tamás, a KDE grafikus felület magyar honosítója felajánlotta a segítségét az ellen˝orz˝o fejlesztésének folytatásához. Tamás folyamatosan tesztelte az elleno˝ rz˝ot, számos (ragozási) típushibát megtalálva. A tesztelések eredménye volt a szókincs jelent o˝ s b˝ovítése is. Tamás munkáját Bíró Árpád folytatta, els˝osorban további típus- és egészen különleges rejtett hibák feltárásával, a matematikai és egyéb nyelvi modulok összeállításával és a forrásállományok ellen˝orzésével. Godó Ferenc hatalmas szólistáival az ellen˝orz˝o alkalmassá vált a mindennapos munkára. A Magyar Ispell fejlesztése 2002 januárjáig „titokban” folyt, ekkor jelent meg az els o˝ nyilvános változat. A nyilvánosságra hozatalt követ˝oen csatlakozott hozzánk Trón Viktor, aki további hibák, illetve hiányosságok feltárása mellett internetes forrásokból összegy˝ujtötte, és a Magyar Ispell számára feldolgozta a mai és történelmi magyar helységneveket, illetve – aminek külön örülök – els˝oként vállalkozott az alul dokumentált Magyar Ispell keretrendszer m˝uködésének megismerésére, és ennek eredményeképp a szót˝ogenerálás egyes részeinek javítására. A Magyar Ispellb˝ol Koblinger Egmont – aki számos hasznos észrevétellel, és szólistával is hozzájárult a Magyar Ispellhez – készített folyamatosan (SuSE) RPM csomagokat, illetve Pásztor György Debian karbantartó DEB csomagokat. Talán a Magyar Ispell hatására a megalakulófélben lévo˝ FSF.hu Alapítvány az OpenOffice.org honosítása mellett döntött, és szervezésükben egy hétvége alatt a programcsomag tízezres nagyságrend˝u feliratai, és üzenetei kerültek lefordításra. Jelenleg a magyar OpenOffice.org linuxos változatának Noll János, windowsos változatának Bencsáth Boldizsár a karbantartója ( "%%&('*)+) ST#0 89A86 ; ! ) ).
3.3.2. Alapvet˝o problémák Az agglutináló nyelvekhez nem magától értet˝od˝o az Ispell szótármodulok elkészítése. A legjelent˝osebb megoldandó problémák a következ˝oek voltak a Magyar Ispell kidolgozása során: 1. Az Ispellben nincs többszörös toldalékolási leheto˝ ség. Míg a magyar nyelv gazdag a képz˝okben, jelekben, és ragokban, addig az Ispell csak a tágabb értelemben vett ragok kezelésére képes. A lehetséges szó végi hasonulások, képzo˝ k, jelek és ragok kombinációi miatt igen nagy számú ragozási szabály megadása szükséges, amit „kézzel” helyesen és belátható id˝o alatt megadni lehetetlen. 28
Magyar Ispell dokumentáció 2003. 9. 15. 2. A szótárállományra ugyanez vonatkozik: közvetlen elkészítése nagy nehézségekbe ütközik, és az eredmény nehezen módosítható a kés˝obbiekben. 3. Az egyes képz˝ok olyan számú képz˝o+jel+rag kombinációt állítanak el˝o, és ennek megfelel˝o számú ragozási szabályt igényelnek, amelyet már nem lehet elfogadható méret˝u állományban tárolni. A magyar Ispell hash állomány jelent˝os részét (több, mint 60%), a jelenlegi 10000 ragozási szabályt tároló affixum tömörítést használó adatszerkezet (tehát nem a tényleges szótári hasítótábla) teszi ki, mintegy 5-7 MB-on. Ha az összes lehetséges képzo˝ kombinációt ragozási szabályokkal próbálnánk tárolni, nagy valószín˝uséggel nagyságrendi növekedésre lehetne számolni a fájlméretben és a helyesírás-elleno˝ rzés id˝oigényében is. 4. Az Ispellben nincs lehet˝oség nem szótári tövek felvételére. A morfofonológiai alternációk egy része, mint a szó végi „a”, „e” változása (macska→macskát) jól kezelhet o˝ a ragozási szabályokkal, de a hangkivet˝os f˝onevek (eper→epret), a nyitótövek (kéz→kezek), a hangugratós igék (bérel→bérlem)1 már nem, ráadásul ezek igen változatos formát mutatnak a magyar nyelvben. 5. Nemcsak a ragozási szabályok számát sem növelhetjük az égig, hanem a ragozási osztályok száma sem haladhatta meg pusztán gyakorlati megfontolásból a 26-ot (a legtöbb Linux terjesztés ugyanis pár éve ilyen korlátozásokkal fordított bináris Ispellt tartalmazott). Megoldás szerencsére mindegyik pontra akadt: 1. Az affixum állomány, és a szótárállomány is automatikusan van elo˝ állítva a Magyar Ispell keretrendszerben. Az affixum állományokban az PM makrófeldolgozó segítségével gyakorlatilag többszörös toldalékolással vannak leírva a ragozási szabályok. A +L "X névre hallgató Ispell affixum állomány a végleges ragozási szabályokkal fordítási id o˝ ben jön létre. 2. A szótárállomány forrása jelenleg az alapmodulból és külön kezelheto˝ szaknyelvi modulokból áll. A szavak osztályozása egyszer˝u szólistákkal („egymezo˝ s” adattáblákkal) történik, ami rendkívül leegyszer˝usíti a szókincs bo˝ vítését a Magyar Ispellben. A szólistákból héj- és awk programok segítségével áll el˝o az Ispell buildhash programja számára szükséges magyar.dict szótárállomány. 3. A Magyar Ispell kombinált módszert használ a képzett szóalakok kezelésére: a ragozási szabályok mellett a f˝onevekhez képest viszonylag kis elemszámú szófajok – mint a melléknevek és az igék – esetében automatikusan állítja elo˝ a képzett alakokat, és ezek külön kerülnek a szótárba más szófajú szavakként. Ezzel a módszerrel a szükséges ragozási szabályok számát jelent˝os mértékben csökkenteni lehetett, a szótárállomány növekedésének rovására. A szótárba külön felvett szóalakok számának növekedése mintegy kétszeres, de a hash állomány speciális felépítéséb˝ol fakadóan a végleges Ispell adatállomány mérete kevesebb, mint ötven százalékkal n˝o csak. (A ragozási szabályok számának nagyságrendi növelése ennél sokkal nagyobb problémát jelentene). 1
Lásd pl. [5, 832 skk.].
29
Magyar Ispell dokumentáció 2003. 9. 15. 4. A nem szótári tövek kezelésére kényszer˝uségbo˝ l szokatlan megoldást sikerült találni: a nem szótári t˝ohöz kapcsolódó alakok levezetése nem valódi t˝ob˝ol, hanem az egyik ragozott alakból történik. A módszer rendkívül eredményesnek bizonyult: alkalmas volt a magánhangzó-harmónia szerint elkülönül˝o kisebb, zárt f˝onévcsoportok ragozásának kezelésére is, valamint ezt és a különböz˝o hangrend˝u alakok kezelését is egy ragozási osztályon belül el lehetett intézni (mivel a t˝onek választott többes számú alak köt˝ohangzójából egyértelm˝uen meghatározható a szó hangrendje)! 5. A ragozási osztályok számának csökkentése érdekében több látszólag nem optimális, de mint kés˝obb kiderült, a fejlesztés szempontjából szerencsés választásra került sor: a ragozási osztályok egy része össze lett vonva, pl. az ikes és iktelen igék ragozása, a f o˝ nevek és melléknevek ragozása részben ilyen volt. A hangrend esetében sem a ragozási szabályok számával takarékoskodó négy osztályos megoldás mellett döntöttem (mély hangrend, közös magas hangrend, csak ajakkerekítéses, csak ajakréses magas hangrend), hanem a szabályokat jelent˝os részben duplázó, de eggyel kevesebb ragozási osztályt kívánó megoldás mellett (mély hangrend, és a két magas hangrend). Azóta szerencsére a 26 osztályos határt is sikerült átlépni, mindenféle probléma nélkül, mivel a Linux terjesztések is átálltak a több ragozási osztállyal fordított Ispell binárisokra.
3.3.3. Affixum keretrendszer Az affixum állományok az áttekinthet˝oség miatt több részre vannak feldarabolva. A legfontosabb, amely a ragozási osztályok rövid összefoglalását is tartalmazza, az "Xx H89nÊ névre hallgató állomány. Az "Xx ! :0! és az "Xx H%6 állományok az alanyi illetve a tárgyas igeragozást tartalmazzák. Ezek az állományok hangrendi összevonást nem tartalmaznak, az m4 makrók, amelyek itt szerepelnek, csak a ragozási szabályokban szereplo˝ mintákat általánosítják. Pl. az aff.alanyi állomány els˝o (valóban is használt) makrójának definíciója a következo˝ :
>!pj: ¤ >1*CÏ2}2« [ ¯QÚ(Æ
µ3yaNr N_ Ë -c
}µ [ ¯Nr Ë \ ÆQ¦ Egy példa a makró használatára, ugyanebb˝ol az állományból:
>1!5C
K \ Æ-Ϫ.s Ë
Ez a sor az "Xx !H!:0 állomány m4 makrófeldolgozón való átsz˝urésének eredményeképp a következ˝ore alakul:
}« [ ¯QÚ(Æ-µ3yuNr N_ Ë .c N}µ [ ¯Nr Ë \ Æ
K \ Æ
ÏHª-s Ë
A makrók használata itt csökkenti a tévedéseket, egyszer˝usíti a minták módosítását a kés o˝ bbiekben. 30
Magyar Ispell dokumentáció 2003. 9. 15. Az "Xx H89:&h állomány tartalmazza a f˝onevekre, és – az állomány megtéveszt˝o neve ellenére – a melléknevekre vonatkozó ragozási szabályokat illetve ezek m4 forrását. Az m4 makrózás használata ebben az állományban lényegesen megkönnyíti a számtalan rag el˝oállítását. Az m4 makrók paraméteresek lehetnek, egymásba ágyazhatók, egyszer˝u feltételvizsgálatokat végezhetünk. Segítségével a mély és a két magas hangrend, valamint a tekintélyes számú képz˝o+jel(ek)+rag kombináció rövid makrókkal legeneráltatható. A pelda állomány tartalma a bal oldalon, az m4-gyel feldolgozott állomány kimenete a jobb oldalon látható:
>!pq: ¤ ZÏ v m+«jª v m+«jª v m+rª-¦
Futtatás:
v {Mk+ > CE(# ya«jª CE(# ya«jª CE(# yarª CE(# [ «qª CE(# [ «qª{ CE(# [ rª CE(#HÚ Í «jª CE(#HÚ Í «jª CE(#HÚ Í rª
>!pq: ¤ Ê? 5Ï 7 ¤ v m+yT¦ 7 ¤ v m [ ¦ 7 ¤ v mÚ Í ¦6¦ Ê? ¤ CG3#¦
A define(makró_név, makró_törzs) szintaxis az m4 központi utasítása, a paraméterek $szám azonosítóval érhet˝ok el. Részletes leírása: 5:"89OPM .
További affixum állományok: "X¨ 89:&h ;P289 , amely a hangkivet˝os és a nyitótövek ragozását tartalmazza (a többes számú alakból levezetve) két ragozási osztályt meghatározva. Az "X¨ 5 UYC h a hangugratós igék ragozási osztályát definiálja.
A következ˝o táblázat összefoglalja a Magyar Ispell jelenlegi ragozási osztályait. A táblázat oszlopai: a ragozási osztályok bet˝ujelei (a kapcsolók); a szófaj, amit érint a ragozási osztály; a hangrend (o = mély, e = ajakréses magas, ö = ajakkerekítéses magas); és végül a ragozási osztály leírása példákkal. Jel
Szófaj
H.
Leírás
A
névszó
o
A magánhangzóra végz˝od˝o névszók mély hangrend˝u birtokos személyjeles toldalékolása (ollónkról, macskáitokéinak), többes számú toldalékai (harcsákat), -ék képz˝os alakjai (kutyáékról), -cska képz˝os alakjai (birtokos személyjelek nélkül), és -nként, -stul ragok. A két utolsó ragot a mássalhangzóra végz˝od˝o f˝onevek is felvehetik (nadrágostul). A tárgyragot kezel˝o ragozási szabályok nem itt szerepelnek, hanem a K (illetve a hangrendt˝ol függ˝oen az L, M) osztályokban. 31
Magyar Ispell dokumentáció 2003. 9. 15. Jel B C D E
Szófaj névszó névszó melléknév ige
F
melléknév
G
melléknév
H
melléknév
I
névszó
J
névszó
K
névszó
L M N
névszó névszó névszó
H. e ö – e
Leírás Mint az el˝oz˝o, csak a hangrend más. Mint az el˝oz˝o, csak a hangrend más. A leg-, legesleg- prefixum. Nem confixumként kezelve még (legkutya). ajakréses magas hangrend˝u alanyi igeragozás: ikes és iktelen jelen és múlt id˝o, feltételes és felszólító mód; határozói igenév (-ve/-vén), fo˝ névi igenév (-ni) és személyragozása (-nem, -ned, -nie, ...). o Fokjeles alakok (-bb) és ragozásuk, „a” köto˝ hangzós toldalékolás (-at, -an, -ak, és -ak ragozása). e Mint az el˝oz˝o, csak a hangrend más. Itt van egy kis redundancia az L osztállyal is. ö Gyakorlatilag megegyezik az el˝oz˝ovel, ezért sor kerül majd a két osztály összevonására. oeö Nem szótári t˝ovel rendelkez˝o, valamint a zárt -a köt˝ohangzót kapó névszavak többes számú alakjaiból levezetett toldalékolás. Nyelvtanilag több típus is tartozik ide, példákkal: bokor/bokrot, varjú/varjak, út/utak, f˝u/füvek, m˝u/m˝uvek, jó/javak, falu/falvak, valamint az -a köto˝ hangzós zárt osztály tagjai: vas/vasak. A nem szótári tövek a többes számú, a birtokos személyjeles, és tárgyragos toldalékokat kapják meg az I osztályban. Lásd 89:&h(UYP28 I és 891:Eh(UYP28!I1 $I állományokat. oeö Az el˝oz˝o osztályt kiegészít˝o -i melléknévképz˝o. Ezt csak a mássalhangzó vég˝u hangkivet˝os nem szótári tövek kapják meg mind a mai magyar helyesírás szerint (hatalmi, de úti, t˝uzi!). Ez különbözteti meg a morfo1 és morfo2 csoportokat (bár a kategorizáláson ez nem látszik, mivel az -a köt˝ohangzós alakoknak ez alapján a 89:&hUYP289Z $I állományban is helyet kellene kapni). Valószín˝u, hogy szerencsésebb volna a -i képz˝os alakokat külön szóként felvenni a szótárba, mivel nem fedi le a teljes ragozási sort (paradigmát) ez az osztály (hiányoznak a birtokos személyjeles toldalékok, például hatalminkról). Az osztályba bekerült a -hat, -het végz˝odés˝u igék E/3. múlt idej˝u alakját képez˝o két szabály is. A kés˝obbi fejlesztések miatt ez várhatóan kikerül innen. o Tárgyrag, és a mássalhangzó vég˝u névszavak toldalékolása az A osztályhoz hasonlóan. Az A osztálytól való szétválasztására az I osztályba tartozó kivételek miatt volt szükség (nincs például szerelemünket). e Mint az el˝oz˝o, csak más hangrend˝u. ö Mint az el˝oz˝o, csak más hangrend˝u. ö -höz, -ön ragok. A névszók egy ajakkerekítéses magas hangrend˝u to˝ osztálya ajakréses hangrend˝u toldalékokat vonz (könyvet, zöldet), de a -höz, és az -ön esetében nem (könyvhöz, zöldhöz). A -hez, és -en toldalékú hibás alakok kivételként vannak letiltva a „w” kapcsolóval a f˝onevek esetében (könyvhez), míg mellékneveknél csak a -hez (zöldhez, bölcshez), mivel itt az -en határozói rag miatt helyesek a zölden, bölcsen. stb. alakok.
32
Magyar Ispell dokumentáció 2003. 9. 15. Jel O
Szófaj ige
H. o
P Q
ige névszó
ö o
R
névszó
eö
S
névszó
o
T
névszó
eö
U
névszó
o
V W X
névszó névszó ige
e ö –
Y
névszó
–
Z
névszó
–
a b c
számnév számnév névszó
– – –
d e
ige ige
– e
f
névszó
–
Leírás Mint az E kapcsoló, csak ez a mély hangrend˝u alanyi igeragozás: A -k vég˝u nem ikes igék ragozása külön van lekezelve (lásd C h %A C") ! CG+%?+E)!C . Mint az el˝oz˝o, csak ajakkerekítéses magas hangrend˝u. -ja (mély hangrend˝u I/3 személy˝u birtokos személyjel és ragozott változatai). -je (magas hangrend˝u I/3 személy˝u birtokos személyjel és ragozott változatai.) -a (mély hangrend˝u I/3 személy˝u birtokos személyjel és ragozott változatai). -e (magas hangrend˝u I/3 személy˝u birtokos személyjel és ragozott változatai). Esetragok birtokos személyjel nélkül. A birtokjeles (-é), és birtoktöbbesít˝o jeles (-i) alakok is megtalálhatók itt (macskáéit), de önmagában a tárgyrag nem. Mint az el˝oz˝o, csak más hangrend˝u. Mint az el˝oz˝o, csak más hangrend˝u. Igeköt˝ok: abba-, agyon-, alá-, ..., végbe-, végig-, vissza-. Egyszer˝usítés, hogy a legtöbb ige minden igeköt˝ot felvehet. Ha egy igénél nem szeretnénk igeköt˝os alakokat, akkor helyezzük el az igét az UYCG+%?Z 2m állományban is. Általában két esetben van erre szükség: ha az ige már tartalmaz valamilyen nem tipikus igeköt˝ot (kétségbeesik); vagy igenévszóról van szó, és nem akarjuk, hogy a névszóragok megjelenjenek az igeköt˝ovel együtt (megingeiket). Ez utóbbi esetben külön vannak felvéve az igeköt˝os alakok. Lásd UYCG+%?Z 2m . Szóösszetételben való szereplést engedélyezo˝ kapcsoló (COMPOUNDFLAG). Lásd a Hunspell(4) kézikönyv oldalt! A legtöbb köznév megkapja. Kivételek a 81:&hUYC ! :( 2m állományban. Idegen kiejtés˝u, vagy mozaikszavak toldalékai esetében a köto˝ hangzó hiányát jelzi. A CG+%?GÊ? UY !:+< ~m állományban vannak megadva azok a szavak, amelyek felveszik a Z kapcsolót. A tízesek prefixumként: tizen-, huszon-, ... kilencven-. A százasok prefixumként: száz-, kétszáz-, ... kilencszáz-. -szer˝u, -féle, -fajta, -beli, -nem˝u képzo˝ szer˝u utótagok. A 6-3-as szabály helyes kezeléséhez szükséges osztály. (Ezek az utótagok nem számítanak bele a szótagszámba, hasonlóan az igazi toldalékokhoz.) morf. alt. ragozás Ajakréses magas hangrend˝u tárgyas igeragozás: ikes és iktelen jelen és múlt id˝o, feltételes és felszólító mód. Idegen toldalékolású, y-ra végz˝od˝o f˝onevek jele.
33
Magyar Ispell dokumentáció 2003. 9. 15. Jel g
Szófaj –
h
számnév
i
névszó
j k l m n o
névszó f˝onév f˝onév f˝onév f˝onév ige
p q r s t u
ige – – f˝onév f˝onév –
v
–
H. –
Leírás Toldalékolt alakok jele. A Hunstem tövez˝o számára szükséges információt adja meg. A g kapcsolót közvetlenül követ˝o 1 és 9 közé es˝o szám jelentése, hogy a t˝o a számnak megfelel˝o számú szóvégi karakter levágásával állítható el˝o. Ha ilyen szám nincs, akkor a háttérben a különleges __szó szótári bejegyzéssel (annak kapcsolóiként) van tárolva a szó töve. L. ragozatlan.2 állomány leírását. – Ezeregyszáz-, ezerkétszáz-, ... ezerkilencszáz- prefixumok a kétezer alatti számok egybeírásához. o -nyi. A morfofonetikus csoport miatt van szükség a szétválasztásra, mivel a többi melléknévképz˝ovel ellentétben ez nem járul a nem szótári tövekhez (bokrnyi, füvnyi). eö Mint az el˝oz˝o, csak magas hangrend˝u. o Melléknévképz˝ok: -(o)s, -(j)ú, -i, -tlan/-talan, nem teljes ragozási sorral. e Mint az el˝oz˝o, csak más hangrenddel. ö Mint az el˝oz˝o, csak más hangrenddel. oeö Mint az el˝oz˝o, csak a morfo csoportra vonatkozóan. o Mint az „e” osztály, csak ajakréses magas hangrend˝u tárgyas igeragozás. ö Mint az el˝oz˝o osztály, csak más hangrend˝u. – -féle toldalék a tulajdonnevekhez. o eö –
–
-ai (I/3 birtokos személyrag + birtoktöbbesíto˝ jel). L. S kapcsoló -ei (I/3 birtokos személyrag + birtoktöbbesíto˝ jel). L. T kapcsoló A „w” kapcsoló hatását módosító kapcsoló: ha meg van adva a „w” mellett, akkor a tiltás csak a szót˝ore vonatkozik, a tiltott szót˝o toldalékolt változataira nem. A mangrove szót így lehetett egyszer˝uen és tártakarékosan lekezelni, mivel a felvitt szabályok nem kezelik a -e végzo˝ dés˝u f˝oneveket mély hangrend˝u toldalékokkal. A „mangrove” szó mellett szerepel a „mangrové” is a szótárban „w”, „u” (és egyéb) kapcsolókkal, így a „mangrové” alak helytelen, de a „mangrovét”, „mangrovéinak” stb. alakok helyesek. A „mangrove” említett kapcsolóit a 6<+%6 9)C h%A C)+<0"% : )!:h állományban találjuk meg. szerepelhet összetételekben els˝o szóként (COMPOUNDFIRST). Jelenleg ezzel a kapcsolóval van megoldva az egyszer˝u to˝ számnevek, és a melléknévképz˝os f˝onevek egybeírásának engedélyezése (illetve a Magyar Myspell gondoskodik arról, hogy tényleg csak a melléknévképzo˝ s alakokat lehessen egybeírni a t˝oszámnevekkel), pl. harmincnapi, de! két hónapos. Lásd A magyar helyesírás szabályai 119. pontját, és a Hunspell(4) kézikönyv oldalt!
34
Magyar Ispell dokumentáció 2003. 9. 15. Jel w
Szófaj –
H. –
x
–
–
y
névszó
–
z
számnév
–
0
–
–
Leírás Tiltott szóalakok kapcsolója (FORBIDDENWORD). A Magyar Ispell/Myspell egyszer˝usít˝o felépítésének számos hibája küszöbölhet˝o ki a hibásan képzett szavak tiltásával. A szótárbo˝ vít˝o az idegen kiejtés˝u szótagra végz˝od˝o, de a t˝ovel egybeírt toldalékú szavak felvitelénél találkozik ezzel (pl. Madáchhal/w),o valamint a rossz szóösszetételek til_P\ µ _ w _._ megjegyzést tásánál (ifjúpár/w). Adjuk meg a y/c´sdetjµ3µ a szótárállományban, ha ragozott szavak tiltását szeretnénk. (Megtehetnénk ezt úgy is, hogy ha a szót ismételten felvesszük a +<""%&H!:( $I állományba, a „w” kapcsolóval. A speciális megjegyzés használatának két el˝onye van: El˝oször is, a tiltott szó nem kerül bele az Ispell szótárba, másodszor az alapszó, és a tiltás egy helyen található, és így könnyebben nyomon követhet˝o, és szerkeszthet˝o.) Lásd a Hunspell(4) kézikönyv oldalt! szerepelhet összetételekben utolsó szóként (COMPOUNDLAST). Ezt a külön felvett (I osztály által kezelt) többes számú alakok kapják meg. összetett szó (COMPOUNDWORD). A 6-3 szabály helyes alkalmazásához szükség van arra az információra, hogy a to˝ ként felvett szó vajon összetett-e, vagy sem. Lásd a Hunspell(4) kézikönyv oldalt! -magammal, -magaddal, -magával, -magunkkal, -magatokkal, magukkal toldalékként, mint a sorszámnevek visszaható névmás „ragja”. Lásd 6< %R )(C h %A C)+<""%&H!: )A<"!J:&hI . A tövezésnél nem megjelenítend˝o alak jele. A Magyar Ispell számos olyan „tövet” tartalmaz, amelyek pusztán gyakorlati szempontból léteznek. Ilyenek az improduktív névszóragozásnál a többes számú alakok (madarak, szerelmek), illetve a köt˝ojellel toldalékolt szavaknál a szó és köt˝ojel alakok (tv-). Ezeket az alakokat a 0 kapcsolóval ellátva a tövezésnél nem jelennek meg.
3.3.4. Szótári keretrendszer A szófajilag elkülönített szóállományok lehet˝ové teszik a szófajra jellemz˝o ragozási osztályok kapcsolóinak és az alapszavaknak a viszonylag egyszer˝u párosítását. Héj- és awk program gondoskodnak err˝ol bizonyos kivétellisták figyelembevételével. Például egy szófajon belül három f˝o ragozási mintacsoport különíthet˝o el a hangrend alapján. Az alapszavak hangrendje kib˝ovített reguláris kifejezésekkel (awk programokkal) fordítási id˝oben kerül felismerésre, pl. egy erre vonatkozó programrészlet:
o Õ ¡ !:7 :>1Û !ÕC )3}~!Ò"?}~=+#0>+81 ?ÊEC J:! A%Lh0@<&¬5C v )TDu 45:"% )3}~!Ò"?}~=+#0>+81 ?ÊEC J:! A%Lh0@<&¬ v )ÞÝÝ É )!5C
¥) )ª¥F vÜ v )TDu 45:"% v ߥ) ) ª¥F
A példa csak az utolsó szótag hangrendjének vizsgálatát végzi el, illetve ikes igék esetén az 35
Magyar Ispell dokumentáció 2003. 9. 15. -ik el˝otti szótagét, ez sok esetben nem ad jó megoldást. A Magyar Ispell keretrendszerben kivétellisták segítségével tehet˝o pontossá az automatikus hangrend-besorolás. Ilyen kivétellisták az UP!H! könyvtárban található 89:Eh(UY 2m , UY 2m , és P * C:Eh(UY 2m állományok, amelyeket a feldolgozó awk programok egy-egy asszociatív tárba töltenek be (más kivétellistákhoz hasonlóan), ami a feldolgozás sebességét jelento˝ sen gyorsítja.
3.4. Új szótármodulok létrehozása A Magyar Ispell forrásának telepítése után (ezt a következo˝ fejezet ismerteti) lépjünk be a könyvtárba.
+ * K? $
A szótármodulok külön könyvtárakban helyezkednek el. Az alapkönyvtárak neve aláhúzásjellel (_) kezd˝odik. A legfontosabb szótármodul az UP ! . Egy új szótármodul létrehozása nagyon egyszer˝u: hozzunk létre egy új alkönyvtárat a könyvtáron belül. A könyvtár neve aláhúzásjellel kezdo˝ djék.
+ * K? $
Ha szeretnénk, hogy a szótár fordítása során az új szótári modul is bekerüljön a végeredménybe, hozzunk létre egy szimbolikus kötést (symlink) a könyvtárra:
*:YKL/UY+Õ >(aeÕ > Látható, hogy a többi alkönyvtárhoz hasonlóan a szimbolikus kötés neve aláhúzás nélküli, és nagybet˝uvel kezd˝odik. Ezek a tulajdonságok határozzák meg, hogy mely könyvtárak tartalma számít fordításra kijelölt modulnak. Egy modult egyszer˝uen a szimbolikus kötés törlésével tudunk kivenni ebbo˝ l a csoportból:
nàe1Õ >( 3.4.1. Szófaji bontás A szótármodul szavakat fog tartalmazni, amelyet szófaji alapon el kell tudnunk különíteni. A köznevek a 81:&h3 2m állományban kerülnek felsorolásra (egy szó egy sorba kerül). A melléknevek a C :&h3 2m állományban, illetve az alanyi és tárgyas igék az UP!H!:0 ~m és az ! U]%6 2m állományokban.
A %& ?Ê?>1:!:&h3 $I állomány két mez˝oben tárolja a tulajdonnevekre vonatkozó információt, de ha az els˝o mez˝o üres, a második speciálisan (ragozatlan szóként) kerül értelmezésre. Ezért ha egy tulajdonnév nem kap toldalékot a magyar nyelvben (rendszerint többelem˝u tulajdonnevek nem utolsó tagja, vagy kapcsolóval ellátott, illetve letiltott toldalékolt alakok), akkor a sorban egy tabulátor után (tehát a második mezo˝ be) írjuk a szavakat, például:
s1!:"%R °-áá+ 2%4)8 36
Magyar Ispell dokumentáció 2003. 9. 15.
¯|!6G! o y/c´sdetjµ3µ P_ \ µ _ w -_ _ ¯|!6G o yYcNsdeQtqµµ _P\ µ _ w _-_ ¯|!6?KL6<"!H)i ¯|!6?KL6<" )+M
Ha ragozzuk, akkor rögtön sor elejére.
t5:A%A*: Ha a ragozott alakok között melléknévképz˝os (kisbet˝us) is akad, akkor az ugyanebbe a sorba, egy tabulátorral elválasztva írjuk:
t5:A%A*:l5:A%A5: Ha sehová nem illik a szó, felvehetjük a 7+<""%&H!:( $I állományba. Ha azért valamilyen mértékben ragozott, akkor puskázzunk. A legenerált $>H#&% állományt sz˝urjük meg arra vonatkozóan, hogy egy hasonló ragozású, hangrend˝u, stb. szó milyen ragozási csoportjelz o˝ kkel került a szótárba:
1 âÓZz* :+) >1 #% z5 : )3«)"°´)3µ+)r A szavunkhoz ugyanezt rendelhetjük hozzá a
++<""% :( I
állományban:
5 " : )«`)°N)3µ)3r 3.4.2. Kivételek a szófaji kategóriákon belül A legtipikusabb kivételek a hangrendi kivételek. Ha egy szó utolsó szótagja magas hangrend˝u, de a szó mégis mély hangrend˝u, akkor a szót vegyük fel a szófajhoz tartozó UY 2m végzo˝ dés˝u névvel rendelkez˝o állományba. Az ilyen szavak utolsó szótagjában többnyire „é”, vagy „i” magánhangzó szerepel, és gyakran vegyes hangrend˝uek. Konvenció, hogy %&!H?Ê?>:!:Eh(UY 2m állomány nem létezik, az ilyen tulajdonneveket a 89:&h(UYP 2m állományba helyezzük el.
A f˝onevek esetében megtaláljuk még a 89:&hUY" ~m állományt is, ami elso˝ sorban idegen tulajdonneveket, illetve egy-két át nem írt idegen közszót tartalmaz (pl. gentleman, Cadillac), amelyek utolsó szótagja mély hangrend˝u, mégis a kiejtés miatt magas hangrend˝u toldalékokat kapnak (gentlemannel, Cadillackel). A névszók (els˝osorban a f˝onevek) esetében a hangrendi kivételek mellett a I./1-es birtokos személyjeleket (-ja/-je/-a/-e) érinto˝ kivételek jelent˝osek. Három állománnyal kell megismerkednünk velük kapcsolatban: a 89:&h(UP ~m azokat a f˝oneveket sorolja fel, amelyek b, d, f, k, l, n, p, r és t bet˝ure való végz˝odés ellenére -a vagy -e birtokos személyjelet kapnak (például váll→válla). 37
Magyar Ispell dokumentáció 2003. 9. 15. A 81:&hUÊA?Ê? 2m azokat a f˝oneveket sorolja fel, amelyek c, g, h, j, m, s, x, y, v és z bet˝ure való végz˝odés ellenére -ja vagy -je birtokos személyjelet kapnak (például hang→hangja). Amennyiben mind a j-s, mind a j nélküli változatát megkapja egy szó, akkor a 89:&h(UÊA?Ê?0+ 2m állományban kell feltüntetni (például beszéd→beszéde, beszédje).
3.4.3. Állományok táblázata A következ˝o táblázat összefoglalja a jelenlegi állományokat: Állomány
Leírás
fonev.1 fonev_ae.1
köznevek b, d, f, k, l, n, p, r és t vég˝u; -a, -e birtokos személyragot kapó f˝onevek (váll→válla) mély és magas hangrend˝u ragot kapó fo˝ nevek (fotel→fotelban, fotelben) c, g, h, j, m, s, x, y, v, és z vég˝u, -ja, -je birtokos személyragot kapó f˝onevek (hang→hangja) -a/-e, és -ja/-je birtokos személyraggal is elo˝ forduló f˝onevek (beszéd→beszéde, beszédje) f˝onevek, amelyek összetett szóban nem szerepelhetnek (január) f˝onevek, amelyek utolsó szótagja mély hangrend˝u, de magas hangrend˝u ragot kapnak (gentleman→gentlemannel) f˝onevek, amelyek utolsó szótagja magas hangrend˝u, de mély hangrend˝u ragot kapnak (héj→héjjal) hangkivet˝o f˝onevek, többesszámú alakjaikkal (szerelem→szerelmen, kehely→kelyhen) nyitótövek, és egyéb kivételek, többesszámú alakjaikkal -et, -ek, -ön, -höz ragot kapó, ajakkerekítéses magas hangrend˝u f˝onevek (könyvet, könyvön) Összetett szavak (kerékpár). nem tárgyas igék (történik, nincs történi, történed, mint a Helyes-e?-ben) dupla mássalhangzó+ikes igék, -ó, -ás képzo˝ kkel, l. iges.awk, igesgen igeköt˝ot nem kapó igék (vagy külön kezelve az igeköt˝os alakok) igék, amelyek utolsó szótagja magas hangrend˝u, de mély hangrend˝u ragot kapnak (sír→sírok) hangkivet˝os igék (bicsakol→bicsakló) tárgyas igék (üt→üti, ütöm) -tat, -tet gyakorítóképz˝os alakok nincsenek (pl. mond, mondat, de nincs mondtat, mondattat)
fonev_ing.1 fonev_jaje.1 fonev_jajeae.1 fonev_kulon.1 fonev_magas.1 fonev_mely.1 fonev_morfo1.2 fonev_morfo2.2 fonev_oe.1 fonev_osszetett.1 ige_alanyi.1 ige_ikes_kiv.1 ige_koto.1 ige_mely.1 ige_morfo.1 ige_targy.1 ige_tat_kiv.1
38
Magyar Ispell dokumentáció 2003. 9. 15. Állomány melleknev.1 melleknev_a.1 melleknev_ae.1 melleknev_ing.1 melleknev_jaje.1 melleknev_jajeae.1 melleknev_mely.1 melleknev_oe.1 ragozatlan.2
tulajdonnev.2 tulajdonnev-geo.2 tulajdonnev-keresztnev.2 tulajdonnev-szemelynev.2 kotojeles_mely.7 kotojeles_magas.7 kotojeles_magas2.7 kotojeles_hangzo.1
Leírás melléknevek -o köt˝ohangzót (f˝onévi ragozást) nem kap, (nincs állottot) b, d, f, k, l, n, p, r és t vég˝u; -a, -e birtokos személyragot kapó melléknevek mély és magas hangrend˝u ragot kapó melléknevek c, g, h, j, m, s, x, y, v, és z vég˝u, -ja, -je birtokos személyragot kapó melléknevek -a/-e, és -ja/-je birtokos személyraggal is elo˝ forduló melléknevek melléknevek, amelyek utolsó szótagja magas hangrend˝u, de mély hangrend˝u ragot kapnak -et, -ek, -ön, -höz ragot kapó, ajakkerekítéses magas hangrend˝u melléknevek (zöldet, zöldön) Nem ragozott, vagy kivételesen ragozott szavak megadására szolgáló állomány. A kivételes ragozási adatokat kapcsolókkal adhatjuk meg a szó után közvetlenül, egy perjellel elválasztva a szótól. A szavakat külön sorba kell megadni. Egy sorban a szó töve is megadható a tövez˝oprogram számára, tabulátorjellel elválasztva a szótól. Tulajdonnevek: ha az els˝o mez˝o üres, akkor a szó ragozatlan, ha nem, akkor a második mez˝o melléknév. földrajzi nevek keresztnevek személynevek Mély ragozású, idegen ejtés˝u, vagy mozaikszavak köto˝ jellel elválasztott toldalékkal (felépítést l. az állományban). Magas ajakréses ragozású, idegen ejtés˝u, vagy mozaikszavak köt˝ojellel elválasztott toldalékkal Magas ajakkerekítéses ragozású, idegen ejtés˝u, vagy mozaikszavak köt˝ojellel elválasztott toldalékkal Az itt felsorolt szavak kapják meg a Z kapcsolót, ami azt jelzi. hogy az itt megadott szavak esetében nincs köto˝ hangzó a toldalék és a szó között (például URH-nk, és nem URH-unk, mivel az URH kiejtve „uerhá”).
A tulajdonnevek hangrendjér˝ol: a -i vég˝u melléknévképz˝os alakoknál a hangrend automatikusan mély, ha a t˝oszó utolsó magánhangzója mély. Ha ingadozó, (i, í, mint Párizs), akkor külön felveend˝o a * C :&h(UYP ~m állományba a képzett alak (párizsi).
3.4.4. Y-ra végz˝od˝o szavak Az y vég˝u szavak (pl. Sydneyvel, Uruguayjal, Kölcseyn, sprayen) ragozása vissza lett vezetve az i, és j vég˝u szavakéra. 39
Magyar Ispell dokumentáció 2003. 9. 15. Az „f” kapcsoló segítségével a következ˝oképp kódolhatóak az y vég˝u szavak: A tövet nem ragozzuk, csak „f” kapcsolót kap (közneveknél még Y-t, hogy összetett szavakban szerepelhessen). Felveszünk egy olyan tövet, amiben kiejtés szerint az y vagy i-re, vagy j-re van átírva (Sydnei, Uruguaj, Kölcsei, spraj), és ezt szerepeltetjük a megfelelo˝ állományokban, de letiltva! Köznevek (angol eredet˝u idegen szavak) esetében:
KKK{7ÕA< %]<UP!H! )81:&hÞ!* !:0(= +KKnK = EÊ o yYcNsdeQtqµµ _P\ µ _ w _-_ ¤ =+"+¦ = !:> o y/c´sjeQtjµ3µ _P\ µ _ w _-_ ¤ = 7:> +¦ #",= EÊ o yYcNsdetjµ3µ _P\ µ _ w _-_ ¤ #",= "¦ > !H?Ê o yYcNsdeQtjµ3µ _P\ µ _ w _-_ ¤ > !H&¦ H> o y/c´sjeQtjµ3µ _P\ µ _ w _-_ ¤ H> +¦ < ?Ê o yYcNsdeQtqµµ _{\ µ _ w _-_ ¤ < &¦ n 7?Ê o y/cNsdeQtjµ3µ _P\ µ _ w _-_ ¤ n2 &+¦ ?Ê o y/c´sjeQtjµ3µ _P\ µ _ w _-_ ¤ &¦ + :!: o y/cNsdeQtjµ3µ _P\ µ _ w _._ ¤ + :!:0+¦ , C o y/c´sdetjµ3µ _P\ µ _ w _-_ ¤ , C&¦ <ã+%E o y/c´sdetjµ3µ _{\ µ _ w _-_ ¤ <ã %+¦ KKKnKKKKKKKKKnKKKKKKKKnKKKKKKKKKnKKKKKKKKKKKKK KKK{7ÕA< %]C h%6 C)+<""%&H!: )"T!* !:0(= +KKK = +)82c = !:> )8c #",= ")8c > !H&+)82c H> )8 < &+)8c n 7&)8c &+)82c + :!:0)8c , C&)8c <ã+%4+)82c KKKnKKKKKKKKKnKKKKKKKKnKKKKKKKKKnKKKKKKKKKKKKKKKKKKKKKKK A köznevek esetében a C h %A C)+<""%&H!: ) állomány szolgál az f(és az Y) kapcsolós alakok megadására. A tulajdonnevek (régies írásmódú keresztnevek, illetve földrajzi nevek) esetében a %&!H?Ê?>1:!:&h¬ állományok szolgálnak erre a célra. Ezekben van a szóto˝ nem ragozva, „f” kapcsolóval felvéve. Felvesszük az átírt, nem valódi tövet, megadjuk a melléknévképz o˝ s alakot is, és külön sorban tiltjuk le a nem valódi tövet.
KKK{7ÕA< %]z%!H?Ê?>:!:Õ&hÞ!* !:0(= +KnKK °-áá+ 2%4)8 °-áá+ 2%E o yYcNsdetjµ3µ _P\ µ _ w _-_ 40
Magyar Ispell dokumentáció 2003. 9. 15.
°-áá+ 2%E!háá 2%4 °-áá+ 2%E!háá 2%4 KKKnKKKKKKKKKnKKKKKKKKnKKKKKKKKKnKKKKKKKKKKKK Itt gyakran – ebben a példában is – a szavak hangrendje is más. Ezért a Vörösmarti szót felvesszük a 89:&h(UY 2m állományba is, a melléknévképz˝os alakokat pedig a P * C:&h(UY 2m állományba. hasonló problémát okoz az idegen szavak esetében a mély hangrend˝unek látszó, de magas hangrend˝u alak: pl. spray, display. Ezen a nem valódi tövek 81:&hUY!0 2m állományban való elhelyezése segít.
3.4.5. Kivételek könyvtár A 6< %6 9)C h%A C könyvtár tartalmazza azokat a kivételeket, amelyek rendszerint valamilyen zárt toldalékolást mutatnak, de jóval sz˝ukebb csoportot alkotnak a Magyar Ispellben morfo1/morfo2 néven jelölt névszóosztályoknál. Két alkönyvtárat tartalmaz a könyvtár, az CE %? és a +<0"% : könyvtárat. A két könyvtár sok állományában tövezési információk is meg vannak adva második mez˝oként, hasonlóan a 7++<""%&H!:( $I állományhoz. Ezeket az állományokat a $I kiterjesztés jelöli.
A C h %A C könyvtár gyökerében található UYC& <" ~mm állomány az igei kivételek képzo˝ s alakjait adja meg (mivel a két alkönyvtárban lév˝o igék kimaradnak a képz˝os alakok automatikus el˝oállításából). Az ige állományban felsorolt képz˝os alakok útmutatást adnak arra vonatkozóan is, hogy milyen képz˝os alakok kerülnek külön t˝oként felvételre a szótárba.
3.4.6. További információk
\
További információkat a Gyakran ismételt kérdések között találunk ( ¯dc Æ állomány a Magyar Ispell forrásában), valamint a Magyar Ispell levelezo˝ listán ( "%%('))",-,.,/ ! (+121!" #/) 121! ) + * ).
A levelez˝olistára a 4 + * K!=6# 5=+! (+121!" #1 e-mail címre írt levéllel jelentkezhetünk. A listára szánt leveleinket a + ! !" $# címre címezzük.
3.4.7. Segédprogramok A =5: ) alkönyvtárban található HTML állományokból.
= "!C
program segít szavakat kigy˝ujteni szöveges, vagy
41
Magyar Ispell dokumentáció 2003. 9. 15.
3.5. Magyar Myspell A Magyar Myspell legfrissebb változata jelenleg a "%%(')) + *; HA86 ;:&% oldalról töltheto˝ le. Korábbi változatokat a "%%&('*)+),.,-,/ H6< p` ; !+):!+) 4 + * oldalon találunk.
A forrásból a !CE paranccsal fordíthatjuk le az E@+!J! nev˝u példaprogramot, és a leend o˝ – Ispellt felváltani képes – programot, a V-!:+ * -t.
3.6. Javítási cseretáblázat A következ˝o táblázat összefoglalja a Magyar Ispell 0.99.3-as változatában megtalálható javítási cseretáblázatot. A táblázat harmadik oszlopa részben példákat mutat a cseretáblázat segítségével tett javaslatokra, valamint a cseretáblázat segítségével beazonosított hibás szóösszetételekre. Ez utóbbi tulajdonság a Magyar Myspell 0,4-es változatában jelent meg. A legtipikusabb hibák (i/í, ü/˝u stb.) elöl találhatók, hogy a javaslatoknál is ezek kerüljenek legel˝ore. Mit
Mire
Példák cserére, illetve javított hibákra
í i ó
i í o
o o
ó o˝
ú u u u˝ ü j
u ú u˝ ü u˝ ly
ly
j
a S s r ra
ä Š š ˇr ˇrá
szer+víz→szerviz, sí+ma→sima kiváncsi→kíváncsi, elit+élt→elítélt szimbólikus→szimbolikus, mikró+számítógép→mikroszámítógép mikro→mikró cselekvo→cselekv˝o (lapolvasási, kódolási hibák javításához) kultúrált→kulturált, vas+árú→vasáru kultura→kultúra keseru→keser˝u (lapolvasási, kódolási hibák javításához) men˝u→menü betü→bet˝u, keserü→keser˝u juk→lyuk, est+éj, kar+vaj, kord+éj, rost+éj, szeg+éj, szem+éj, szem+éjes, szem+éji, szent+éj, szesz+éj, szesz+éjes, tar+táj, tök+éj, ünnep+éj, ünnep+éjes, csevely→csevej, muszály→muszáj, boly+torján, kard+bolyt, tojássár+gálya, váll+bolyt, boly+ár, boly+tár, súly+tó Handel→Händel Skoda→Škoda skodás→škodás Dvorák→Dvoˇrák Dvorak→Dvoˇrák 42
Magyar Ispell dokumentáció 2003. 9. 15. Mit l L Lo oliere Angström angström Õ õ Û û jj jj lly ggy gyj ggy gy nny nny tty tty cc cc cc cs cs ccs ccs ccs g öss öll ütt ijj x ksz xx xx xsz x x sz
Mire ł Ł Łó olière Ångström ångström ˝ O o˝ ˝ U u˝ – lly llj jj gyj ggy dj dj nyj nj tyj tj tsz dsz gysz ts ds ts ds gys kd o˝ s o˝ l u˝ t íj ksz x xsz kssz kssz xsz kssz c
Példák cserére, illetve javított hibákra zloty→złoty Lódz →Łódz Lodz →Łódz Moliere→Molière Angström→Ångström angström→ångström ˝ Õ→O õ→˝o ˝ Û→U û→˝u Duna-Tisza köze→Duna–Tisza köze gajj→gally ájj→állj csevellyel→csevejjel haggyon→hagyjon, naggya→nagyja higyjen→higgyen maraggy→maradj horgya→hordja, kargyuk→kardjuk annya→anyja fonnyátok→fonjátok attya→atyja láttyák→látják, bottya→botja szerecc→szeretsz maracc→maradsz eccer→egyszer kölcség→költség boloncság→bolondság baráccság→barátság vaccság→vadság naccság→nagyság, o˝ naccsága→˝onagysága csug→csukd, lög→lökd elösször→el˝oször, erössen→er˝osen szöll˝o→sz˝ol˝o hütt˝o→h˝ut˝o, fütt˝o→f˝ut˝o dijja→díja, ijja→íja boxer→bokszer, vax→vaksz fakszol→faxol, Beatriksz→Beatrix kódexxel→kódexszel vaxxal→vaksszal vaxszal→vaksszal kódexel→kódexszel vaxal→vaksszal licensz→licenc
43
Magyar Ispell dokumentáció 2003. 9. 15. Mit szt ssz jl gg file filefloppy bájt bájt chh ll ny nny o ivess -cel -cé o˝ rö o˝ r ölr egyenl˝ore kábé ss ss ssz ll nn mm tt Jellasics
2
Mire cet cc lj g fájl fájl flopi byte bytechcs l nny ny a íves -szel -szé ölr˝o ölr o˝ r egyel˝ore kb. ss-s ss-sz ss-sz ll-l nn-n mm-m tt-t Jelaˇci´c
Példák cserére, illetve javított hibákra licenszt→licencet licensszel→licenccel tejles→teljes, éjlen→éljen heggeszt→hegeszt file→fájl file-lal→fájllal floppy→flopi bájt→byte bájtos→byte-os Madáchhal→Madáchcsal vállfaj→válfaj menyország→mennyország mennyhal→menyhal házok→házak szivessen→szívesen AIDS→AIDS-szel AIDS-cé→AIDS-szé el˝oröl→elölr˝ol el˝or˝ol→elölr˝ol elölre→el˝ore egyenl˝ore→egyel˝ore2 kábé→kb. Barossal→Baross-sal Gaussal→Gauss-szal Gausszal→Gauss-szal Böllel→Böll-lel Mannal→Mann-nal Grimmel→Grimm-mel Beckettel→Beckett-tel Jellasics→Jelaˇci´c
Bár helyes az egyenl˝ore is, nagyságrendileg ritkább, mint az egyel˝ore.
44
4. fejezet Programozói dokumentáció A Hunspell program, illetve a Magyar Myspell függvénykönyvtár képességeit saját programjainkhoz is hozzáadhatjuk.
4.1. Hunspell cs˝ofelület A -a kapcsoló megadásával a Hunspell program az Ispell -a kapcsolójának hatását utánozza, egy kevés kivételt˝ol eltekintve. Ez az üzemmód ad lehet˝oséget arra, hogy alkalmazásaink a Hunspellt használják a helyesírás-ellen˝orzésre. Ilyenkor a Hunspellt háttérben elindítják az alkalmazások, annak ellen˝orizend˝o szöveget adnak át, majd az ellen˝orzés végeredményét visszakapva azt feldolgozzák. Számos program él ezzel a leheto˝ séggel: például a KWord, LyX, Emacs (Windows alatt is). A Hunspell indulásnál kiír a standard kimenetére egy bemutatkozó sort, majd a standard bemenetet soronként dolgozza fel. Minden egyes sor után a kimeneten a kézikönyvoldalon ismertetett információkat jeleníti meg, amit a saját programunk (amennyiben gondoskodtunk a kimenet átirányításáról) feldolgozhat. A Hunspell a bemenetet szövegsorként értelmezi, hacsak a bejövo˝ sor els˝o karaktere nem egy parancskarakter. A Hunspell által kezelt parancskaraktereket, és leírásukat a következo˝ táblázat ismerteti: ! + @ ∗ # ˆ
Nem értelmezi a sort. TEXüzemmód bekapcsolása. Visszalépés az el˝oz˝o üzemmódba. A jelet követ˝o szó szótárba kerül a futás idejére. A jelet követ˝o szó szótárba kerül. A szótár elmentésre kerül a saját szótárállományba. A jelet követ˝o sor feldolgozása.
Az & jel (kisbet˝usként való felvétel) még nincs a Hunspellbe építve. Egyéb kezdo˝ karakterek esetén a sorok szövegsorként kerülnek feldolgozásra.
45
Magyar Ispell dokumentáció 2003. 9. 15.
4.2. Magyar Myspell felület A Magyar Myspell felület (API) lehet˝oséget nyújt a függvénykönyvtár közvetlen használatára, bár pár dolgot, mint például a saját szótár elmentését és betöltését, magunknak kell megoldani.
4.2.1. Konstruktor A felhasználói programban a MySpell osztály metódusaiként férhetünk hozzá a helyesírásellen˝orz˝ohöz.
yz sq+ * ¤ #1:A%´# |¬Þ"SJ@3!lÏ1#1:A%´# x¬J6< %6 9¦¹
A MySpell osztály konstruktora két karakterláncot vár paraméterként: az affixumállomány, és a szótárállomány útvonalát.
4.2.2. Metódusok
5:"%N+ ¤ #:A%´# x¬ !C¦¹ A megadott szó ellen˝orzése. Ha a visszatérési érték 0, a szó hibás, egyébként helyes.
5:"%N+A% ¤ # 4¬+¬+¬]Ê?"h H"%?1C+Ï#1:A%´# x¬!H!C¦¹
Javítási javaslatok kérése a megadott szóra. A függvény visszatérési értéke a javaslatok száma, illetve a javaslatokat tároló karakterlánctömb címe. Ez utóbbi tömb a függvényhívás alatt kerül lefoglalásra, címe pedig a javaslatok változóban kerül elhelyezésre. A tömb felszabadításáról nekünk kell gondoskodni a kés˝obbiekben, ügyelve arra, hogy a tömb címe NULL is lehet, ha a helyfoglalás memóriaproblémák miatt sikertelen volt. (Több szálat kezel o˝ programban nem használható.)
5:"%N+A%&UA%A P ¤ # 4¬+¬¬´ÊA0h+ %?CÏ#:A%]# |¬Þ!H!C¦¹
Helyes tövek el˝oállítása az el˝oz˝o függvényhez hasonló szintaxissal. Ha nincs to˝ , akkor a szót nem ismeri az ellen˝orz˝o.
5:"%N+A%&UY++UA%A { ¤ # 9¬¬+¬]ÊA0h H"%ACÏ#:A%]# |¬Þ! C"¦¹
Valószín˝u tövek el˝oállítása az el˝oz˝o függvényhez hasonló szintaxissal. A Magyar Ispell szótárban szerepl˝o névszóragokat próbálja leválasztani a a megadott ismeretlen szóról a program.
# x¬J!&%U{>H#U{ :#3>5: ¤ ¦¹
Visszaadja a betöltött affixumállomány SET paraméterét, vagyis a beállított karakterkódolást. (L. man 4 hunspell)
# x¬J!&%U´,¨7>!# ¤ ¦¹
Visszaadja a beállított karakterkészlet bet˝ukaraktereinek karakterláncát, kiegészítve az affixumállomány WORDCHARS paramétereként megadott karaktereivel. Ez az információ a szavakra bontáshoz hasznos. 46
Magyar Ispell dokumentáció 2003. 9. 15.
A%&n#%´#U/5:"8u¬J!%&U{#R#1:0h ¤ ¦¹
Visszaadja a betöltött karaktertáblát, elso˝ sorban a kés˝obbi bet˝uméret-átalakításokhoz. (L.
#"%E5; #E@@ , #"%E5;
@"@ a forrásban.) 5:"%!"%&U´,.7> ¤ #1:A%´# |¬Þ!H!C¦¹
A megadott szó futásidej˝u felvételére kerül sor. Ha az erre biztosított hely elfogy, a visszatérési érték 0, egyébként 1. (Az így maximálisan felveheto˝ szavak számát az "%4(+" ; @@ állomány MAXUSERWORD makrója adja meg.)
5:"%!"%&U´,.7>1U"SJ@ ¤ #:A%´# x¬ !CÏ#1:?%]# x¬C!+#6 C¦¹
A megadott szó futásidej˝u felvételére kerül sor, a második paraméterként megadott kapcsolókkal (ezek lehetnek prefixumok is, a megtéveszto˝ név ellenére).
! "%&U´,.7>1U"SJ@ ¤ ¥" 6<á+á+<5C¥Ï7¥e`1¥¦¹ 5:"%!"%&U´,.7>1UY"%%6n: ¤ #:A%´# x¬!H!CÏ#:?%]# x¬!H!C0I!¦¹ Például
A megadott szó futásidej˝u felvételére kerül sor a második paraméterként megadott szó kapcsolóival.
! "%&U´,.7>1UY"%%6n: ¤ ¥&! 89ä:á1C¥Ï7¥G89ä:áC(¥¦¹ # x¬J!&%UY &h(2( % ¤ ¦¹ Például
Visszaadja az el˝oz˝oleg ellen˝orzött, és helyesnek talált szó szótári tövét. (Több szálat kezelo˝ programban nem használható.)
5:"%N%&UY 7&h#1z+!:> ¤ ¦¹
A visszatérési érték 0, ha az el˝oz˝oleg ellen˝orzött szó nem összetett szó volt, különben 1. (Több szálat kezel˝o programban nem használható.)
5:"%N%&U]89n=H>!>! :!U{#J 1!:> ¤ ¦¹
Az el˝oz˝oleg ellen˝orzött szóról adja meg, hogy tiltott volt-e, vagy sem (rendelkezett tiltókapcsolóval). Ha nem volt tiltott, a visszatérési érték 0, ha igen, 1, és ha még összetett is volt, akkor 2. Bels˝oleg annak eldöntésére szolgál, hogy a javaslatokban szóköz, vagy köto˝ jel szerepeljen. A Hunspell pedig annak jelzésére használja, hogy egyértelm˝u szótári tiltásról van szó, meger o˝ sítve ezzel a felhasználót helyes m˝uködésér˝ol.
# x¬J!&%UY +65=! UY( % ¤ ¦¹
Visszaadja az el˝oz˝oleg ellen˝orzött szóra illeszked˝o els˝o ragozási szabály alapján el˝oálló tövet. Ez a függvény a kés˝obbiekben b˝ovítve lesz. (Több szálat kezel˝o programban nem használható.) Példaprogram A függvénykönyvtár nyeknek:
E@+!J! #E@@
programja rövid összefoglalását adja a fontosabb függvé-
o *:#*>!Þ{#?%45:1 o *:#*>!Þ{#?%6>1*=! 47
Magyar Ispell dokumentáció 2003. 9. 15.
D
o *:#*>!Þ{#?%6>
o *:#*>!a¥"+ *;
@"@¥ o 8?:>!8 f\ [ w s 5:O:!#0/A%A>¹ o :> 8 5:"%*: ¤ 5:"%] 2!#+Ï1# x¬+¬ h+¦ Ù \ µ3tǬ",
%A# A%¹ 5:"%P ¹ 5:"%´>1(¹ # .=!"86}2m"m¹ yz sq+ *1¬!(ysd¹ # x¬+¬",P A%¹ )¬Jpj?% 6%& Y#1z!:>k5:1"%E :¬ ) 89 ¤ 1·åm+¹q±Z¹qæYæY¦ 8 ¤ É h} 9¦´D 8? *:"%?8 ¤ A%A>! nLÏQ¥E#n70#&%´?(:"%6@a 0' B :G@!J! Y"SJ@(U]pj (¥¦¹ 8? *:"%?8 ¤ A%A>! nLÏQ¥E>H#%E : ~(U]pq pq U 8?U´,¨(>!U]%AU{# 0# C B :1¥¦¹ E@( % ¤ m¦¹ F )¬l1+ :z%& ,.7>N%A# 0# CÞ A%¬+) ,
%A# ?%·ç81+ : ¤ 2 h3}?ÏQ¥"6¥¦¹ 8 ¤ É ,
%A# ?%G¦´D 8? *:%8 ¤ A%A>! nLÏQ¥tn2(dK
#! >k: %´+ :Jpq %? # 0# C B :1¥¦¹ E@( % ¤ m¦¹ F (yÞsÇ·à:&,Äyz sq+ * ¤ h3}m&?ÏZ 2 h3}I 9¦¹ , 5 ¤ 89!&%A ¤ =!"86Ï`m0+1Ï(,-%A# A%R¦R¦´D ¬ ¤ =!"8.æçA%&n : ¤ =!"8E¦-KPm¦·å³ B ³2¹ >1Þ·à(yÞsKG+ * ¤ =!"8E¦¹ 8 ¤ >1 ¦]D 8? *:"%?8 ¤ A%A>1"%Ï¥ B ¥ ¶ B ¥z ]C& B : B :1¥Ïq=!"8E¦¹ 5:"%:P·à(yÞs!KEA%&UA%A P ¤ Ý{,P A%Ïj=!"8E¦¹ 8 ¤ :/º¦]D 8? 5:"%8 ¤ A%A>1"%Ï¥ ?%6 {"' B :1¥¦¹ 89 ¤ 5:"%{1·È¹qÌ:"¹$æYæY¦´D 8? *:%8 ¤ A%A>1"%Ï¥ ~ 2 B ¥ ¶ B ¥ B :1¥Ï(, ?%0}; 4¦¹ 8?70 ¤ , A%} 4¦¹ 48
Magyar Ispell dokumentáció 2003. 9. 15.
F 8? 5:"%8 ¤ A%A>1"%Ï¥ B :1¥¦¹ F 8 ¤ , ?%G¦-870 ¤ ,P A%R¦¹ FT RzD 8? *:"%?8 ¤ A%A>1"%Ï¥ B ¥ ¶ B ¥z *:#(70#% É B :1¥Ïj=!"8E¦¹ 8? *:"%?8 ¤ A%A>1"%Ï¥ +A%E :0' B :1¥¦¹ 5:"%:P·à(yÞs!KEA% ¤ Ý, ?%0Ïq=!8G¦¹ 89 ¤ *:"%P1·È¹qè:0¹q$æYæY¦´D 8? 5:"%8 ¤ A%A>1"%Ï¥ ~ 2 B ¥ ¶ B ¥ B :1¥Ï(, A%}; 4¦¹ 8?70 ¤ , ?%0}; 4¦¹ F 8? *:"%?8 ¤ A%A>1"%Ï¥ B :1¥¦¹ 8 ¤ , ?%G¦-870 ¤ ,P A%R¦¹ :P·à(yÞsKG+!A%&UY++UA%A { ¤ Ý, ?%0Ïj=!"8E¦¹ 8 ¤ :/º¦]D 8? 5:"%8 ¤ A%A>1"%Ï¥ +65=! /A%A P"' B :1¥¦¹ 89 ¤ 5:"%{1·È¹qÌ:"¹$æYæY¦´D 8? *:%8 ¤ A%A>1"%Ï¥ ~ 2 B ¥ ¶ B ¥ B :1¥Ï(, ?%0}; 4¦¹ 8?70 ¤ , A%} 4¦¹ F 8? 5:"%8 ¤ A%A>1"%Ï¥ B :1¥¦¹ F 8 ¤ , ?%G¦-870 ¤ ,P A%R¦¹
F
F
F
>! %AÞ(ysd¹ 7%&!n:1¹
49
5. fejezet Hunspell kézikönyvoldalak 5.1. Hunspell(1) !!:+ * ¤ m"¦
!!:+ ¤ m"¦
NÔ!°
!!:+ *+KP 6é2?K;ÊA0hé$%ATÕ]6< %?á h<äk +! qÍ _-_ tjÆ \ _ Ô3s !!:+ *ê} K&mçK?YK6¯ëKG YK&VëKGK&µzKG:YKLNKn%N}HK> 6<+%6 2N} KG G?ÊA"%&U6< %6 2N}*!* 1!:0 ¤ C¦ µ3tì4r Í s ª !:+ \ * KL6<0 Ûí5:"%A !C%?é$hîÕ #6ä 84 ï % ¤ y 9¦ yz sq+ *ð8ï+h Õ :0CEá:""h%6 n +< Ù P aÕ ÊA0hé%~ÊAà<Ì *ï"%AÕRC&%ñÕñ%Aé2! 5=!C"%ò*è6<áh "Ï ¤ µ ¦ _ ÏóV _ yuµ3ÏOÕ]1 X ¤ C&Õ<5CEá:0hl >!¦´!* !:0"C =!:(
ªôKL/C!+#6 h !6<+%?áh <äkï< JP(>1=:Y8?"% ¤ V-!:A%A /¦
V|: Ä>1!:!CÞP¡!* 1!:0:Õ&hõ !Õ%A 2%Ïk×V-!:+ *u< \ + *¡#6ä 84 *ï! &%6Õ <Þ 6:! !!:JÛ!CGá3>5C'1=+ :%N6 % 6<"0h !C = 1:"%~ÊA(Ï1Õ¬3ÏZæÞÏ(h JKqÊ * ÇCE<0>ä3>äöC5 :%E 6n!&Ê? <;Ïj l A<PÊZÏ1Õ o h+ÞÝÖÊ? * 5Ïq +66<
ªg#6ä 84 *ï! % !:#G %²h 6<1:"%®< \ + ** <å 6:! !!: #G!CzYK?C!+#6 O!>R"h !Õ 2%A *P<
Í !:0(:Õ&hõ !PÕ%6ØR%AÕ :à 5:>1!¡T< \ Õ < 61:! O*:%A 7!C%?é$hl89 *ï! %
ªñ +17çCEáh %&C&<ä ä:0"áC&%:0ÒAÊn%2ÊAl¡ 6:! í#0Õ 1C&"% 50
Magyar Ispell dokumentáció 2003. 9. 15.
6< !! \ + * KG A<0 J=+ :('
K
QV "ÊA0h+H"%ACYz%Aá=!=C 7C&%A dh+! %?+<"G0h+!&ÊA 2 %E55C !*=C ¤ Ê6) Ï3é Ê6)! Ê ÊÏ:06Ê6):!:0ÞÕ/Õ÷%?á=!= %&#""%:0!¡%AÕ&h A<%AÕÌP h! <A!HG0h !¦ ת¨< \ + * #G!CÞC&Õ&%C& !C%A `84 #R Õ ÕR¹(h î×C !C&%6 !:0(Ïø#R 7ÕnÊ?+Ïù** %Lh ç84 úÊ? :! Õ&%6 R%AÕ :Þ>k `ÊA0h+H"%? %0
K
xª <Èá6A<0È ®á+66<0&%6%%ñ6<1:!CåH"%?6<ZÏø>! %E55C 5=0h+!¡ ä!!* ð!H!Cç%E5 %6G ¤ C ~h ?ÊÏ 6<é2:%&Û(Ï3Ò! %?TA%&=( *¦ K
Ú0h+ %?Ch ! A<é:!ÛRÕ3(A(7 :>1=+ : Ê :!: Cå ¤ %E55C/ 5=!CÏ)éÏ3)ZÏj )Òz%6Õ&h6<&%6Õ6 CYA%&=( *¦
K
û]A6<0%A%%´6<00h+!CYR&%6Õ :îKK?]6<0=! Þ!*C&<"G ¤ 6é2?K * :ä2<äÏ3Õ !CE(# KLá+66<6<0 ÕE¦
yl+<+A<"!=! !*C&!*<"G ¤ C h! %A :!>Õ Ï C h! %A H:0>!Õ "KGC&Õ ÕE¦
K
K ª
²:0" hîÕ =üá+66<0%AÕ%A aA<"!=! 5:!C !*C!<"G ¤ +Õ >!!Ç "% á h%&Û(Ïu%E <0 :!CEÕ%ç á h%&Û(Ï C&Õ%& 0h;ÏjCEÕ% :!++"Ïq63>10h+!H¦
µ K&Ïý ! KòÕòKG=!=à#1:"p@(!ü C&<0 ÕR ¤ :5:#!; q Õ0>!"Ï1#G!CÞ !Õ>R =!= ¦
K
rj++< "%AÞ%?ä6<+89 h Õ%A 5 ëyCEá:!:0é$%&a ×Ò?Êf6< +<+%%¸h %A+<""%65:!CÈ * :ä<ÕRÕ%Ï384 66Õ %AÕ&h Y<0 CÞCï! á1:0KGC ï! á1:Y%Aá2%AÕ :ä÷89 h Õ%A Õ%±üRAÊ?% 6< %6 n=(
Ú0h+ %?C AG!* !:<Kn%&5!H<"A1C ¤ G!C C CGáÏ =! %%%R!:#+"Ïö><R66<6<"!C¦ R&%6Õ :( ¤ \ + * ": C8!>EÊA(<0 CE% *¦ Ú0h+ %?C/6<+%6>Z!!H<0A1C ¤ C%6"%R"%6"Ï : :&h %R¦ R%AÕ :(
K
K
K
K
K
Ú0h+ %?C Õ CE<0% :Õ*C ï! 6<áh 1 ¤ %&!CE28! 0KG]%&ï!CEá28?Ò!2Õ ¦
Æqá+%?äEÊ ]6<"0h !CÞC&<0 ÕR ¤ :+?KG!:"%6!H!: ¦
51
Magyar Ispell dokumentáció 2003. 9. 15.
_ 1 >! ÕCE %ò6<0!P1C ¤ mEK ÊÕ :(Ï`m+m&KÕ :(ÏiZ K?&%G¦PC&< ÕR+
¶ ÏÕ{þgÊ? C ¤?¶ KGC!¦f%? >! Õ CE %®!H!CÊA!*:C ◦Ï C&< ÕR+
yl+<"5C6<"0h+!C ¤ y Í °xKL6C"%R¦PC&<0 ÕR
K K K
c¨KE7Yh Õ+<ä(>äA<"0h+!C ¤ =+"AÊA!;Ïq+ :!:0h ¦CE<0 ÕR
\ >! : nÊL%AÕÛ 6<+%617 hÕ+<ä3>ä 6<0"h !C ¤ ª´:1:0J66<05Ï°x %657&KG: C"¦CE<0 ÕR
ÆÕ&%´6<= 13! Þ89á >1?Ê<:&h C ¤ s1!:×Ù!:# R# KR$¦ C&< ÕR+
V.5= !H!CG1C %&* %6G ¤ «`!= %?6G!;Ï %6!: %Ï !*CE %?1zÛ0h Õ6<A%=( ¦ _ 5 %66C.Ê? <0ÕRzz89 * 6< :! 3!84 *ï! %A :(
K K K K K
(t Õ = ¤ Õ >!(< \ + *7+< %?%ç"%A+6<íR%AÕ =+ : = nz* :üA<(á+66<%6Õ&%6 %± 89+>'ý#C"%A CE 7 Ï C "%4C&0h+ Ï<%aV-!:+ : Î%A6<¦
yÞ ¨:0 h(Û ¤ 5* %hÞ 3#"! ¤ ¢!¦
8?ï++ä(¦
84 ï! %
K K K
V7>+< "%AT6<áh ±A<+%6 ! 1!:"0CÏu6< J=+ :î< \ + *Ç!H"%89nÏOÕÈ=5: \ + * 897>é%6A%?1 8?ï+ä( : ¤ :/¦CE<0 &%Aä>%6!* 1!:0 h+!;
ƪe ^ Zs wzµ+ÐYÆ K&m sq+0#H! ò89n"%&!'kð= :%EO!* !:0õz*:>: 6!= 1#G!Cz
K? \ + * <Ì#6ä 84 *ï! &%0 uª É ÏÇæÞÏaK&ÏÇ´Ï o Ï(h+ßÓ Ê? * ÜCE<0>ä3>ä÷6Cü #6ä+89 *ï! % !:#G Ï Ê? :"%AÕï!CE%< \ + *ZC&Õ<*CEá:0h >!Z7ÕA< %A<; ª K?C!+#6 O "%6G lõC5 :%&=+ :îòÊ÷6<"0h C&"% #G!C #**H+!Ê? <O×V-!:+ ; ót(<å: 01=!= CEJ"%E5=5 %RA%º= <&%?6é$% < \ + * % 6<: +17!PCå:Õ !5C&Õ&h ¤ +Õ >!!(aµ KLA<0 ¦ `tC CE : üCE *Z!>1:!!:!CYzK? C!+#6 +%ÏjY h 3< \ + * % 6< :! +17!P1C "%?"%E5C G!: <<0 ÿ C!+#6 h+!Z*:>!é$%2Ê?CÈ a< \ + Ü:&h Õ =+ :è8?"%? V-!:+ * %P 0
52
Magyar Ispell dokumentáció 2003. 9. 15.
K>í6< %6 y1 "%6 +<<" 6é 6< %6 2% ªx< !H!+Õ 2%A *P<0%% A<+%6 )(9) 7) !!:*)>&8!! % øª !>! %%ÄÒ"%Lh:! %®!=6<*Ò"%ñÕÈ7 "%Aé$hð 0 ër H"%?é$hõÒ"%Lh: R%AÕ : ä+6<á < !C%&! "Ï ?Ê?> )(9) 7) !!:*CEá:0h%R =: C& 7J6< %6 2%® +17! `µ3 ëeÔjµ [Í Æ
K6¯
ª KG5ÏkÕòK&µõC&+#A1 C"%çC !ÕA<é%?äkC&+#A1 Z 3ª A %6!:> 7>k=+ :%&ä(Õ nCE<äö *= ñ6<"0h !CÏê** %Lh 6CåÊ :é%AÕRå "%%®òÊíA<"0h+!CÌÕÎ 5="%&H!:JA(21CÞÊ? :é$%6ÕRÕ%CEÕ n %~ÊEï!Ch
KG (Ï(KKG * ª®=+0Õ é$%6%% é7/Ê? :é$%6ÕR
K&V V _ yuµ¡=+ :&%&!* 1:089n"%&! =+"!* é%6G( óV|î< !* !:0 :&hÕ : C ; "%z;Ï ; %&lÏ×h ÿ @3za C %A Ê?6<%AÕR+ÏZ
KG ^ RCY 5=]6<00h+!C"%Né ÊAC3JA%6!:>+>k=+ :%&ä Õ nCE<äõ!* 1!:0=+; VQA< :!* "%AYK&VNÏKn%0ÏKG:(Ï(K&m C!+#6 C C!( ï"%?%P " 3ªôK6¯fC!+#6 kP+8(>é%~ÊA V-!:+ *ÜzÛ!CEá(>ÕRÕ%'k#G!CèòÊ÷6<"0h CîC& ï!*: C C é2(
K&µ ^ G!Cz 5=´6<"0h+!C&"%N%6 ~%R!*<T6C"%Né ÊA CO A%6!:> 7> =+ :%&ä Õ nCE<ä !* 1:0=+;
V|6< :!* "%?YK&VNÏ(Kn%Ï(KG:(Ï¡K&måC&+#A1 C C&!a(ï"%% " uª K6¯ C&!#61 ö 897>é$%2ÊAl¡zÛ!CEá(>!ÕRÕ%'1#G!C <CzJ61CÞCE nï!*: CC é7(Ï1! " CÈ õ !*= 6< %´6 Î%6 2%6!*< :!C
KG:
- X)%& X =+ :%EO!* !:089n"%&!è=+"!* é$%RG(Ï 6ä+6n=!:C&Õ<5CEá:0hH! 1C/ * :ä<ÕRÕ 7+
KGüG?ÊA"%&U6< %R ª 89 * 6< :! G?ÊA"% 6<+%6 !:!C =+"! é%6G 6< !!;
ªx< !Õ2%A *<%% G?ÊA"% 6<+%6 v V|wzyat1)3
!!:+ **U{>!84! %! 1!:"" óV|ü[]6\*^`<+_P%6 \ "%º !>1!:!C ÌK>öC!+#6 h !;Ï¡h+÷ wYªr1c CEán:0"<0%Eðh ! %?<h+!5Ïâ R?ÊA"% A<+%6 v V|wzyat1)3
!!:+ **U6<+%6 n:Õ&hõ 6< óV|JG?ÊA"%N6< %6 53
Magyar Ispell dokumentáció 2003. 9. 15.
: ü Õ%A<5CÏq Õ%&7 +<<"(
KL
Kn% Kh
|V
C& ï!*: C
ª KG Ïõh+÷ wYr [ µ \ s _ CEán:0"<0%Eh ! %?< !>G0h+!ZÒ?Ê
G?ÊA"%N6< %6 "%`Ê á*ï!:!CÞC ª G?ÊA"% 6< %6 "% <Ì!C%&! ÈCGá:""h%6 n=!:(ÏOÕÎüG?ÊA"% CEá:0h%R `"áC& Õ =: ¤ v Vxwzyat1¦PC& ×V-!:+ *; óV| : %6!H!* "%?Ïk!CCEô<åÒ?Ê:!:!:è84 h%%´A<"0h+!C :"%AÕRÕ :Õ Õ% <<"JG?ÊA"%CEá:0h%6 ë 0á1CE 7Õ =+ :(
_ 1CE : <"!H®Õ®6<+%?áh CÌ ä!!* é%6G( uª´ :!:0!5=+ : !* !:0"C"%´>1!:CO !Õ%A C&Õ :"%ÏÇè8?ÊE:&h C /PÊ :!: CzC5P :%&=:3Ïq %?ä6Õ!&%:0(Ò?ÊL%Lh+< !* !:0"Cl5:>!E@ ÕRÕ ët(<Þ"%?=!=5=!:!CE0>1=(Ï1Õ (C0>1= !:#6C/R+é%A : C
ªb%?áh <äkï<0 J{3>kC5P :%AzCEáh %&CE<äZ'1 ¡= P :%E 6< <Ä%6 2%?+<5CÌ ×:n! <"! %¸6<!H!C+ÏùAÊ> %? h !==6C =!:Þ %?RÕ]%?áh C+Ï(h Õï!(aï!7 6 ªx<Ì :ä<äð! %6!Ü: P 2%ò6<"0h CÈ C&%%?ä+C& 6<%%A ÿÕ 6<1CGá<<0 =+&h <%Lh C& ï!*: CzC5P :%&=+
µ _ =+ :%E!* !:08("%&!è=+"!* é$%RR3 óV|î< !* !:0 :&hÕ : C %AE@ C %6 Ê?6<&%6Õ6Ïö< !"%A"%E5CR!:=+ CEáh %&CE<5C
°x < A<"!
°¨< +6<"! ¤ \ *CG1z"%&*=!* %6z"%%R¦
\ _ tqrªÆ _ ì°çÙZtjµ µ3t _ ªÖ84 *ï! &% +89 6ä A(7!= !: *=´6<!H!CG+%Ï1Õ{<ÌÕ !+ : h <6! %®!* !:0õ:&hÕ%ÄH"%~ÊE!C uª´ :!:0*=:l6<!!H!C 6< %6 %E5 %Rz"%%: èC& nï! 89+!>7(ÏÇð=! 84 6ä G C =!: _P\ µ _ w _-_ É ¤ Ù+wYr|« \ [][ tq É ¦ï<0 :%P Ê? :5C+ `t(< <Þï<0 :%] n %6!;Ïê + õ: !:0"+ñ6<C5:#"Ïê : 6<"!:>!Õ CGñ%E5 %6Äz"%%ç: üCE nï! %]J6< 8!>( ªx< 6äT6Q!H"%%] <% CEáh %E5C ÊA0h+ %?CÏq Yh+!:!:!C
Khh
54
Magyar Ispell dokumentáció 2003. 9. 15.
ªñ A< :!* "%AO=** :"%4(Û!CG1z=5:# C' s3<CEá+< _ h+!=!=! Õ +Õ`ÊA0hé%6:Õ *C ï!(CEáh %&CE<äk 5=´6<(
s3<"!PC/ªñ 84 äPÊ?"h H"%C h+!H6<&%RR3
^ R Oª 5=´6< #R ÕnÊ?JP> %%´6<(7(Ï(h+ # 6<"0h !C ( ªx< tR#"!+ =5 :"%4(Û C&Õ&%AA<0 :001R0h+!Z+6<"!Cé% "%~ÊE!CYl#R 7Õ&%0
Ê
ª 8
6 < 89+>G =+84nÊ?<ä3>!ÕRÕ
+!
8?"%6G!:!C
ªb6<T89 hÕ%6 zJG?ÊA"%N6< %6 n=(
%
C
ªb6<kC =+%&ÛC&Õ:%-h T89 h Õ&%6 zJG?ÊA"%N6< %6 n=(
qr +< %%ò%?ä+6<÷89 h Õ%A ªñ+<"{63>5CC&Õ :"% !>+%%Ïjz*:"%R!!!6<1 !! ÷6<ð !AÊ?:Ì%?á2%AÕ :5C
V| < 6< :5:#ñ84 h Õ&hèü6< %6 n=(ÏÇ %?ä6<+89 h Õ&%6 %] á*äCE *ZC&<>! :
1e Õ >('u !C !: !:0"+< :!C < H>! : Õ P+<"5CA<"0h+!C ¡°x(ï!CÄ84 a !:0<¡w _ eÇ6< %z%Lh CEá+< :Õ&h!P+<"5CA<÷%? >! Õ C&! h+! É µ :0"|ÊGCÌè% =5* :%4Û"%0Ï=é ÊE!CÏq w _ eQÏdt:%A LÏj=+é ÊE!C+Ïj + %LhÏ1ÕYt:"%A ª %Lhî6<ö !: Ä ë6<0 7 u 6< %6 n=!:(ÏkÕÈ7++<"GðP:>EÊAí +17z:C+Ï T<Jw _ eÇ6< %ÄY5 " :è%? >! Õ CG1C C&!6<0 7&%:Õ :!C H"%&: Ïê!; Çw _ eKG <ÏZw _ eKG%N?%=( 1z%h"KG <Ï(%h"KG% z5:"%6?ÊA ( aª Kh H)Kh ;Ï¡Kh+ )"Kh ÕÄ%? >! Õ CEC"%® CEá %?äEÊ?* C&!+#6 %N%? >! Õ C Òz6<"0h C/R%AÕ =+ :¡C ï! á1: C& !84 h :!: Ï>!ÞÕTé*¡ ]6C C&ZC&Õ :0" *R =!=î +0#! ñ%?ä 84 hÕ%A ;Ïjz*:"%z5:>! : ¤ !C d%?á1=!=J6<0<"¦ %?1 >! ÕCE+{!H!CE %C ï! á:0KGC ï! á:z84 h :!:
t(aC ®R+é%?RÕõðz*:"%RíC h !H6<%6G! <+'O 6ä :%&=+ :åí :7 :> 6<0{é% de; qP+<"5C6<"0h+!C: !( Õ a !:1 :>1Û¡Ò?Ê-6<"0h+!C84 hÕ%A Õ :Õ Z A< :!* "%2ÊE!C ×y Í ° 6< %+Õ >!C&Õ:%Ï1?ÊA!C 7Õ6/ !:7 :>1:Õ +0> õ<ÌJ é%A%%¸%LhKn% OªZÊA!C CE 7 Cé%AÕR ! !:17:>¡6%AÕ =:ÞaVxûzÆë6< % 6<: ! "%~ÊE!C ¤ !{é*"% : ü A<.ÊA0hé$%h áC&KG¦ `V| !:0<T6< : {<"*C6<ZÏý !: Õ >!%&!H?Ê?>1:!:Õ&h3Ï1aeZ!;Ï e1Õ&%6 LÏÜû/2®6<0"h !C"%®>1 %~ÊE!Cî +Õ >!:C !:17:>%?ä8?ï+ä( :( `V| 6<0nÛ¡CEá+< :Õ&häh+!: 55
Magyar Ispell dokumentáció 2003. 9. 15.
6<ZÏZ!C CG(g A< :! ÊE!CÌ<ÈCÏkÕ C+Ïýï!CÈ6<"0h !C"%
\ Õ C :Õ u!*;Ïh Õ ;Ïêï!;Ï5C& Õ C :Õ 3<*CÏh Õ 2<5CÏ :ä<5Cå &%±ð+Õ > ¤ 7 Õ* %?ä1 õðCEáh %&CE<ä h+! %?+<""%?1C= !:l 6<0 ÛAá3>5CY
ªx< t(R#"!+ =5* :"%4Û CEÕ%?6<0 4 :0"G0h +6<"!Cé%& "%~ÊE!C/<%zÛ0h %A%
ªx<î %%¸84 h%%ñ6<0"h !Cè!"%?1%E5CG!: G?ÊA"% 6< %6 n=C& ï: C dV|<%*:!::z%Aáá*:6<07%&:Õ :!CÏ ð +17!J= 1 C5 Õ 0h G?ÊA"% 6< %6 C&Õ< "%?6<0 nCE6<%AÕ6Õ&h !%A %2ÊGïCÞP
xÆ 5 Õ +ÕÎÌh ! %?<&%R"%66CÞ :"%AÕRÞ:Õ *Cï!; 3ª® 2! h+! %?+<%6"%R Õ%AYR%AÕ :¡P!ä+6é%AÕA%CEÕ
h
xª < !* 1!:0 * :ä<0Õ6Õ : C +6<"!Cé$%RG h+! %?+<%6"%RA1C P :"%6Õ6Õ&h 5 V| h+!: CGá h%&C&<ä !* !:0Ï1!CCEQ +!Ä!:!:!CY :ä<0Õ6Õ%ÄCE<0> ;
3s é%?RÕ ëV|A1:! øáhH>ö éÈPÊ? :é%AÕRè =5* :%4Û! !:#6C ;
^ sYÙtqµ µt _ ª±y \ *õ6:!C&Õ :"%ñ>1 ++<<"è84 u<Ì!* !:0"C"%Ïk "®6<0"h !C"%ά ¤ %?ä6<(¦ÏaK ¤ á+66<%A%?%ò6<¦Ï(h Tæ ¤ 7++<+%%ò6<¦çC 7!C%A n7Ê? á Ïkð %A : CE% o ¤ :5:#ëÊA0h+ "%G¦Ïh+ÞÝ ¤ h+!:NÊA0h H"%R¦PC !C&%6n7 5 ªfæ Ê? %]C* :%&=+ :CEáh %EPÕ¡J6< %?ä uª o Ê? Ü"%6!:î 5=®A<ÏOÕ/C&<>!ä <é5# GÊAYh+!:z89 %&ï!:"%6&%h OªgÝbÊ? % CEáh %E 5=ñ6<Z¹ÇòÊA0h H"%?1CÄ6<"!(¹kð 5=®A< C&<>ä1 +<é5# GÊA(¹ù?Ê?> C&&%?%?ä+ 1:"% "%6!:îòÊA0h+H"%ACÏ h A6<äh ( h !H6<%Lh+('
K
¬
#C& #C&!=AÊGA<
#C&!C æà#C& #C o P#Cz # C& Ýà# Cl¢ 1'j#C(Ïq#"(Ïq# C&(Ïj# C(Ïh+# C&(Ï 56
Magyar Ispell dokumentáció 2003. 9. 15.
nC&(Ïq# CE eQÔqµ [Í Æ !!:+ *+K?> :!UJWsO :1 (
"%&J ªx
!!:+ *+K?>¡)"%G)+w : wNST#0 H(2m+ 2m") 7)>H#%R)() >!U [ t ª®:Õ P% Aé6<+%6 .C h+!H6<&%RGlð!>+%% !=6<*Ò"% Ò"%h1:!*215Ï ?%R!:> 7> = P :% 84 >! +<0G0h+!;
!!:+ *¬3 ; "%z ªx<èC&%! ÄCEá:""h%6 n=!:è%6!H!* "%?÷á+66<0 V _ yuµ !* !:05:"%A !C&%AéhÞ * :ä(2<0ÕR+
!!:+ *+KE!6<áh Z ; %&J ª®P> %%!* 1!:0¡ *= ´6<"0h 5:!CÞC éR3
!!:+ *+KE|¬3 ; "%z ªx< !C%&$ ÄCEá:0h%6 = !:Ì%R!H! "%?÷á+66<üV _ yuµ !* !:0à6<"0h 5:!CÏOÕ 6<"0h !C 6< %?á h5: C C é2G(
Æ|ûYr|jct Ë t _ []\*^`_P\ wYªr1c ª A< %R ² Õ : Cî!>(R ü6<1 !!; ks3<0 + <5CzYK>kC!+#6 h+!;
wYr [ µ \ s _ ªgRAÊ?%NA<+%6 . Õ : C!>G J6<1 !!; 1s3<0 + <5CzYKGC!+#6 h+!;
Í µ3µ+wYy Í dc]wYÆ )(9) 7)>!8!! % "X ª¨< ! +Õ ~%6*<0&%?% +<0 %6!= <""%0 dµ R>k !!:+ * ¤ M(¦
)(9) 7)>!8!! % $>H#/ªx
µ 6> !:+ ¤ M¦
v V|wzyat1) ; !!:+ **U{>!8!! %
ª¨
ª¨<Ì!* !:0%º Õ%&7 +<<"aV-!:+ *;Ïq : ü Õ%A<5C dµ R> + * ¤ m"¦
µÍ s [ a y ÔZ¯ !!:+ * ¤ M¦Ïj !!:A%A ¤ m ¦Ïq!C&0>1= ¤ m¦Ïj (C0>1= ¤ m"¦Ïß + * ¤ m"¦Ï + * ¤ M¦ÏdyÞ \ + (>1C! :"%6# Z
57
Magyar Ispell dokumentáció 2003. 9. 15.
s Ë tqr Ë ª±V-!:+ *3< \ :%A :%E :! \ + * Õ :03Õ6<0Õ : C ^ æYæ{K+ Ò?ÊE!h 6é$%RR:!CÏk×yY+sq+ 8?ï+h Õ :0(CGá1:0"h%6 n:!C = ä hé%AÕR Q#G!CÄ84 *ï! %®ðCEá:0h%R <Ïê !: Ê? :"%?ä+/= ä hé%AÕ { ¨:"" hzh:"%&CE+<"G!=!: ¤ y yz sq+ *¦
ª z5:"%6!C&Õ :"%ò6<1 !! \ :"%A n:"%E : \ 6< <äGÊ?¯Q+X Æ. :!:5:ZÏOA1Cå® ä(>EÊ?åJ!:!C?ÊA 7 %6!6<CE3> h ¤ ;
+ * ¤ m"¦R¦
ª±yz sq* %/Æ&h!5:aVQ :>1 # C/CEÕ6<é%A%%AJ C h+! Õ5: " : w/+ : wNST#0 2 ¤ 0>!%E5 s(%6 w´ST#0¦ 5(>! +17!#6
ª Þ y ¸yY+sq+ %Ïê** %Lh ÌaV-!:+ *!89 *ï! %A%/QÕ P%& µ 6< OY: %& !Q0(2 A%6(
!!ÌCEÕ6<é%A%%AYI!++IKI!+ KG=!:(
!I + O #5G"%?1(z84nÊE 6<%AÕA%]s3<+6<"!=! GÊ? C%fh A< %? h !==à ×:0! %?+%%¸89nCE3>1Ò ¨{(~891 3( P<ä *CEÕ6<é%AÕ6Õ : C5!:0!=(
ª±V-!:+ *3ay \ + * GÊ? C&%® 0>1Õ :0"Õ%ÏÇð \ + *H)yY+sq+ *Z "6é7&(6<+%6 n{3>1! % 6< :! Ê? :0 h(Û A<áh C :ä<0ÕRCE ª y \ * &h <ä ?%R *! +1!" $#1 #éP : %6!H!* "%AZ ¡°
n!:!CåY5:>! :ü !: Õ6< &h Õ%A %Ï 5 %Lh R+é%?RÕ%Ï YÈÊ=!= %A %&ÿ yÞ yz sq+ * "6é7K * :ä<ä %ÏÕ{ayÞ \ + 6< %6 nP(>1! %
¨ª < \ :"%A n:"%E 1:! \ + * KG:CÏ1Õ]é* Þayz sq+ **: Cl / h:"%CG<0G h !:( ª +1!{1C= !: A<0 7 ä "SJ@3!{%?áPáé%AÕ [ áPá*C K? %z61:l!H!6<*CÏ [ á1{á1*C «`!*:%ò5Cz+KAÕEh C =+ :!!=!5C! %]! + %&JG!:(Ï1!Y %] fyK?"ÏÇ<È 6äø <"u C%&:5C 6<0!Pé%?Õ Õ é%AÕRÕ% CEáh %?ä( :(Ï :0" hÕ6<0%EÄÊ? * ÛðC%6"%66C C!+#G!:l>1 +< %%C;
V \« Í Æ ªbG?ÊA"%N6< %R ¨Õ 7&%6.Ê? :! Çm"+ÞA<1=!:Yh+!: CEnH"%?+<&h+(
ªÖ89n=!:aylª Wsdtjr wYr [ !C O=+"!* é%6G0h+! é%& "%Au=+ Cé$h !:"%´Õ 2%AÕ C
ª¨<÷W _ ÙKZÏõh+ W _ ÙK&m0 C 7!C%A nCG3>HÒ !* !:0"C * :ä2<0ÕRÕ%ÕO: Î%6!P+"%~ÊA(
58
Magyar Ispell dokumentáció 2003. 9. 15.
ª 6 (21Cå@5! ÄÕ %AT:*:#/CEn %?+<&h 3Ï>!zluC«KL+ "%R 21CG1:z%AÕ&hR :ð !*=%ýÊ? < %®ð 2! uª A<1CGá< :001R0h+!Z ÊE!CY"%z%AÕ&h/ 5=?Ê? <0Õ?% É ª¨<È&KG5¡#éP CÏdW-rQµK C+Ï1Õ"Õ =¡Ò"%Lh1:!H!CY* :ä<0ÕRÕ% *CE nï!* %~ÊEï!CÏq l<0 CE%NÊA0h 61 %P(>1:(¹`V _ yaµR%AÕ =+ :Þ ´h+ YÒ"%h1:!*)"h+ JÏóµ+ _ R%AÕ =+ : B !nHD(Ò"%Lh:!HFl89n!=!: >EÊE!CÞ ¤ ªg#é C/ h 6<%6A%º Ä %?äh ÕÄ%A&hä B !n µ _ !:# < !n×#611=!: %6 !* "%AZÏa%A "% 6< :!H"%6! <Ì B 6 # C"D3!HFÿ !:#ÈC>R í 6< ï!CRÕÞh : "!J=!!*!J=!:( *¦
I!+ Z "ÊEÒ!:5Ym01
5.2. Hunstem(1) !!:A%A ¤ m"¦
!!:+ * ¤ m¦
!!:A%A ¤ m¦
NÔ!°
!!:A%A ±K-6< %?á h<äk +! qÍ _-_ tjÆ \ _ Ô3s !!:A%A î}V.: C!+#6 CN}*!* 1:0 ¤ C¦ µ3tì4r Í s ª V-!:?%6 ×V-!:+ *Ü 2! *CÄ84 ï! %AÏÇ! 6< %?á h<0ÕzÕ{!* !:001Cl*:>!G@+ Õ6Õ 7/6< !!; 3ª® !!:A%A !:#/P+89 3 !!:+ *+KL/ é$h :C+
ª -V !:?%6 õ %?RÕ´84 * 6< :!HR !C&0>1=(ÏÕ{ 1C0>1= !:#A1CÞz"%R"%&:!CÞ+Õ >("%
µÍ s [ a y ÔZ¯ !!:+ * ¤ m¦Ïê!C&0>1= ¤ m"¦Ïê C0>1= ¤ m¦Ïëy \ + * >1C! :"%6# Z
59
Magyar Ispell dokumentáció 2003. 9. 15.
I!+ Z "ÊEÒ!:5Ym01
!!:A%A ¤ m"¦
5.3. Makedb(1) !C&>Z= ¤ m¦
!C&0>1= ¤ m"¦
NÔ!°
!C&>1=YK¨,- =! " Cl5:>!E@!* !:0!: !Cl Õ&% <0R qÍ _-_ tjÆ \ _ Ô3s !C&>1=a}HK>kCEá:0h%R -}HKG22´} KL¡!* !:0 µ3tì4r Í s ª !C&0>1=ð 7:#{!E@ ÏOÕ:!:!CC5:&%6Õ%]aµ(C0>1=! %6 C& %?äT89n 7 <<"(ÏjAÊ>k !!:A%A ;*:>G@u:Õ&h :à * :"%E
ƪe ^ sZwzµ+ÐYÆ K>öCEá:0h%6 ªx< 5:>!E@+ : Cé$h+!:"%çCEá:0h%6 n7 :>6< ú 0áC& 7+
ª´H!R%&=:
KLõ!* 1!:" ª® 2! C5 :%Eu!* !:0( aª] !6%&= :à<è
*) !!:A%A ;*:>G@1
KG
ª C 5P :% H"%?é$h¡Ò"%h1:!H!C&"%
89+T%6 2%6!*<:!(zK> C!+#6 k 6<: %6JR%AÕ : "
eQÔqµ [ Í Æ !C&>1=YK?>¡)h 9),.,-,²KLa)"h+ ),.,-,) !!:A%A ;*:>G@lKG ªñ !:# :Õ ~%6Õ CÛÞCEáh%CE<äh 5' #0>a)h 9)",-,-,¹q!C&0>1= µÍ s [ a y ÔZ¯ 1C0>1= ¤ m"¦Ïê !!:+ * ¤ m"¦ ÿª !C&0>1=ðáh > Õ Ê1 >1C! :"%6! % ÕnÊE +17!Ïk<0Õ 2%®Õ7>! Îè8(G"%ç %A C5:"%A :
60
Magyar Ispell dokumentáció 2003. 9. 15.
I!+ Z "ÊEÒ!:5Ym01
5.4. Lookdb(1) 1C0>1= ¤ m¦
!CE0>1= ¤ m"¦
1C>1= ¤ m"¦
NÔ!°
1C0>1= K C&7RÕ !CE0>1=ð !:#0#G!¡ ä! é%?+%% 5:>!E@! 1!:"=!: qÍ _-_ tjÆ \ _ Ô3s 1C0>1= !!:A%A JUP>"%&=< A8?ÊE1C ! #6A< ¤ C¦ µ3tì4r Í s ªñ (C0>1=ð !:#®"ÄC& RÕA%Ä ?ÊL%fhÕ1üð!CE0>1= !:#0#G!â Õ%&7 +< %?% 5:>!E@!* 1:0=!:3 ª +17 C5P :%Az<1:!* !:001C$ A%6?ÊA(Ï1! Cz5:>! :ðP> %% C ! #A6< %N%6 2%6!*< :!C+
y h að!C&0>1= !!:A%A ]K?&%N8?"%%6"%~ÊA3Ï1!Y5: C "%6G l< 5:>!E@+ %]!* !:001C6<00h+5:!C%?áh î Ä=+ C& ïuð!C&0>1= >"%=< =(Ïkð (C0>1=C* :%Az<C"%] %% C! #66<0"h !C %?1 >! ÕCE %®!H!CnÊA %f%6 2%6!*<<0!CÌ#G!C `eÕ >!!(= 1CG( C ! #A6<= 1C %´6< %N%6 2%6!*<!* !:0"Cl C é7 C& ï!*: C Ù7>é%Lh (Ïah ! È: 6< %?äkC ! #A6< %0Ïq : +<+%%!H!CG+% 6< :! h l<Þ ¨:ü A< !<+
V|: ü :"%A+"Ïj !: ºA<ð nÊGu"<0ÕÎ!H!?ÊA!:î!C& n!:!C C& : Ïk!C CE² "<< ï!:!CÈ#**H %®C ! #A6<h ÕÕ 7
t:!: CÞ:]Ê? :"%Aä+RÕh !:(ÏýY h a<à %& :ü6<"0h !C ¤ %?á=!=:0!57Ä%&!H?Ê?>:!:&h Cäh !:J6<¦
%?1 >(! Õ CE %]!H!CnÊA % : üCEÕ +{uV-!:?%6 ±%Aáh < : Ï1<0Õ 2%P %%´ ä+R :ñÊA0h 61 %® #5HO 6< :!H"%6 ¦
Qe Ôqµ [Í Æ 1C0>1= !!:A%A 55:>!E@a#C&l!ÕN³ °¨ 2R 0!¬(³ ª CE 76Õ 0>1Õ :0"è<1:î!* 1:001Cî$ A%6?ÊA(Ï ! " C%R ~%R!*<<"!CY#C&aÔsk
Magyar Ispell dokumentáció 2003. 9. 15.
<0 CÄ%? >! Õ CE %]!H!CÊA %R¦ÔsOOÏ2Ï °x R 0³~³ Kh C&<>ä3>ä 6<+%
µÍ s [ a y ÔZ¯ !C&>1= ¤ m"¦Ïj !!:+ ¤ m¦Ïj 1C ¤ m"¦ Oª±µ(C0>1=áhH>ÕÊ >1C! :"%6! % ÕnÊE +17!Ïk<0Õ 2%®Õ7>! Îè8(G"%ç %A C5:"%A :
I!+ Z "ÊEÒ!:5Ym01
5.5. Hunspell(4) !!:+ * ¤ M¦
NÔ!°
1C>1= ¤ m"¦
!!:+ ¤ M¦
!!:+ *+K´ !!:+ *(!* !:05:!C89n"%!
µ3tì4r Í s ª V-!:* ¤ m"¦ºC&Õ%®!* !:0%Î Õ :0 ¡T>! %%:0 h : %?á(~%6Õ:äO 6é?K :ä<0Õ < uª¨<Ì 6äõ! 1!:"à 6< %6 !* !:0ÏO!zO<Ì>! %%ç:0 hà6<00h+ %ÏOÕ±<0 C C!+#6 3 % ¤ "%%&5=!Ò"%&! %R¦-%6 2%6!*<<"( 3ªñ6(>1*Cz!* !:0 ×+<"& ¤ "SJ@(¦®! 1!:"3Ïk!zÜ1 "%6 +<<"î< J é%A%?%C&!#61 1C.Ê? :"%AÕRÕ% ªñ !: ;Ï * :"%AÕ%&=+ :î< + * KG ;Ï CGá<Eh %& :!ï!â A< :! ÊA 84 ×< C&% < !* !:0"C"%Ï%6 "%: üCEÕ +<Þ= ä1ï!CÞÒ!:( ý î!* 1!:0% ¤ ; ß * ¤ M¦R¦
s Ë Ð q_ Í r Í µµ+wYy Í dc t(× !!:+ *!6< %6+7!* !:0 Aä 6J6<+%6 !* 1!:0=: Õ&hä 6<0"h !C/6<0!"%
%R ~%6<<"( 3ªÖ%?á1=!=66:!C&Õ :"%ñ 6< %N%6 2%6!*<+ dy*:>! :z6<O%6!:: èCEá %6 <ä( :a+ Ê?;Ï Õ±Ïah ü%Aá=!=ðC!+#6 øCEáh %&C&< %0 uª C!+#6 C (=+%&ÛR CÏkÕÈ "%6 <<"!CÏê ×z* :z%? >! Õ CEC"% C!! "%]z%?ä6< de1Õ >!!( m !!:+ * <5C)3t3 62
Magyar Ispell dokumentáció 2003. 9. 15.
6< %6 Øî6< %ò%6 2%6!*< ¤ !: ¦ÏOYO +<0&!* !:0Þ!H!?ÊA!:l!H!:0(Õ´%6 !+<"A%P h:< ¤ taÕÞC!+#6 C¦Ïh+!H!z*:"%P CEá %?äk p@({1C&"%º C!! "% Oª +Õ >ü6<+%6 !* 1!:"îÕÎõ ²7+<" !* !:0å!H!?ÊA!:àõP !:+ <%AÕ%A Cå " 6<1CEÕ :"% C& ï!*:84 Õ7
rª¨¯xw qË Í s \3Í µ3µ+wzy Í dc ª 7+<"ø!* 1:0 7 :>6<0 45:"%çC R =!=ðPÕ 7%&Û(ÏkÕ C ï! á:"84Õ />!pj:é5# 1C * %?%]7+<"aA<"!=! "C"%ñ>EÊA Z
sdt _º\ s1w+i»KI _ rc¸é1Òì2ÐYÑd%6 <0!:n C Õ0>1"ä0há=!#8$ÊEï!Û@, _ ªtsdµ ËÍ xw \ [ K
r|Vx¯NÆ Ô y/c ze°-ûY«¨W ^ Ù!Ú
^ wYyueqwzW- [ y \ ôI ^ wYyueqwzW- [ ÙZµª¨¯óc ^ wYyueqwzW- [` wzr [ Il ^ wYyueqwzW- [ s!cµ3µª{«xµtu 0Õ é(á(ä!Ò!ï!Û s!cµµª«¨µ3tjNW.yõC *P# ^ wYyueqwzW- [ Ù \ rqs _ h ^ wYyueqwzW- [ µª.s _ @ Ù+wzrQ« \~[][ tj wzr [ , wz
µ?crdw{w _ ª ^Q^ tj _ Õé*(áä1Ò!ï!Û (!! ^ VNt ^ Æ
NW-y wYr [-^ Vª{rqs¡K& þ ¶ ◦ 1mI Mi! ¢» r|tqeßI r|tqeÊ{ r|tqeú ]Ê eQÙ Qe Ù Qe Ù Qe Ù sdÙ ds Ù ds Ù ds Ù
b c¸ b b b Pc¸ 5C 5C 5C
áA6<0
%ï!C %6Õ&%6 C %6ÕC
}$><n5C }><&n5C }$><n5C
ªñC ! #6A<"0h+!C.Ê? :"%6ÕR' sdt _ ªñC 7C&%A nC&Õ6< %=+"!* é%6G ¤ \ sZwNK+i»K ¦
63
Magyar Ispell dokumentáció 2003. 9. 15.
_ rc
ª ÊA0h+H"%?%A&hÕ:Õ (< mÞC& !C%A 7 = !CE+<"61C:! Ç <î %%¸84 A(21 %ÄC& !C%A C 7Ì#R Õ ;Ï 5* %Lh = ä hé%
^ wYyueqwzW- [ y \ ª C R =!=ðÕ %&Ûü6<ZÏZYÕTá6A<0%A%%´6<=!: 6<0 + * % Çs3<0 Y#G!Cz ^ wYyueqwzW. [ Ùµª¨¯ >G R%AÕ :zh !:(
^ wYyueqwzW- [ ÙZµª¨¯ \ %%±>1 "%?öP¡JA<(á+66<%AÕ%6*=+ :zh+! T6<0 ! ÕA% :0>!Õ <äkC!+#6 Z `V| !:0<5C/!pq:é*# ð +<0&!* !:0(= ;Ïh a:*:#R : 6< :! h < %?% !>+%%çC!+#6 õü6<+%6 !* 1:0=!:3Ï :5:#R : áA6<0%A%%?6<KGC&<0 ÕP %?%:0 h(=+ :(
^ wYyueqwzW- [` wzr [ t(Ïah õC&Õ%ç !Õ&%62%fh+ 3ªx1*Cå !Õ&%6 7 u<&%±ðC&!#61 +% >1 %~ÊE!CZÏZ!z3ü6<+%6 n=ðCEá+<&h%& :!ï!84 h %% áA6<0%A%%´6<0"h !C"%dÊ? á?Ê?> ¤ yÞ -yz sq*¦ ^ wYyueqwzW- [ s!cµ3µª{«xµt ÆÕ&%Ä !Õ%A 2%fh uª¨EÊA5C 84 6(21 ÊAîð!:! !:<1C&"%0Ïk!P ålA<+%6+6<"! !!*H!é%6G! <ÄA< ï!CRÕ" V|ð !:0<5CÈ< >!pj:é5# Ïk!C CG(²:*:#R :ðCEn "%A+<"{<áA6<0%A%% 6<"0h !C%AáhÕ : C/6< %R+6<"! Ìh:"%CG<!:( ¤ yÞ yz sq+ *¦
s!cµµª«¨µ3tjNW.y t(a !Õ&%6 ~%
h 3ªñ 7!Õ%A n=+ :!>1 "%A!!Cz<C +<"A<%6 "CÏ1! " CÞ7+<"R&%6Õ :l" :á h 5CÌ<Èá+66<0%A%%ñ6<00h+!CÄ%?áh Õ :Õ C 6<"!Pé$%A %% 6< %66<0!P+% ªñ =:J<0CüðP * Õ C:Õ&h(C&Õ<ä1C+' C& Õ C Ê?"hé%6G5:!C ;Ï >! CE 7Õ C K;ÊA0hé%6
¤ y
yY+sq+ *H¦ ^ wYyueqwzW- [ Ù \ rqs _ ªx1!* "%:!C 64
Magyar Ispell dokumentáció 2003. 9. 15.
äZ ¤ y -yz sq+ *¦ ^ wYyueqwzW- [ µª.s _ ªx1!* "%&: !C/ äZ
V|6< :!* "%?! Õ CG1 % !H!CnÊAâ %E5 %6 C& ï!*: C ¤ yÞ -yY+sq+ *H¦
wzNµcrdw{w _ ªx<Ì ä<äöC&!#61 kJÛ!CEá(>!ÕRÕ%=+89 A1 OC!+#6 Z
V|à à6<õ×Ù+wYr|« \~[][ tq wYr [ Õ < wzNµcrjwPw _ C!+#6 h+!Ç È7:>! C&<*CÏÇ!CCEØ#G!Czz%?ä!!H!C 6<å %E5 %Lh+(Ïkè%?ä÷%? >! Õ CG1 %ñ!H!CnÊA :
¤ y
yY+sq+ *H¦ ª ^Q^ tj _ ª¨< ÕC&<0&%6Aé%AÕ < A< ï!CRÕ! =+%Û!CE% CEÕ% !Õ%A 7 3>1 "%2ÊGCPO %% ªx5Cè<è<1C :!C 84 äÕC&<0%:Õ *C ï!$ C"%]>EÊAP ¤ y yz sq+ *¦ ^ VNt ^ Æ
NW-y ª A<"!PC"% %6 2%6!*< A<"0h+!C :ä<0Õ6Õ : C =+ C!+#6HG( ¤ yÞ -yz sq+ *¦ wYr [-^ Vªrqs eZ 7!Õ%A 7z<CzC& !C%A 7 C+ÏZ! CYð=0 é%? %?% CE(>1 ¤ !; öð úR%AÕ =+ :å< \ sZwNK++i!»KI¦ =+%&Û!Ü * %% PÕ A<"0h+!C =!: ä+8(>Z! %&:!C
¤ y
yY+sq+ *H¦ r|tqe
ª ÊA0hé%R&ÿ#6 7%6!=!H<""% !>(R ü6<1 !! >!pj:é5# 1C+ OªxEÊE!C¡Y%Aá=!=jrQtje 6ú6<"!% t(<0 CÌàA(21Cå gC&Õ&%Ä 7PÕ%A 2% h+ :C+'k äA<á²!>&ÊGCÌè84 :>äöz*:"%R"% ¤ 6<á h1Õ6< %A%G¦Ï %6!: +0> <&% C 7C&%A 6+<""%?+%Ïâ!z5 84 $ 2% z5:"%6"% #R Õ *:×6< 7%&:Õ :!C øª Aé?K :ä<äð #R %6=! <0"%Õ&h Õ :è%&>â ëÊA0h+H"%? %¸%6:!:! %?á1=!=!C 7!C%A 7 %AÕ Õ ¤ !; 0Ê6) ¦NR&%6Õ :( Oª±y \ + *=:õP1 Õ&häøC& 6<%A * :ä(2<0Õ z"%% C 7C&%A 7 #R Õ C ¤ $)é ¦Î ®6< 7 + *: Cè×rQtje 65
Magyar Ispell dokumentáció 2003. 9. 15.
%6!= <""%=!:( dt:: CCEá+6<á:! %AäZÏj + T(Ïj à#R %6=! <0"%® !5CÌ#R ÕnÊ?Õ&h ä!!* é%& "%?1C 6<+%6 ¡6<=+ ¤ +Õ >(!!;'k Ï2ÏH6<é:"%&Û(³2³36<k 5=]á+66<%A%%´6<ö 6<Ïê 2%®< KGé#R 7ÕEh ( ä!!* é%& "%?J6<5:"%Ûz6<=+¦
eQÙ
e 7&p@3! !>R 6<1 !! >!pj:é5# C ª 7p!@3!PCY(C& !C%A 7Y:Õ&h"h &Ê? á %ò+6<%6! 01C= h+!:!:!C/A(21 h ( ªñ+Õ >!=!:< +6<%6! Þ>!pq:é*# GÊA H"%& "%AZ ªx!=!: ¦ ¤ I!¦®ðCE 76<&%=+çh+! øCEJ=5:!H®:0>!Õ "<0ÕRÏ 5* %h%E5 %RG ¤ c´)x¦ `t:!0>!Õ <ÕR%AÕ :Þ %% 7p!@3! CCE !*C!*< "%AZÏê îè%?ä+6< %?1 >! ÕCE %®!H!C =!:Ì897>1!a ä t ! <è< 6< ï!CRÕ"Ïù ÷è%?1 >! ÕC ¤ SJ@(!/¦º+<"& A<%6! !=!: / :l :!0>!Õ <Eh zCEJ=5:!H"
¤ !¦] C 7C&%A 6+<""% ëV|: üCE *Ç &h+!HA<%6:;Ïk!C CE 1
¤ !¦®ð p@3! ¤ +Õ >!!k CEá %?äÏ¡h+ å K&Ï KN * Õ C :&h C :Õ ¦
¤ M¦]z*:"%R(Ï1!Yß í5 6< CE0>5CÏk!C!*< "%?í 6<"!=! eÕ >!!Ç í %%C "%4z6<0 *:ÏZ!C CE #G!CzC "%4C&<0>!%&Ûl6<0"h !CY Õ÷ %&:Ä%6::u< =!=+ : 6n=!:ð> %?%ç p@3!{+% Oª z*:"%R !>G!:( :% ¤ ¦ò+0#! `Ê? :"%AÕ66 Ü=é' z5:>! :íC !C&%6 7î5* 6< CE0>5C yl>1 "%&!:C/#G!C = <:0"+ C&+7!C%A 7 C7 5* 6< C&>!ä Y5:"%R"% 6<á+ %A<0 GÊ? CR+é%A6Õ!ÕEh ; `eÕ >!!(< }*!=+#0>+ 5* 6< CE0>5CYkC 7C&%A 7 C å "
°] <""% É t* :"%6Õ%&=+ :î< \ + * KG 5ÏkõCGá %AäGÊ? 66
Magyar Ispell dokumentáció 2003. 9. 15.
6<0 +JJ6<á+ %A]<" GÊ? CCEá+<á+%%: º+0#H$ "Ï h+ CEá %?äEÊ? %`Ê :"%Ï1Õ/: èC !C&%62%6 2%?1:0%
V|îð:"! %?÷6<á+1 %A±<0 GÊ? Ü"%6!:ðC!H! ¤ Ó(¦ C 7C&%A %R! %?ZÏ C 7C&%A 2%6 2%?1!:0 CEJ! P :"%A 7Õ 75 6< CE0>5CYðz5:"%6(Ïê 61:! !:î 7!H /C 89nÊ?<0ÕR C < ¤ ; ê7!E@ ¤ ¢!¦R¦
sdÙ
ª eQÙ KLA<0 P!"<äk !Õ%A C&%C!(Ï#G!CÞ: ç 6< nÊG Ïq !: Äz6<åhÕ3¡%?1 >! ÕCECå é7G 6< !!; uª®+Õ >!=!:J6< 7 ! ä >&pj:é5# C.Ê :"%AÕR' <K0>5CÏh JK<5ChÕÛlA<"0h+!C 7îC!*< "%?í 6<0=! (ª®u5* 6<%AÕRÕ :Õ Z &h66<ïCzJA< h Õ3!KR5CC !C&%66+<""%?+%Ï1Õ®A<"!= %?8?ï+ä( : 5* 6<%~ÊEï!C ÌKn%ï!C+ÏaKn%AÕ%6CÏaKn%AÕ CÄ%?1 >(! Õ CEC"%Ï h Õ 7>1Õ :0(=+ :zK0>+%&ï!CÏ¡K0>+%6Õ&%6 C+ÏaK0>+%6Õ C+Ïê5 %Lh K<%&ï!CÏ(K<&%6Õ&%6 C+Ï(K<%AÕ Ch ÕÛJ6<"0h C&"%C!0h+(
ª +<"u 1!:0î<0 CE :õCé$h(ï!ZÕOÊ?<0Õ6 C&% 6% 2%6!*< "%Ï<0Õ ~% %%´6<+%6 dh ! %?<""%6"%Ï36<0 <äEÊ?Õ&%0Ï 84 * 6<:!H( :!>Õ %P %%C& 76ï!C
s3ª¨Ú Íq_ s Ë Ð _jÍ r ªbG?ÊA"%N6< %R d89n"%&!CGá<0<5CzJ6< %6 !* !:0 89n"%&!0h !; 3ªñC ï! á:!=RÕ!CJ CEáh %&C&<ä3 C+' ¤ m"¦/QüC& P>1:EÊE!C É ¦ ¤ I!¦Nªb6n=!:C!+#6 CÞ "%?%P>1 "%&!:!CÞC&Õ&%+ Ê * h !H6<%Lh+J ¡z5:"%66< %P "Ï1!z5: CYC!+#6 3 %NááC 3 C&ÕAä1=!=H C=:åüG?ÊA"%ò6<+%6 n=è84 h %%ò6<Z ëeÕ >!!( eZ"%401zC5: )+) Í >!Î6(Ê? :"%AÕRÏj + Þ×eZ"%4"JC5:è6< %±< Í >PÕ&h+!Z<äk+<06G!Z ] C&*!8!>1:
¤ !¦òªx<è!* !:0õCEÕ<< ÜP3>+6é%& "%?ÏOÕ±<%ºH>ä:CEÕ :"% ÊA0h+6 %P È %A :!: Ïý àR%& ö 5=G!:Èh %%&ï!:Cç84 6<"0h !C"%
µ Í s [ yaÔZ¯ !!:+ * ¤ m¦Ïß + * ¤ m"¦Ïê + * ¤ M¦ÏóyÞ \ + * >1C! :"%6# Z
_ ûzr _ ÔjNt _ ª yY+sq+ õ6< %6 ~K&Ï ** %Lh +<0ø!* !:0!:!C 89n"%&!"%ÈÆ&h*:×VQ :>1H# C/C&Õ6<é%A%%6/ !:J#0Õ *H!;Ï + %?äh ÕÄ%A "Ì<0 :î!* !:001C ""Ï×8?"%6 H>!nÊEÛ 67
Magyar Ispell dokumentáció 2003. 9. 15.
84 > +<0G"%0
ª ^ wzyaejwYW- [ ÙZµª¨¯ ÕÎ×yÞ ¸yY+s 89"%!z=+ähé$%6ÕA%Ï h+!H!Y5:"%®×rQtjeö%?á1=!=!C& !C%A 7±#R7%6!= <""%A % QÕ %& µ 6< C&ÕA<é%A%%6 6ä+6n=!: ñÊL1=!=ð g:0 h(Û "6é7K * :ä<0Õ #0Õ ÊA!=+; ª Y5:5! ^ áA6<0%A%%?6<KGC&<0 ÕA% %?äh Õ %A&hä wzyaejwYW- [ y \ NÏ ^ wYyueqwzW- [ ÙZµª¨¯NÏ1Õ{arQtjek%?á1=!=!C 7!C%A 7#R7%6!=!H<""%ç7Õ6< h+"%6! +zyY+sq+ !8?ï+ hÕ :0(CGá1:0"h%6 n:!C 0
ª±yÞ -yz sq*6<+%6 !* 1:0!:!C89n%&!P! "<5CY yz sq+ *!8ïh Õ :0CEá:0h%6 Õ&h+!;Ï1+<"&%R!=!H<0%P+0> õ 84 :"%EH C=:ü84 6 %=+ähé$%6Õ6 C&%
%R ~%6<<"( aª®= ä hé%A%% 89n"%&!JÒl"SJ@3!Ä! 1!:"J:>â:Õ C ï!¡ ï"%%zÛCGá3>*Cè< 70>!%EjyY+sq+ *8?ïh Õ:"CEá:0h%R !1 "Ï>!z=+ähé$%6Õ6 CÞ: 89+1:!CåzÛCGá3>1: ks3ä %Ïýz h að ! h+"%6! ÌyY+sq+ *õ :0>ä1=!=àá+6A<0%A%%AA< KGCE<0 ÕA%òh ! +6é%çPÏêz5:"%® jh+! %?+<""%Ï1<á6A<0%A%%´6<"0h CG1: = ï!%A >! Õ CG1 % !H!CECà ± 8!>ðC& ï!*: C ¤ <ÞC ï! á:á6 :J61CÞ 5= áA6<0%AÕ%A a 89+!>G"% 7>1Õ :0<ø :0" h R%AÕ =+ : ¦
t=!= ä1í8!C>Ïê ÷ð h "%R! +ÌyÞ ôw/+ : wNST#0 ¤ "%%&('*)+) ST#0 H8A86 ; !+¦ K z h ÿ y yY+sq+ 8?ï+ hÕ :0(CGá1:0"h%6 "%
%R ~%R!*<<"/KqÊ==!:z%6!P+"%~ÊAl¡ :0 h %Ïqz5:"%
h+! %?+<""%?1C ót(A<0 nÛ :ð+ 0ä+<ä3>1 %&ï!:!C n;Ïq aP *Ch ! %?<0%%6!+h+!:l> 1!:!C+'é ÊE!CÞ=+Ïj + "6é76 * :ä<äõ<èwPw´ 6<áh +6<0 C&6<&%AäGÊ?Õ =+ V| 5=:!C¨Ê? < ÏÕ Aé?K :ä(2<ä %dÊA0h+6Z &%?%AÏ ayÞ -yz sq+ * KG h !:l>1 1!:!C dV| ": C89+!>EÊAl;Ï !C CE.+0> !%Ejyz sq+ * KG 5
I!++1 j #5]Ii1
!!:* ¤ M¦
68
6. fejezet A Magyar Ispell tesztelése A tesztrendszer a lálható.
"%%&3'))",-,.,/ A< p`
! )1:! ) + *) + *; H<5
állományban ta-
A Magyar Ispell m˝uködésének tesztelésére egy független szókincstár, a Huhyph 4.0 elválasztási szóadattár szolgált. A tesztrendszer két tesztelést végez el: az elso˝ a Huhyph szókincstár felismerését teszteli, a második a HuHyph-ból kinyert véletlen mintából különféle algoritmusokkal elo˝ állított hibás alakok helyesként való elfogadását teszteli.
6.1. A szókincs tesztelése Csomagoljuk ki a parancsot.
%A6<%m
4 + * Kn%A6<&%0 H<5
állományt, és a könyvtárba lépve adjuk ki a
!C&
A szóadat szavai köt˝ojellel jelölve tartalmazzák az elválasztási pontokat, valamint fordított perjellel bevezetve, és kapcsos zárójelpárral lezárva a ketto˝ zött többjegy˝u mássalhangzókat. Ezeket a jeleket az 1. teszt során töröljük, és a Magyar MySpell függvénykönyvtárat használó => ,.7> programmal kisz˝urjük az állományból a hibás szavakat. Jelenleg (2002. július) a Magyar Ispell szótármodullal a lyesnek bizonyul.
!&,.7>" ; 0(!
állomány 98,5%-a he-
A maradék részben (ami mintegy 900 szót jelent a huwords.hyph kb. 65 000 szavából) még feldolgozás alatt álló, részben pedig idegen szavakat tartalmaz. Ha ezek elfogadását szeretnénk, az els˝o teszt futtatásánál kapott ¯NtjN ;:z P 2% állományt vegyük fel a Magyar Ispellben új szótári modulként, 7+<""%&H!: -ra átkeresztelve az állományt.
69
Magyar Ispell dokumentáció 2003. 9. 15.
6.2. Tévesztések ellen˝orzése A tesztelés megkezdése el˝ott a %6A<% állomány Úª(°jª´UJe ª virtuális gép helyét, mivel a téves alakokat elo˝ állító program ( y Adjuk ki a
!CE%A6<%AI
_ V változójának adjuk meg a ÊA0h+ \_ A% ) Java nyelv˝u.
parancsot a tévesztések elfogadásának tesztelésére.
A tesztprogram a huwords.hyph szavaiból egy véletlen, 1000 szóból álló mintát vesz. Ebb o˝ l \H_ A% program téves alakokat képez az alapveto˝ Ispell javítási algoritmusokkal a mintából a y (bet˝ukihagyás, bet˝ubetoldás, bet˝ucsere, szomszédos bet˝uk felcserélése).
A teszt során három állomány keletkezik: A ¯NtjN H6A<0 állomány tartalmazza az összes elo˝ állított téves alakot. Ez mintegy 750-szerese az eredetileg 1000 szavas véletlen mintának. A ¯NtjN H6A<0 állományból a kerül a ¯NtjN ; 5= állományba.
=> ,.7>
Végül ezeket a szavakat kivonjuk a állományt.
program kisz˝uri a helytelennek felismert szavakat, ez
¯NtjN HA6<0
állományból, így kapjuk meg a
¯NtqN
"
A ¯NtjN ; " tartalmazza tehát a !&,.7>" ; 0(! -ból nyert véletlen minta „elrontásából” keletkezett, mégis helyesnek felismert szóalakokat.
6.3. A tesztek értékelése 6.3.1. Szókincs A !&,¨(>"
0 els˝o feldolgozása során az eredeti állomány mintegy 5%-a, 3700 szó nem került felismerésre. A listában az idegen, régies, ill. ritka szavak mellett a hiányzó tövek ragozott alakjai is el o˝ fordultak, így mintegy 2000 db. hiányzó t˝or˝ol beszélhetünk, amely szám – tekintve a szavak többnyire nem hétköznapi jellegét – jónak mondható! A hiányzó szavak listája nagyrészt feldolgozásra került Bíró Árpád munkája révén, így sikerült az 5%-ot jelent˝osen lecsökkenteni.
6.3.2. Tévesztések A ¯NtjN
szólista a többszörös tesztelések során átlagosan 16-szor bizonyult nagyobbnak, mint a véletlen minta. Íme az „álomszer˝u” szó téves alakjaiból elo˝ állt helyes alakok:
! 6<0 Û ! Õ6<0nÛ ! Pé*<0 Û ! PäA<0 nÛ 70
Magyar Ispell dokumentáció 2003. 9. 15.
! Pä< nÛ ! P6é5 Û ! P6( nÛ ! P6<00>1Û ! P6<0Û ! P6<0 Û ! P6<0 zÛ ! P6<0 :!Û ! P6<0 ! P6<0 = ! P6<0 =!Û ! P6<0 ! P6<0 Õ ! P6<0 ~8?Û ! P6<0 4 ! P6<0 JÛ ! P6<0 ~% ! P6<0 ~%&Û ! P6<0 Û ! P6<0 Û ! P6<0Õ Û ! P6<0 Û! ! P6<0 Û"% ! P6<0 h ! P6<0 h(Û ! P6<0E@(Û ! P6<é2nÛ ! P6<( nÛ ! P6<änÛ ! P6< Ò Û ! P6< Û!Û Látható, hogy a szavak nagy része szokatlan szóösszetételként került elfogadásra. Az ilyen szóösszetételek a Magyar MySpell 0.4-es változatában részben már nem kerülnek elfogadásra. Szerencsére erre a legtipikusabb hibák esetében (pl. i/í, o/ó, u/ú, ü/˝u, j/l, j/ly, stb.) kerül sor, így a Magyar Ispell/MySpell már (ellentétben pl. a Helyes-e?-vel) nem fogadja el az ilyen típusú, tipikus és súlyos tévesztéseket (pl. szervíz, szeméj, súlytó, stb.).
71
7. fejezet Szabályok A következ˝o táblázat a Magyar Ispell és a Microsoft Office XP-ben megtalálható helyesírásellen˝orz˝o magyar helyesírásnak való megfelelését részletezi. A vizsgálat során nem minden esetben a Microsoft Office XP, hanem a Morphologic cég Helyes-e? programjának Linux operációs rendszerre 2002-ben megjelent változata, az Mspell 0.1 program szolgáltatta a szükséges információkat, de a tapasztalatok alapján ez megegyezik a Microsoft Office XP-ben található Helyes-e? változattal. A Magyar Ispell képességei a Magyar Ispell szótármodul 0.99.3-as és a Mispell/Magyar MySpell 0.9.4-es változata alapján lettek összefoglalva. Az ellen˝orz˝o és a szótármodul ezen változatát a Magyar OpenOffice.org ( "%%&('*)+) ST#0 89A86 ; ! ) közeljöv˝oben megjelen˝o változatai tartalmazni fogják. A táblázat a példaként megadott szóalakokat kurzív bet˝uváltozattal jelöli. Az ilyen szóalakok, amennyiben a magyar helyesírás szerint hibásak, csillaggal bevezetve jelennek meg (például *hejesirás). Amennyiben helyesek, de a helyesírás-elleno˝ rz˝o mégis hibásnak jelzi ezeket, a Microsoft Office és az OpenOffice.org szövegszerkeszto˝ kben ismer˝os módon, vagyis hullámos aláhúzással vannak jelölve (például helyesírás). A leírások A magyar helyesírás szabályai 11. kiadása pontjainak megfelelo˝ en számozottak. Egy-két kiegészít˝o megjegyzés külön sorban foglal helyett.
72
Magyar Ispell dokumentáció 2003. 9. 15. MS Office XP helyesírás-elleno˝ rz˝oje
Magyar Ispell Általános tudnivalók X
X
1
1. Nyitott forráskódú program, amely a közérdeknek megfelel˝oen áttekinthet˝o: folyamatosan dokumentált, ellen˝orzött, javított és szabadon hozzáférhet˝o mindenki számára. A bet˝uk X
Zárt, dokumentáció nélkül megjelen˝o helyesírás-ellen˝orz˝o, amely legalább az MS Office 97 óta bármiféle javítás nélkül jelenik meg az MS Office különféle változataiban. Linuxos változata Mspell néven otthoni felhasználásra ingyenes. X
3. A magyar ábécé minden bet˝ujét önálló alakban helyesnek fogadja el.
A magyar ábécé többjegy˝u bet˝uit hibásnak jelzi: dzs bet˝u. Az ékezetes bet˝uk toldalékolt alakjait hibásnak jelzi: hosszú ú-val.
6. A stilisztikai célból megengedett magánhangzó-halmozást nem fogadja el helyesnek: Één?, Neeem. Kivéve góóól, negyven ó-ig bezárólag. 7.b. A mássalhangzók hosszúságát bet˝ukett˝ozéssel jelöli. A többjegy˝u mássalhangzókat csak az összetett szavak tagjainak határán kett˝ozi teljesen, egyéb esetekben egyszer˝usítve kett˝ozi o˝ ket. 8. Nagybet˝us formák esetében a megengedettek vannak elfogadva: csibe, Csibe, CSIBE, de *CSibe, *::::::: cSiBe. Gyakorlati megfontolás:::::: ból csak nagybet˝uvel (tulajdonnévként) kerül elfogadásra a kis legtöbb toldalékolt alakja (például kissel, de kissé jó. 9. A stilisztikai célból megengedett mássalhangzó-halmozást nem fogadja el helyesnek: Nnem!, Terringettét!
Hasonlóan, de a góóól alakot hibásnak jelzi.
1
Hiba a -szer˝u utótag összetett szóként való kezelése: *észszer˝u, *vadászszer˝u, a helyes alakok (kivétel ésszer˝u) hibásnak jelzése: mésszer˝u, viasszer˝u. L. még 62. Hasonlóan jól m˝uködik. (L. még 164.)
Hasonlóan.
. . . A helyesírás valamely nyelv írásának közmegállapodáson alapuló és közérdekb o˝ l szabályozott eljárásmódja, illet˝oleg az ezt tükröz˝o, rögzít˝o és irányító szabályrendszer. . .
73
Magyar Ispell dokumentáció 2003. 9. 15. Magyar Ispell MS Office XP helyesírás-elleno˝ rz˝oje 13. A program kezeli az UNICODE ka- Csak a magyar ábécét, és a q, w, x, y beraktereket. Alapértelmezett az ISO 8859–2 t˝uket kezeli a szótár: Škoda, Molière stb. A karakterkészlet:2 Dvoˇrák, Händel, Škoda, *Skoda, vagy a *zloty alakok elfogadása hiba złoty. . . stb. Az UNICODE karakterek ISO az UNICODE alapú, vagy ISO-8859–2-t tá8859–1 esetén HTML karakterentitással, mogató szövegszerkeszt˝ok – mint az OpenOfegyébként pedig decimális karakterkóddal fice.org, illetve a Microsoft Office – esetében.3 adhatók meg: Molière (Molière), Duna–Tisza köze (Duna–Tisza köze). Az idegen ékezetek esetében is javítva vannak az ékezet nélküli változatok: Skoda →Škoda, Dvorák, s˝ot Dvorak →Dvoˇrák. A kiejtés szerinti írásmód X X 17–19. Ragaszkodik a helyesírás által rögzített köznyelvi formához. A leglényegesebb hibák (tipikus tévesztések; a hasonló, de nem rögzített helyesírású alakok el˝ofordulása; hibás, de a szótárba mégis felvett szóösszetételek) alapján ellen˝orizve lett a szókincs. A teljes szókincs lektorálására azonban még nem került sor.
2
Számos, a helyesírásban nem rögzített beszélt nyelvi ingadozást helyesnek fogad el. Ilyen, kés˝obb nem említett példák: *lyány (lány), *siserehad (siserahad), *bédekker (bedekker), *ekhó (echó), *trikolor (trikolór), stb. Valahol csak a rossz alakot engedi: *puzon (puzón). L. még 28. Egyéb probléma, hogy nem létez˝o szavakat, illetve nem szótári töveket tartalmaz a szótár: *ál, *fesz; *sepr, *sodr; *süv *veé stb. Nem fogad el számos mai magyar szót, különösen az új, szaknyelvi és földrajzi elnevezéseket: karalábé, klónozás, ombudsman, szafari, helló vagy heló (helyette *hello) stb. A szótár pontatlan, illetve elnagyolt besorolásokat tartalmaz. Például hangrendi tévedések: *tettról (tettr˝ol), *vésznak (vésznek) stb. Elnagyolások: *fiája, *híjája, *aljájáról (többszörös birtokos személyragok) stb.; *történed, *halja, *év˝odi stb. (a nem tárgyas igék kezelésének hiánya).
A közép-európai nyelvek közül az albán, bosnyák, cseh, horvát, lengyel, német, magyar, román, szerb, szlovák, szlovén nyelvek ábécéjének bet˝uit tartalmazza, továbbá az angol, finn és ír ábécé bet˝uit is lefedi. A Windows operációs rendszer ún. közép-európai kódtáblája (Windows-1250) egy kib o˝ vített ISO 8859–2 kiosztásnak felel meg. 3 Az OpenOffice.org teljes UNICODE támogatással rendelkezik, lehet o˝ séget nyújt még az ázsiai írások kezelésére is. A Helyes-e? és az OpenOffice.org egybeépítésére a kereskedelmi forgalomban kapható Magyar Office mutat példát.
74
Magyar Ispell dokumentáció 2003. 9. 15. Magyar Ispell Szaknyelvi modulokat (matematika, informatika stb.) tartalmaz több száz szakszóval. A történelmi és a mai magyar helységneveket is tartalmazza, ami a közigazgatási, valamint földrajz és történelem tárgyú munkák ellen˝orzése céljából nélkülözhetetlen. A szókincs a felhasználók által is b˝ovíthet˝o.
MS Office XP helyesírás-elleno˝ rz˝oje Nincsenek szaknyelvi modulok: elempár, alterek, variancia, bijektív, attraktor; flopi, mikrocsip, élkiemelés, interpreter, alhálózat. A városi rangú települések neve közül is sokat nem ismer: Gyomaendr˝od, Szécsény, Vásárosnamény, Zalaszentgrót stb. Nincs lehet˝oség a szókincs b˝ovítésére, csak egyes szóalakok felvételére.
20–21. Az i, u, ü és ezek hosszú változatát mindig ugyanolyan formában tartalmazó szavak írásában pontos.4
Számos hibás alakot is elfogad: *egyivású (egyívású), *elitélt (elítélt), *hiv˝o (hív˝o), *izület (ízület); *neutrinó (neutrínó), *szivató (szívató), *telitett (telített), *tikfa (tíkfa); *kompatíbilis (kompatibilis), *színt˝u (szint˝u); *labdarugócsapat (labdarúgócsapat); *mélyfurás (mélyfúrás); *ramazuri (ramazúri); *harangbugás (harangbúgás); *lámpabúra (lámpabura); *k˝uzd˝otér (küzd˝otér) stb.
Gyakorisági megfontolásból sok alakpár ritkán használt tagja le van tiltva: csábit, öblit; visszairt stb.5 22. Az i, illetve í vég˝u szavak esetében nincs ismert hiba.
Egy-két alak van letiltva: tanit, de például a csábit, öblit, visszairt nem. Sok ilyen f˝onév toldalékolása hibás, illetve hiányos: kocsijai, *kocsiija, *kocsiijai. Hasonlóan zsenijei, mozijai, masnijai stb. A hí toldalékolása is hibás: híttak, *hittak stb.
23–24. Az u, ú, ü, u˝ vég˝u szavak esetében nincs ismert hiba.
Elfogadásra kerülnek a *hiu, *savanyu, továbbá *átlagáru, *vasárú stb. alakok. A hú, h˝u indulatszavak mellett helyesli a hu, és hü alakokat.
25. Kezeli a csepp és csend alakváltozatai közötti különbséget.
A nem használt alakváltozatokat is elfogadja: például *csöppk˝o, *csönd˝or.
4
Az alapszókincsre vonatkozik a pontosság. A magyar helységneveket tartalmazó modul sok kett o˝ s alakot tartalmaz még. 5 állományt a Magyar Ispell forrásában. L. a
A& ~ G 6 R 6 &0
75
Magyar Ispell dokumentáció 2003. 9. 15. Magyar Ispell 27. Az í, ú, u˝ szabálytalan és szabályos váltakozását mutató szavak írásában pontos. Gyakorlati megfontolásból viszont nem fogadja el a ritka t˝untet és sz˝untet alakokat (a t˝unt, és sz˝unt tárgyragos változatát).
MS Office XP helyesírás-elleno˝ rz˝oje a) A szabálytalan váltakozást mutató szavak esetében téves alakokat is elfogad: *hivat (hívat), *hivató (hívató); *irogat (írogat), *irogató (írogató), *irogatás (írogatás); *bíztat (biztat), *bíztató (biztató), *bíztatás (biztat); *sz˝untet˝o (szüntet˝o), *sz˝untetés (szüntetés); *t˝untet˝o (tüntet˝o), *t˝untetés (tüntetés). b) A szabályos váltakozást mutató szavak esetében téves a f˝uz toldalékolása: *f˝uzek (füzek), *f˝uzes (füzes) stb. Súlyos hiba mutatkozik még az ilyen szavak I/3. birtokos személyragos plusz birtokjeles toldalékolásában: *vízéé (vizéé, vízé), *t˝uzéé (tüzéé, t˝uzé), *kézéé (kezéé, kézé) stb. Hasonlóan a -nyi képzo˝ s alakok esetében: *viznyi (víznyi), *tüznyi (t˝uznyi), *keznyi (kéznyi) stb.
28. A közkelet˝u idegen szavak magánhangzóváltakozásában nincs ismert hiba.
A kultúra szó származtatott alakjait helytelenül kezeli: *kultúrál (kulturál), *kultúrált (kulturált), *kultúrálatlan (kulturálatlan), *kultúrálódik (kulturálódik). Számos egyéb esetben is elfogadja még a nem rögzített írásmódú alakokat: *analfabétizmus (analfabetizmus), *polémikus (polemikus), *aszkétikus (aszketikus), *szférikus (szferikus) stb.
29. A szó végi a, és e a megfelel˝o toldalékolás során válik hosszúvá.
A -szer˝u toldalék el˝ott is megnyúlik a magánhangzó minden esetben: *kecskészer˝u (kecskeszer˝u), *allegrószer˝u (allegroszer˝u), *mangrovészer˝u (mangroveszer˝u).
30. Nem követ el hibát a kett˝os alakok megengedésében.
Nem létez˝o kett˝os alakokat is megenged a -nyi toldalék esetében: *borjnyi (borjúnyi); *tetvnyi (tet˝unyi); *bokrnyi (bokornyi) stb. Az el˝oz˝ohöz hasonló probléma, hogy birtokjel is járulhat a nem szótári t˝ohöz: *bokré (bokoré, bokráé), *terhé (teheré, terhéé) stb.
32. A metsz, látszik, tetszik toldalékolt alakjai is helyesek.
A mesd; lássék, tessem, tessek stb. alakokat hibásnak jelzi.
76
Magyar Ispell dokumentáció 2003. 9. 15. Magyar Ispell 41. A m˝uveltet˝o képz˝o kezelése helyes. A régies -atik, -etik, -tatik, -tetik szenvedo˝ igeképz˝o kezelése csak a mai köznyelvben még megtalálható alakokra szorítkozik: megadatik, de oltatik.
MS Office XP helyesírás-elleno˝ rz˝oje Az -at, -et és a -tat, -tet szabadon járul a to˝ höz: *bonttat (bontat); *kértet (kéret); *nyitat (nyittat), *oktatatás6 (oktattatás), *történtetnek, *történessél (történik+-et) stb. Általánosan kezeli a szenved˝o igeképz˝ot, de a m˝uveltet˝o képz˝ohöz hasonlóan hibásan: oldtatik, de *olttatik, oltatik).
42. A -val, -vel kezelése jó.
Szintén, egy hibával: *mohval (mohhal).
45. A toldalékolásbeli kett˝osséget jól kezeli, kivéve gyakorlati okból az elavuló formákat: szeretniök, látniok. 46. Az elhomályosult képzés˝u szóelemek írásában nincs ismert hiba.
Hasonlóan.
A szóelemz˝o írásmód X
Nem ismeri a lélegez ige egyes alakváltozatait: belégzem, kilégzel stb. Több -szt vég˝u igét sem kezel: aggaszt, apaszt, áraszt, ébreszt, fagyaszt, függeszt, horgaszt, kepeszt, lehiggaszt, sorvaszt, szállaszt. X
Több tucat –, a beszélt nyelvi ingadozások, és hasonulások miatt elkövetett, több karaktert is érint˝o – tipikus tévesztést javít: elösször →el˝oször, szöll˝o →sz˝ol˝o, hütt˝o →h˝ut˝o, dijjas →díjas, csug →csukd, baráccság →barátság, licensz →licenc stb.7 62. Az azonos hosszú és rövid mássalhangzók találkozását jól kezeli.
6
A ly/j, ts/cs, ggy/dj, ggy/gyj, nny/nj több karaktert érint˝o tévesztéseket javítja csak.
A -szer˝u és a -féle képz˝oszer˝u utótag esetében hibás alakokat is elfogad: *dzsesszszer˝u (dzsessz-szer˝u), *puffféle (puff-féle). A toldalékolásnál helyenként a nem egyszer˝usített, hibás alakokat is elfogadja: *frissség, *fessség; *feddd; *izzzak, *izzzam. . . 8 Egyéb példa még a *veddd. A tovább igeköt˝o esetében csak a hibás alakot fogadja el: *továbbbotorkál (tovább-botorkál), *továbbburjánzik (tovább-burjánzik) stb.
Érdekes módon ez egy gyakori tévedés is egyben, aminek hátterében az írás során megismételt szótag áll. Az ilyen hibákat felismeri és javítja a Magyar Ispell. 7 L. cseretáblázat leírását. 8 . . . *izzzalak, *izzz, *izzzál, *izzzad, *izzzon, *izzza, *izzzunk, *izzzuk, *izzzatok, *izzzátok, *izzzanak, *izzzák.
77
Magyar Ispell dokumentáció 2003. 9. 15. Magyar Ispell 63. A d vég˝u igék ragozása jó.
MS Office XP helyesírás-elleno˝ rz˝oje A d vég˝u igék módjára, de hibásan ragozza az r, és j vég˝u igéket is: *írdd (írd, írjad), *várdd (várd, várjad); *fújdd (fújd, fújjad), *vájdd (vájd, vájjad).
64. Helyesen kezeli az -l vég˝u igéket.
Nem ismeri a múlik ige köto˝ hangzót tartalmazó alakjait: múlanak, múlanának. Elfogadja viszont az -at, és -tat képz˝os alakjait: *múlat, *múltass (mulat, mulaszt). Nem ismeri a telik ige hosszú l-lel írt alakjait: tellene, tellenek stb.
65. Helyesen kezeli az egyalakú -ll vég˝u igéket.
Elfogadja a következ˝o alakot: *álnak (állnak) stb.9
67. A hosszú magánhangzóra végz˝od˝o igék ra- Hiányzó t˝o: nyí, nyíjatok. Hibás alak: *hittak gozásában közel megegyezik a Helyes-e?-vel. (híttak). Nem fogadja el a régies hí, és fú egyes A n˝oszik igéb˝ol képzett n˝ossz alak a jóval gya- toldalékolt alakjait: (fúvok, hínak stb). koribb n˝osz ellen˝orzése miatt nincs elfogadva. 69. A jön igét helyesen kezeli. Hiányzó alak: j˝onek. 70. Az egy számnevet helyesen kezeli.
Hibás alak: *egy˝uvé (együvé).
72. A kis fokozott alakjaiban a hosszan ejtett s-t írásban nem tükrözi.
Hasonlóan, de elfogad egy-két zavaró alakot hibás szóösszetétel-képzés révén: *kisseb (kisebbség), *kissebség (kisebbség).
72. Az -s vég˝u melléknevekben a hosszan ejtett s-t helyesen kezeli.
Hasonlóan, de elfogad egy zavaró alakot hibás szóösszetétel-képzés révén: *er˝osseb (er˝osebb).
Helyes javaslatot tesz a belölle, elölle hibás alakokra: bel˝ole, el˝ole. 74. Az új és ujj meg van különböztetve.
Nem tesz javaslatot Az ujj -ság képzo˝ t is kaphat: *ujjság (újság). Az új a f˝onevekhez hasonlóan bármely szóösszetételben szerepelhet: *újperc (ujjperc).
75. A h vég˝u szavak írása pontos.
Szintén, kivéve *mohval (mohhal).
78. A rövid magánhangzó + t vég˝u igék, illetve a lát és bocsát igék kezelése helyes.
A hibás *lássd (lásd), *bocsássd (bocsásd), *hallgassd (hallgasd), *kössd (kösd), *nyissd (nyisd) stb. alakokat elfogadja.
79. Az st és szt vég˝u igék kezelése helyes.
Az st vég˝u igénél (fest) elfogadja a *fessd (fesd) alakot.
9
Ennek hátterében a hibás *ál (ál-) to˝ felvétele áll.
78
Magyar Ispell dokumentáció 2003. 9. 15. Magyar Ispell 80–81. Az s, sz, z és dz vég˝u igék ragozása helyes.
MS Office XP helyesírás-elleno˝ rz˝oje Az s, sz és dz vég˝u igék kezelése hibás: 1. *olvassd (olvasd), *késsd (késd) stb.; 2. *mászza (mássza), *játszzák (játsszák) stb.; 3. tessem, tessél, lássék, mesd. 4. edzd, pedzd.
82. A kivételes ragozású sz vég˝u igék kezelése helyes.
A tesz, visz, eszik kezelése hibás: *tesszél (tegyél), *visszétek (vigyétek), *esszünk (együnk) stb.
83. A -val, -vel toldalékolás jó.
Hasonlóan, a *mohval, és a bet˝uk toldalékolása (l. 3.) kivételével.
A hagyományos írásmód X
X
89. Az ly írásában pontos.
Csak a hibás alakot fogadja a csevej esetében: *csevely. Számos ly-t tartalmazó szó esetében a hibás alakot is elfogadja: *estéji, *karvaj, *szeméji, *ünnepéjes; *bolyár, *bolytár, *súlytó stb.
A keretrendszer lehet˝oséget ad a zárt ë hangokat jelöl˝o helyesírási szótár létrehozására a magyar nyelv zárt ë szótára alapján. 91. Az egyszer˝usít˝o írásmód X 94. Jól kezeli az egyszer˝usít˝o írásmódot. Az ezekben elkövetett hibákra javaslatot tesz (például Gaussal→Gauss-szal.) A különírás és az egybeírás X
X Akadnak típushibák, például vadásszer˝u, *vadászszer˝u, vagy puff-féle és *puffféle. A helyes köt˝ojeles alakot nem javasolja. X
95. Fokozott hangsúly az egybe- és különírási szabályok betartásán. A helyesírási szótár szintjén kezel nagyon sok szóalakot. A köt˝ojeles szavak írásánál viszont még nagyon megenged˝o. 96–99. Különírandó szóismétlések írásánál feltünteti a helyes köt˝ojeles alakot is. 106. Az alanyos kapcsolatok esetében a jelentésváltozással bírókat engedi egybeírni.
Alapvet˝o hiányosságok (például nagyon sok esetben melléknevek és f˝onevek egybeírásának engedélyezése). A köt˝ojeles szavak írásánál is nagyon megenged˝o.
107–108. A min˝oségjelz˝os kapcsolatok esetében a jelentésváltozással bírókat engedi csak egybeírni.
Sok min˝oségjelz˝o esetében minden kapcsolatot elfogad (*nagyépület, *butakutya, *szépvers.
79
Nem javasolja a köt˝ojeles alakot. Minden alanyos kapcsolatot elfogad (*macskaásított, *egérfutott.
Magyar Ispell dokumentáció 2003. 9. 15. Magyar Ispell 111. Az önálló alakban nem szerepl˝o min˝oségjelz˝os alakokat nem fogadja el, csak külön felvett összetett szóban, vagy köt˝ojellel (al-, ál-, bel-, fesz-). 112–114. Az -ó, -˝o képz˝os min˝oségjelz˝os összetett alakokat, ha a szó valamely tagja összetett, szótári tiltások alapján a leggyakoribb esetekben nem engedi egybeírni. Az egybeírt alakokra helyes javaslatot tesz. A lista nem lehet teljes, de a leggyakoribb hibás egybeírásokat tartalmazni fogja a Szószablya fejlesztésnek köszönhet˝oen. 115. Az anyagnevek felismerése csak a gyakori esetekre van megoldva. 116. A hónapok, illetve napok nevét nem engedi egybeírni.
80
MS Office XP helyesírás-elleno˝ rz˝oje Több ilyet elfogad: *ál, *bel, *fesz, *pót.
Nagyon sok különírandó alakot helyesen kezel, de így is sok gyakorit enged egybeírni: *ellen˝orz˝obizottság, *el˝oadókörút.
Hasonlóan. A hónapok, illetve napok nevét engedi egybeírni. *januárhónapban, *hétf˝oreggel.
Irodalomjegyzék [1] BAKOS Ferenc, szerk.: Idegen szavak és kifejezések szótára. Akadémiai Kiadó, Budapest, 1984. [2] D EME László–FÁBIÁN Pál–T ÓTH Etelka: Magyar helyesírási szótár. Akadémiai Kiadó, Budapest, 1999. [3] JAKAB László: Tanulmányok az igeragozás körébo˝ l. KLTE Nytud. Int. 73. Debrecen, 1999. [4] K IEFER Ferenc, szerk.: Strukturális magyar nyelvtan 2. Fonológia. Akadémiai Kiadó, Budapest, 1994. [5] K IEFER Ferenc, szerk.: Strukturális magyar nyelvtan 3. Morfológia. Akadémiai Kiadó, Budapest, 2000. [6] M AGYAR T UDOMÁNYOS A KADÉMIA, szerk.: A magyar helyesírás szabályai. 11. kiadás. Budapest, 1984, 199411 . [7] N ÉMETH Anikó: A magyar nyelvtan. Merényi Könyvkiadó, Budapest, 1997. [8] PAPP Ferenc, szerk.: A magyar nyelv szóvégmutató szótára. Akadémiai Kiadó, Budapest, 1969. [9] T ÖBBEK. ispell manpages (man ispell, man 4 ispell).
81