SPACEHAWKS' WORLDNEWS
ISSUE 20


Hüjesírás ellenőrzés az Amigán, vagy mi szösz...

Feljegyzések egy porblémáról, annak meg(nem)oldásáról és viszontagságairól, meg némi algoritmusokról, meg ilyesmikről.

Ha(haha) TE dobrij írni ungaricse szpíkül, akkor lapozz a következő csikkre.

A porbléma adott: sokan sivalkodtak, hogy az Amigán nincs korrekt magyar helyesírás ellenörző - bezzeg a hogyishíjjákon a szóizében van. Erről eszembe jut pár dolog:

1. Emlékszik valaki, hogy a Word ellenőrzője hány éve létezik? Hány éve javítgatják? Arról nem is szólva, hogy kezdetben milyen hibákat ismert és nem ismert fel. Nem azért mondom, de 99%-ban megállapítom pl. bármely magazinról, hogy azt azzal ellenőrizték-e, mert még mindig vannak csak rá jellemző hibák.

2. Leveleztem az egyik csókával, aki a kezdetektől fogva benne van a proggiban és Ő aztat írta, hogy Ő megérti a porblémát, és hogy beszélt erről (mármint hogy Amigára portolni a programot) a főnökével, aki éppen jó kedvében volt és aztat mondta, hogy:

a. Nem érné meg párszáz embernek átírni a proggyt, akik aztán vagy megvennék, vagy nem. De inkább nem...

b. Az algoritmust nem adja - illetve adja, ha... és itt egy hat számjegyű összeg szerepelt -, mert ők ugye ebből élnek.

c. Különben is, 7MHz-cen nemigen működne elfogadható gyorsasággal, meg ugye játékgép... Mi, hogy van már 200MHz-es Amiga? Akkor sem és punktum.

Szóval a proggy, vagy algoritmus átvétele szóba sem jöhet, mert nem adják, nem férek hozzá a forráshoz, visszafejteni meg nem tudnám.

Valaki máshogy közelítette meg a dolgot. Mi lenne, ha ugyanúgy csinálnánk, mint pl. az angol ellenőrök, amelyekben fel van sorolva az összes létező szó és azokat végigfésülve leli meg a hibákat. Fú, ne tudd meg! Sorold fel csak az egy szótőhöz tartozó összes képzőt, ragot, igekötőt, hogy az összetett szavakról ne is szóljak. vegyük pl. azt az egyszerű szót, hogy 'ablak'. Nézzük a ragozását:

ablak

-kal -ká -ot -nak -ban -ba -ból -ért -on -ra -ról -nál -hoz -tól -ig -ként -onként -os -ostul -é -ok -okat -oknak -okban -okba -okból -okért -okon -okra -okról -oknál -okhoz -októl -okig -okként -okkal -okká -oké -om -od -a -unk -otok -uk -omat -omnak -omban -omba -omból -omért -omon -omra -omról -omnál -omhoz -omtól -omig -omként -omé -ommal -odat -odnak -odban -odba -odból -odért -odon -odra -odról -odnál -odhoz -odtól -odig -odként -odé -oddal -át -ának -ában -ába -ából -áért -án -ára -áról -ánál -ához -ától -áig -aként -áé -ával -unkat -unknak -unkban -unkba -unkból -unkért -unkon -unkra -unkról -unknál -unkhoz -unktól -unkig -unkként -unké -unkkal -otokat -otoknak -otokban -otokba -otokból -otokért -otokon -otokra -otokról -otoknál -otokhoz -otoktól -otokig -otokként -otoké -otokkal -ukat -uknak -ukban -ukba -ukból -ukért -ukon -ukra -ukról -uknál -ukhoz -uktól -ukig -ukként -uké -ukkal -aim -aid -ai -aink -aitok -aik -aimat -aimnak -aimban -aimba -aimból -aimért -aimon -aimra -aimról -aimnál -aimhoz -aimtól -aimig -aimként -aimé -aidat -aidnak -aidban -aidba -aidból -aidért -aidon -aidra -aidról -aidnál -aidhoz -aidtól -aidig -aidként -aidé -ait -ainak -aiban -aiba -aiból -aiért -ain -aira -airól -ainál -aihoz -aitól -aiig -aiként -aié -ainkat -ainknak -ainkban -ainkba -ainkból -ainkért -ainkon -ainkra -ainkról -ainknál -ainkhoz -ainktól -ainkig -ainkként -ainké -aitokat -aitoknak -aitokban -aitokba -aitokból -aitokért -aitokon -aitokra -aitokról -aitoknál -aitokhoz -aitoktól -aitokig -aitokként -aitoké -aikat -aiknak -aikban -aikba -aikból -aikért -aikon -aikra -aikról -aiknál -aikhoz -aiktól -aikig -aikként -aiké -ú -út -únak -úba -úból -úért -ún -úra -úról -únál -úhoz -útól -úig -úé -úval -úként -úak -úakat -úaknak -úakba -úakból -úakért -úakon -úakra -úakról -úaknál -úakhoz -úaktól -úakig -úaké -úakkal -úakként

Most pedig néhány képzőt:

ablak

-os -osság -szerű -szerűség -szerűsítés -szerűtlen -szerűtlenség -talan -talanít -talanítás -talanság

Vigyázat, a képzett szók is ragozhatók. Végül pár összetételt, amelyik 'ablak'-kal kezdődik:

ablak

-adó -borda -borító -borítás -dúc -emelés -emelő -felület -fólia -frissítés -frissítő -fülke -jog -keret -kitámasztó -mélyedés -méretezés -nyílás -nyitás -osztás -párkány -rács -redőny -roló -szárny -szerkezet -szoftver -tábla -támasztó -technika -tekerő -tisztító -tisztítás -törlés -törlő -ülés -üveg -védelem

Elárulom, hogy minden képzőhöz tartozik még több mint 200 rag, a szóösszetételeket is lehet ragozni, képezni, vannak még többszörös képzők, miegymás. Szóval az 'ablak' kezdetű szavak száma egy teljes 'szótár'-ban úgy 20 ezer sort foglalna el.

Egy kicsit rövidebben nézzünk egy igét is: (Uramjézus, mit másolgatok én itt? - Emeric SH :)

ablakoz

-ok -ol -unk -tok -nak -ni -va -om -od -za -zuk -zátok -zák -nék -nál -na -nánk -nátok -nának -nám -nád -ná -nánk -nátok -nák -tam -tál -ott -tunk -tátok -ták -tam -tad -ta -tunk -tatok -tak -zak -z -zál -zon -zunk -zatok -zanak -zam -d -zad -za -zuk -zátok -zák -nom -nod -nia -nunk -notok -niuk

A képzők:

ablakoz

-atlan -atlanság -ás -gat -gatás -gatható -gató -hat -hatatlan -hatatlanság -ható -hatóság -ott -ottság -ó -ódás -tat -tatás -tató

Igekötők:

abba- agyon- alá- át- be- bele- benn- egybe- el- ellen- elő- előre- fel- felül- fenn- félbe- félre- föl- fölül- fönn- haza- hátra- helyre- hozzá- ide- keresztül- ketté- ki- körül- közbe- közre- külön- le- meg- mellé- neki- oda- össze- rajta- rá- szembe- szerte- széjjel- szét- tele- tova- tovább- tönkre- túl- utána- újjá- újra- végbe- végig- vissza-

Szóval ez igéknél is van párezer, már nem számolgatom. (Mindig is gyanús volt nekem ez a Napi2. Kellene neki ilyen hátulgombolós öltöny, a madzagos ujjakkal - Emeric SH)

Jó, ezek nagy részét soha nem használjuk (mert mondjuk értelmetlen, de attól még a magyar helyesírás szabályai szerint helyes), de most őszintén: keressem ki az összes szó olyan ragját, képzőjét, stb és írjam be egy programba, melyek ugyan helyesek, de nem adnak értelmes szöveget?

De azért: ha csak azzal számolunk, hogy van mondjuk 20 ezer magyar alapszó, akkor könnyen kiszámolható, hogy több, mint tucatnyi millió magyar szóval kell számolnunk. És akkor a 4 ezer körüli földrajzi nevet, a mintegy ezernyi keresztnevet és a 4-5 ezer meghonosodott idegen szót ne is számoljuk. A szleng érdekel vkit? Szavanként mondjuk átlagosan 6 betűvel számolva jó nagy filé kerekedne, az biztos. De ahhoz, hogy egy leírt szövegben az összes helyesen leírt szót felismerje, inkább 100 millió a szavak száma, mint 99000000...

Maradjunk annyiban, hogy az összes helyes szó beirogatása kivitelezhető, de kinek van ennyi hely a vinyóján? Mennyi 100 milliószor 6? Tehát, vhogy rövidíteni kellene! Itt van a fölébb leírt formátum előnye. Az alapszót csak egyszer leírni, aztán mögé a ragokat, képzőket, összetételeket. Sőt az igekötőket is, hiszen pl. hány sort foglalna el a 'fut', ha az összes igekötős alakját külön sorban kéne toldalékozgatni. Arról még nem is esett szó, hogy hány keresés kell több mint fél milliárd bájt esetén a tuti találathoz. Egy könyv lecsekkolása jól megdolgoztatná a vinyó léptetőmotorját, az biztos.

Tehát a szókeresgélés kilőve, vissza az algoritmushoz. Tanulmányoztam az utóbbi időkben egy kicsinykét a magyar helyesírás szabályait és több következtetésre is jutottam:

1. A magyar helyesírás alapszabályai világosak, érthetőek és egyszerűek.

2. A magyar helyesírás szabályai kaotikusak, érthetetlenek és roppant bonyolultak (szerintem aki tud ennél nehezebb nyelvtant, az porokat szed, vagy barnára festette a haját). (Ez egy fokkal hihetõbbnek tûnik. Én az MTA-t szeretem, amikor egyik évben úgy döntenek, hogy ezt így írjuk, majd jövõre szépen visszaváltoztatják. Legutóbbi kedvenc húzásom tõlük, hogy bár európában mindenütt EURO az európai pénz írásmódja (a görögök kivételével, akiknek ugye teljesen más ABC-je van) nálunk neeem, mi úgy írjuk, hogy "euró". Hosszú "ó"-val. Mert az olyan európai. Meg különben sem akarunk mi olyan nagyon bekerülni, jól elvagyunk mi itt magunkban - Emeric SH)

Nézzük csak az algoritmusok szempontjából. Vannak alapszavak és mondjuk vizsgáljuk meg a ragozásaikat. Itt vannak rögtön a magasságok és mélységek. Mármint a magánhangzóknál. Adott, hogy egy magas, mély, vagy vegyes hangrendű szóhoz egy-egy ragtípusból milyen illik hozzá. Igen? Akkor hogy ragoznád mondjuk az 'abszint'-ot? Az 'abszinttel' és az 'abszinttal' is helyes. De mondjuk 'kaviccsel'? Az is stimmel, hogy ha a szó végén magán-, vagy mássalhangzó áll, mondjuk még a dupla mássalhangzók is érthetők (talán), az elválasztásoknál is csak pártucat kivétel van. De meséld el nekem, hogy ha van két hasonló szó, amely az első betűjén kívül azonos, akkor azt miért kell máshogy ragozni? Vegyük például a 'baj' - 'haj' szópárt! Ragozgasd csak! Na meg a hosszú többjegyű mássalhangzók a szavak végén és elején: A szimpla megkettőzést értem, mint 'dísszel'. Az összetételeket is, mint 'díszszemle'. Hopsz, pont most nem jut eszembe, mivel szívtam, de itt is volt vmi furcsaság. Helyette: 'kicsinyel', 'helyesel', 'kicsinyelli', 'helyeseli'. Vagy pl. a 'vesz' ige ragozása sem piskóta (veszek, vegyek, vettem, vétel, ...). Szóval nekiláttam egy algoritmus fabrikálásának. Most már tudom, miért volt/van annyi hiba a hogyishíjjákos ellenőrben. Kezdjük talán az elején. Van egy szó: 'ablakjogok' Ez ránézésre egy összetett szó, amelynek második tagja ragozva van. Elvileg levágjuk az első szót, a másodikról a ragot, megnézzük stimmel-e és léphetünk a következő szóra. Most egy másikat: 'ablakfülkében'. Mint az előbb, vagdalkozunk. Opsz! Olyan magyar szó nincs, hogy 'fülké'! pedig az első szó stimmel, a ragozás is ok. Mi a porbléma?

Ami az emberi agynak első ránézésre sikerül, az algoritmust megszivatja. Mert egy ember elolvassa a szót, a mp töredéke alatt kikeresi az alapokat a memóriából, meg ilyesmi. De mondjuk van 30000 alapszó a lemezen, ezekből hogyan kereshet az algoritmus? Honnan tudja, hogy az 'ablak'-nál kell elvágni? Ugye mindenki ismer olyan szót, amelyik egy másik magyar szóval kezdődik, de annak sem ragozott, sem képzett alakja és nem is összetétel. Tehát két út áll előttünk: szépen karcsinként vagdalkozunk a szó elejétől, vagy végétől kezdve. Mit? Hogy megnézzük, a végén rag, vagy képző áll és addig vagdalkozunk, amig meg nem kapjuk az alapot? Aham. És az olyan alapszavakkal mi lesz, amik alapszavak, de a végük megegyezik a többezer rag, vagy képző vmelyikével. Odáig eljutottunk, hogy a legkisebb értelmes részekre kell szabdalnunk a kapott szót és ezeket ellenőrizni egymáshoz képest. De ha mondjuk elfogadom azt, hogy a 'haj' tárgyas ragozása a 'hajat', akkor honnan tudjuk, hogy ez a 'baj' szónál nem jó? Sőt, azt sem zárhatjuk ki, hogy a 'hajt' lenne a helyes (szó, szót, szavat, hó, havat, jó, javat?). Jó, akkor vagdalkozzunk az elejéről: 'fölébred', 'fölémegy', 'fölöz'. A szórend szerint megtalálja mindháromban a 'föl' igekötőt. Marad 'ébred', 'émegy', 'öz'. Az 'émegy'-gyel mit kezdjen? A másik trükk, hogy ugye minek van igekötője? Az igének. Ja, meg az igékből képzett szavaknak is lehet: 'ráfut', 'ráfutás', 'ráfutó', 'ráfuttat'. Azokról ne is essen szó, amelyek két különböző szóként funkcionálnak, mégis megegyeznek: 'rendez', 'berendez' OK. De a 'berendezés'-nek semmi köze a 'berendezés'-hez (pl. gépezet, gépcsoport, vagy a lakás ellátása belső tárgyakkal). Van egy kis különbség a ragozásuk között. Azért nem túl sok. Aztán vannak olyan alapszavak, amik igekötővel kezdődnek, de az nem igekötő, hanem a szó szerves része (belez, fölöz, alázatos, ellenség, előleg, összeg, stb). És folytathatnám...

Jó, de csak egyet: a legszebb az egészben, amikor van egy szó, amit mondjuk hosszú X magánhangzóval kell írni. No de nem ám mindig, csak ahol nem röviddel (nyíl, nyíllal, nyila, nyilak, nyilat, nyilas, nyílás, nyilaz, nyílik, adagio, adagióval...). Na erre varjál gombot!

Ekkor mentem le egy üres demijjonnal ZEgerszegre, próbáltam kevésbé józan szemekkel nézni e kaotizmust, de úgysem lett kevésbés sötét. Nagy ívben elhajítottam az algoritmus készítésének még a gondolatát is, mert tele van a hócipőm a kivételek kezelgetésével, amelyek kb. tízszerannyi helyet és futásidőt és 100-szor annyi manuális munkát foglalnának, mint maga az ellenőr. Visszatértem ahhoz, hogy készíteni kell egy adatfilét, amelyben így vagy úgy, de szerepelnie kell minél több helyes szónak, és azok mindenféle elfajulásának. Igen ám, de a programírástól így sem menekültem meg!

Ennél a stílusnál ott tartottunk, hogy nem szabad az összes szót, szóalakot beírkálni, hanem vhogy rövidítgetni kell. Első ötlet, egy sorban az elején az alapszóval, utána felsorolni az összes helyes és lehetséges toldalékot. Ezt is elvetettem. Ha megnézed, hogy hány toldalék tartozik egy-egy alapszóhoz, kicsit hosszú sorok lennének és még így is túl nagy filét alkotnának. Mivel a többezer karakternyi sorokat nehezebb átlátni, könnyebb hibákat elhelyezni bennük. Vhogy össze kéne vonni az azonos típusú toldalékokat. Azt észrevettem, hogy bár többezer toldalék van, de bizonyos szófajtáknál csak bizonyos toldaléktípusok és azok konbinációi vannak. Pl. igeragozásnál 9 féle (alany, tárgy, jelen, múlt, stb...) van, és ezek bármelyike tízen aluli kombinációból áll. Pl.:

adalékol -om -od -ja -juk -játok -ják ...
bőröz -öm -öd -i -jük -itek -ik ...
ablakoz -om -od -za -zuk -zátok -zák ...
acilez -em -ed -i -zük -itek -ik ...
...

Elárulom, hogy kb. mindegyik hasonló végződésű ige kb. ugyanúgy ragozódik. Na jó, vannak kivételek. Itt vannak csak igazán! Ezért a ragokat csoportosítottam, és egy-egy kóddal jeleztem minden csoportot. A fentebbi párezer karaktert elfoglaló 'ablak' - 'ablakoz' páros pl. így került be a szótár filébe:

ablak z98 z10 |adó |bord~ |borít~ |dúc |emel~ |felület |fóli~ |frissít~ |fülk~ |jog |keret |ki|támaszt~ |mélyedés |méretez~ |nyílás |nyitás |osztás |párkán~ |rác~ |redőn~ |roló |szárn~ |szerkezet |szoftver |tábl~ |támaszt~ |technik~ |tekerő |tisztít~ |törl~ |ülés |üveg |védel~ -kal -ká b04 c01 d01 e01 j01

ablakoz z02 a13 a23 a30 a40 a54 a60 a74 a84 a90

A 'zxx' jelzi a képzőket, amik egy külön filében vannak beragozgatva. Ha csak pár képző lenne, akkor azok így szerepelnének: '\képző1 \képző2'

A '|utótag' jelzi, hogy szóösszetétel esetén mi az az alapszó, amire keresni kell. Tehát az összetételek külön sorait is megspóroltam. Sőt, többszörös összetételnél két '|' is elhelyeztem:

rendőr ... |főtörzsőr|mester

Az első jelzi, hogy most utótag jön, a második azért van, hogy a 'főtörzsőrmester', 'törzsőrmester' és 'őrmester' szavakra már ne keressen rá. Ha idetalált, akkor már csak a 'mester'-nél nézze meg a helyességet. Hehe. Már a rendőrt is a rendnél fogja keresni... (rend ... |őrfőtörzsőr|mester)

A kötőjellel kezdődő betűcsoportok sima ragok, amelyeket azért nem csoportosítottam, mert indokolatlanul megnövelték volna a ragfilé méretét.

A többi kód a ragozásokat jelzi: ezek 'z'-n kívül bármely betűvel kezdődhetnek és két számjegy van a betűk után fűzve. Igeragok, főnévragok, többesszám, birtokos és egyéb esetek, meg ilyesmik vannak különvéve.

Használtam pár különleges karcsit is. Ezek egyrészt megkönyítik a hasonlítást, keresgélést, másrészt a kivételek kezelését könnyítik meg.

- erről már volt szó, sima ragot jelöl.

-val -vá -ként

'~' szó végén azt jelenti, hogy ragozás, vagy képzés nélkül nem helyes a szó. Olyankor is használtam, amikor összetételeknél az utótag más képzőjével is helyes, de nem akartam beírni, hogy '|borítás |borító'.

ab~ -ba -ban -ból

De az 'abház' (népcsoport) már nem 'ab~ |ház'! Mert az azt jelentené magyarul, hogy házig...

'!' szó végén hasonulási lehetőséget jelöl:

Aba! h01 h05 a/á -val f01

pl.: abaiak, abasiak, Abával, Abát az 'a/á' jelöli, hogy onnantól kezdve miről mire kell cserélni az utolsó karcsit. Van még 'e/é', 't/s', stb.

'%' kétjegyű (vagy dupla) mássalhangzót jelöl.

abakusz% \os -!szal -!szá b01 c01 d01 e01 j01

Itt látható a '!' másik jelentése. A '-!szal' azt jelenti, hogy ha ezt a ragot akarod a szóhoz rakni, akkor az alapszó utolsó karcsiját előtte le kell vágni. Ezzel a hasonlítgatási sebességet növeltem, mert nem kell még plusz erre is ellenőrizgetni. A '%' az összetételek, képzők összeragasztásakor jelez. Meg akkor, ha pl. két 't' van egy szó végén, akkor a 't' kezdetű ragokat hozzárakva ne legyen három 't' egymás mellett (pálott -tal - pálott -tól). Szintén sebesség.

Még van pár saját jelzésem. (Ezt szinte biztosra vettem. Gondolkodtam rajta, teszek a szövegbe útjelzõ táblákat, mint hogy "Még 200 mérföld a következõ bekezdés végéig" meg hasonlók, valamint hogy 50 méterenként ivókutat és nyilvános WC-ket állítok, mert szerencsétlen olvasók nem fogják bírni a megterhelést. Természetesen minden nagyobb útelágazásnál gyorsbüfék is lennének - Emeric SH)

Most ott tartok, hogy az átalakítgatások során az adatbázisom immár 4 részből áll: Van egy szótár, amelyben mintegy 6000 szó már mintha készen lenne. Na jó, ebből 3000 magyar földrajzi név. Csak úgy megjegyzésképpen, ez több millió szót helyettesít. Van egy segédfilé, amiben az egyes kódokhoz tartozó ragok vannak. Egy másik, amiben a képzők és egy harmadik, amiben mittudoménígyhirtelen. A proggi addig készen van, hogy:

1. Berakja a memóriába az adatbázisokat, hogy gyorsabban menjen a keresgélés.

2. Kirak egy állománykérdezőt, amelyben kiválasztható a csekkelni kívánt txt file. Ezt egyelőre félreraktam, most még csak egy szövegkérdezőt rak ki, amibe be kell írnom egy szót.

3. Elkezdi keresni a szótárban a szót:

3a. Binárisan keresgél úgy, hogy kivesz egy sort a szótárból, az első szavát összehasonlítja a keresett szóval úgy, hogy a magyar ábécé szerint egyenként összehasonlítja a betűiket. Ha nem egyezik, megy a következő pozícióra, ha egyezik, akkor nézi a következő betűt. Ha az utolsó betű is egyezik, akkor megnézi, hogy vmelyik szó folytatódik-e. Ha a talált szó a hosszabb, akkor folytatja a keresést. Ha a keresett szó a hosszabb, akkor már majdnem biztos, hogy jó nyomon jár. De csak majdnem.

3b. Mondjuk:

keresett = ablakjogot
talált = ablak

Ekkor végignézi, hogy van-e a maradékkal megegyező a képzők, vagy ragok között. Ha van (de most nincs), akkor OK, mehet a következő szó keresése. Ha nincs, akkor még megnézi, hogy az összetételek között szerepel-e. Minő véletlen, igen. Levágja, hogy 'ablakjog' és megnézi, szerepel-e az 'ot' az érvényes ragok között. Igen. Ekkor már csak a 'jog'-ra kell rákeresni, amit meg is talál és a ragja is stimmel. De ha nem találná meg az 'ot'-ot az érvényes ragok között, akkor nehezebb dolga lenne, ugyanis - per speciel - a 'jogot'-ra keresve mindig eltéved. Ilyenkor már csak a hátulról való egyenkénti betű levagdosás segít: 'jogot', 'jogo', 'jog'. (Szia olvasó. Bírod még? Már nincs olyan rettenetesen sok hátra, nyugi...-Emeric SH)

4. Ha nem találja a szót, akkor sikít.

Emberek!! A következő porblémáim maradtak még. Már azon kívül, hogy ellenőrizni kéne, hogy amit beírtam, az helyes-e, vagy hogy be kéne még írkálni vagy 20 ezer szót a cuccaival együtt. Szóval kéne egy kis programozói és alkalmazói segítség. Az pedig aljas rágalom, hogy én írtam volna azt a cikket a programozókról az Amiga Világban. Én szeretem a programozókat... savanykás, tormás szósszal.

1. Mint már fentebb írtam, néha eltéved a bináris keresés. Pl. amikor egy szó képzett, vagy ragozott alakjának hátrébb van a helye, mint a következő szó:

ablak \talan
ablakoz

Szerencsétlen mindig az 'ablakoz' után keresné az 'ablaktalan'-t. Ezért néha vagdalóznom kell fölöslegesen.

1a. Álljunk meg egy szóra: a gond az, hogy keresni kéne egy arany középutat a szótár rövidítése és a keresési sebesség növelése érdekében. A leggyorsabb akkor lenne, ha minden egyes szóalakot bevinnék egy filébe. De valahogy nincs kedvem 30-50 millió sorral szórakozni. Viszont, ha mindent lerövidítek akkor egy alapszóhoz mondjuk tartozik 20000 toldalék, rag, képző, igekötő, meg még ki tudja mi minden. Ezekből az utolsót megtalálni kicsit lassú. Jelenleg a proggy azt csinálja, hogy talál valamit és mondjuk azt hiszi, hogy a talált szó + vmelyik toldaléka megegyezik a keresett szóval, akkor szépen kibontogatja a kódokhoz tartozó toldalékokat és egyenként megnézegeti. Sajnos itt nem jó az abc sorrend, mert a ragokat nem lehet sorbarakni. Ill. lehet, csak akkor a mostani 200 kód többszörösével számolhatunk. Ha meg két találatnál is megcsinálja, akkor méghosszabb lesz a keresési idő. Pl. 'adagolóimnak' keresésekor végignézi az 'ad', az 'adat' és az 'adagol' szavak kódjait, mire megtalálja. Az szerencse, ha kihagyja az első kettőt, de nem tuti.

1b. Pillanatnyilag kb. fél mp egy összetett szó megtalálása. Egy ezer szóból álló közepes állomány végigfésülése majd 10 percig tartana (ha nincs benne hibás szó). Elfogadható ez szerintetek? (030/50) Na jó, ezt talán tudom 10-30%-kal csökkenteni, de nem biztos, mert még egy csomó dolgot be kell raknom a proggiba.

2. Kis/nagybetű csekkolás. A földrajzi helyeknél könnyű megoldani, mivel bizonyos ragtípusnál tuti, hogy kisbetű. De egy sima szó miért kezdődik nagybetűvel. Mondat kezdetén? Honnan tudom, hogy vége van a mondatnak? A rövidítések után is lehet pont. (Elmentem ezt-azt csinálni. Majd jövök vissza. Addig olvass csak tovább...-Emeric SH)

2a. Viszont tuti, hogy nem tudom megoldani annak lecsekkolását, hogy a csekkolt szó illik-e a mondatszerkezetbe. Olyan apróságok mennek, hogy a 'beakar menni'-szerűségeket észreveszi, de azt már nem, hogy 'csavart hajatok az anyába', mert a 'haj' szó ragozásában stimmel az 'atok' (fejszőrzetetek). Vagy pl. a '-e' stílus helyességét hogyan ellenőrizhetem (van-e, helyes-e, stb-e)? Hopp most látom, a 'meg tudja csinálni' és 'megtudja, hogy'... na ezt a stílust hogyan csekkoljam?

3. Egy szó beolvasása. Illetve megkülönböztetése az előző és következő szavaktól. Ott tartok, hogy egy szót szóköz, vagy enter választhat el egy másiktól. De van olyasmi, hogy szóelválasztás (szóköz + betűk + kötőjel + enter + betük + szóköz), speckó karcsik (és/vagy, alapeset(ek)ben), stb. Ezek szimpla írott szövegben ugyan nem helyesek, de most már egyre inkább elfogadottak.

4. Úgy tervezem, hogy alapesetben pure txt szövegek csekkolásáról lehet szó. De nem kizárt, hogy pl. HTML tagokra, vagy AGuide kulcsszavakra sem sikít. Sőt, észreveszi és rögtön ki is hagyja a csekkolásból. Ez a legegyszerűbb.

5. Szintén terv: azon gondolkodtam, hogy a csekkolásnál hogyan oldjam meg a kommunikációt az ellenféllel... (Gondolj bele, kedves olvasó, ezt Napi2 meg is kellett írja! Azért nem semmi teljesítmény. - Emeric SH)

5a. Szimplán bekéri a csekkelni kívánt állományt, lecsekkolja, majd kiírja, hogy szerinte mi volt hibás. Ez elég fapados.

5b. Szintén bekéri az állományt, csekkolja, ha hibát talál rákérdez, hogy kijavítsa-e. Ha igen, akkor javít.

5c. Ezekkel csak a baj van. Ezért arra gondoltam, hogy bekéretem a CEdet és ARexxszen keresztül nézegetem. Ha hibát talál akkor a kurzort arra a szóra viszi és sikít.

5d. Mivel ez lassú és a CEd sumákol néha a szóhatárokkal, ezért van még egy ötletem: a CEd szintén kell, de lemezről csekkol és csak a hibajelzéskor viszi a kurzort a hibás szóra.

6. Olyasmiről ne is álmodozzatok, hogy rögtön a Pédzssztrímbe begépeltek valamit és szépen aláhullámosítja a hibás szavakat. Ehhez már programozni kéne tudnom. Hihi.

7. Na jó, annyit megtehetek, hogy írok egy olyan proggit, amelyik összeragasztja az alapszavakat, a toldalékokkal, igekötőkkel, satöbbikkel és beírja egy filébe. Talán még sorba is rendezgetem. Ebből már azt csináltok, amit akartok. De hogy buheráltok egy többszázmegás szövegfilét? Jó hír, hogy a WW7-nek (az aláhullámosít) régebben adtam 50 ezer szót, hogy ezek szerint csekkolhat. Ne tudd meg, hogy félórákig ellenőrizgetett egy 200 szavas állományt.

8. A magyar ábécé szerinti rendezést csak félig-meddig valósítottam meg, mert abban vannak olyan trükkök, amik a bináris keresést tévútra vezetik. Pl. elvileg a szóban lévő kötőjelek mintha nem is lennének, a kis-nagybetűk néha megegyeznek, a rövid és hosszú magánhangzók sorrendje is szarozik, szóval trükközni kéne. A Sort-ot el is felejtem, mert az minden, csak nem korrekt. Normál sorrendnek vettem a betűk elhelyezkedési sorrendjét, a számok elöl, a nagybetű a megegyező kisbetűvel egyenértékű, de mögötte áll, a betűkön kívüli karcsik mintha nem is lennének a szóban, meg ilyesmik. Persze, ha vki tud egy korrekt algoritmust, amely a nyelvtantudósok kitalációja szerint tud rendezni és vissza is tud keresni, azt megköszönném.

Namost!!!!! Én nem vagyok semmi rossz megjavítója, tehát, ha vki meg akarja, vagy meg tudja (és akarja) csinálni a proggit, akkor én (abszolút nem) szívesen megcsinál(gat)om a szótárat (szótárt?), neki csak a proggit kell megírnia, meg a jatt felét idecsúsztatnia. Ja, meg van pár ötletem, amiket ide még nem írtam le, de jó lenne, ha belekerülhetne a proggyba. Az sem lenne baj, ha mondjuk nem ARexxben programozna. A BB2 már vmivel gyorsabb, de a C lenne a legjobb. Viszont van rá majd fél-egy éve, mert már 3 hónapja szórakozgatok vele és hol vagyok még a felétől... (Hm. Olvasó... Olvasó!!! Hahó!!! Hm. Nincs itt senki. Majd szólok a takarítónéninek, hogy oltsa le a villanyt... Jóéjt. - Emeric SH :)

 

 

Napi2

 

 

 

 
Copyright 2001 SpaceHawks
GLOBAL LINKS DOWNLOAD AREA MESSAGE BOARD