\chapter{A Magyar Ispell tesztelése}

A tesztrendszer a \url{http://www.szofi.hu/gnu/magyarispell/magyarispell.zip}
állományban található.

A Magyar Ispell műkö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 első
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 előállított hibás
alakok helyesként való elfogadását teszteli.

\section{A szókincs tesztelése}

Csomagoljuk ki a \texttt{magyarispell-teszt.zip}
állományt, és a könyvtárba lépve adjuk ki
a \texttt{make teszt1} parancsot.

A szóadat szavai kötőjellel jelölve tartalmazzák az
elválasztási pontokat, valamint fordított perjellel
bevezetve, és kapcsos zárójelpárral lezárva a kettőzött
többjegyű 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ó \texttt{badwords} programmal kiszűrjük az állományból
a hibás szavakat.

Jelenleg (2002. július) a Magyar Ispell szótármodullal a \texttt{huwords.hyph}
állomány 98,5\%-a helyesnek bizonyul.

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ő teszt futtatásánál kapott \texttt{GEN.nemismert}
állományt vegyük fel a Magyar Ispellben új szótári modulként,
\texttt{ragozatlan}-ra átkeresztelve az állományt.

\section{Tévesztések ellenőrzése}

A tesztelés megkezdése előtt a \texttt{teszt.sh}
állomány \texttt{JAVA\_PATH} változójának adjuk meg
a \texttt{java} virtuális gép helyét, mivel a téves
alakokat előállító program (\texttt{MITest}) Java nyelvű.

Adjuk ki a  \texttt{make teszt2} 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ől a mintából a \texttt{MITest} program
téves alakokat képez az alapvető Ispell
javítási algoritmusokkal (betűkihagyás,
betűbetoldás, betűcsere, szomszédos betűk
felcserélése). 

A teszt során három állomány keletkezik:
A \texttt{GEN.osszes} állomány tartalmazza az összes
előállított téves alakot. Ez mintegy 750-szerese
az eredetileg 1000 szavas véletlen mintának.

A \texttt{GEN.osszes} állományból a \texttt{badwords}
program kiszűri a helytelennek felismert szavakat,
ez kerül a \texttt{GEN.hibas} állományba.

Végül ezeket a szavakat kivonjuk a \texttt{GEN.osszes} állományból,
így kapjuk meg a \texttt{GEN.helyes} állományt.

A \texttt{GEN.helyes} tartalmazza tehát 
a \texttt{huwords.hyph}-ból nyert véletlen minta ,,elrontásából'' keletkezett,
mégis helyesnek felismert szóalakokat.

\section{A tesztek értékelése}

\subsection{Szókincs}

A \texttt{huwords.hyph} első 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őfordultak, így mintegy 2000
db. hiányzó tőről 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ősen lecsökkenteni.

\subsection{Tévesztések}

A \texttt{GEN.helyes} szólista a többszörös tesztelések során átlagosan 16-szor
bizonyult nagyobbnak, mint a véletlen minta.

Íme az ,,álomszerű'' szó téves alakjaiból előállt helyes
alakok:

\begin{verbatim}
álomászerű
álomészerű
álomízerű
álomőszerű
álomőzerű
álomsíerű
álomsóerű
álomszedrű
álomszegű
álomszelű
álomszemű
álomszenű
álomszer
álomszerb
álomszerbű
álomszere
álomszeré
álomszerfű
álomszeri
álomszermű
álomszert
álomszertű
alomszerű
álomszerű
álomszérű
álomszerűr
álomszerűt
álomszerv
álomszervű
álomszexű
álomszírű
álomszóerű
álomszőrű
álomszúerű
álomszűrű
\end{verbatim}

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/ú, ü/ű, 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.).

