Tartalomelemzés. Magyar nyelvű előfeldolgozási feladat szövegelemzéshez. Készítették: Halányi Ferenc Paróczi Zsombor Porohnavec József



Hasonló dokumentumok
Varga András. Õsi magyar nyelvtan

6. AZ EREDMÉNYEK ÉRTELMEZÉSE

EÖTVÖS LORÁND TUDOMÁNYEGYETEM PEDAGÓGIAI ÉS PSZICHOLÓGIAI KAR EGÉSZSÉGFEJLESZTÉSI ÉS SPORTTUDOMÁNYI INTÉZET 1117 Budapest, Bogdánfy Ödön u.

TERC-ETALON Online Építőipari Költségvetés-készítő és Kiíró programrendszer Felhasználói kézikönyv

AZ ÖNKÖLTSÉGSTATISZTIKA NÉHÁNY PROBLÉMÁJÁRÓL

MAGYAR NYELV 5 8. Javasolt óraszámbeosztás

Az Állami Autópálya Kezelő Zrt. Általános Szerződési Feltételei e-matricát értékesítő viszonteladók részére. 4. számú melléklet

Készítette: Citynform Informatikai Zrt.

Következõ: Lineáris rendszerek jellemzõi és vizsgálatuk. Jelfeldolgozás. Lineáris rendszerek jellemzõi és vizsgálatuk

Kerettantervi ajánlás a helyi tanterv készítéséhez az EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 2. sz. melléklet

Belső Nóra: Utak egymáshoz (részlet) Beszélgessünk!

Mit mondhat nekünk az, ami látszólag semmit nem mond?

15. BESZÉD ÉS GONDOLKODÁS

A szótárról. 1. Mi ez?

Országos kompetencia mérés - fenntartói tájékoztató

ProCOM GPRS ADAPTER TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ. v és újabb modul verziókhoz Dokumentumverzió:

Közzététel és Adatszolgáltatás IT tudatosság projekt

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

gyógypedagógus, SZT Bárczi Gusztáv Egységes Gyógypedagógiai Módszertani Intézmény 2

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

ECP. Site Administration System. Felhasználói kézikönyv. v (1. kiadás a és újabb verziójú ECP SAS rendszerekhez)

Szerzőinknek A folyóiratunkba szánt kéziratok tartalmi és formai követelményei

EGÉSZSÉGÜGYI DÖNTÉS ELŐKÉSZÍTŐ

A KOMPETENCIA ALAPÚ OKTATÁS HÁTTERE

GÁZ-KORLÁT Készülékcsalád

Tehetséggondozás a munkahelyen

A DBM függvények használata

Felhasználói kézikönyv

GSM-LINE ADAPTER PRO 5 GSM 900MHz / 1800MHz / 850MHz / 1900MHz HASZNÁLATI ÚTMUTATÓ

Az életpálya-tanácsadási on-line és off-line szolgáltatások hatékonyság-mérési módszertana a Nemzeti Pályaorientációs Portálon keresztül

Annak ellenére, hogy a számítógépes szövegszerkesztés az utóbbi 10 évben általánossá vált, az irodai papírfelhasználás

Mintapéldák és gyakorló feladatok

Járási népesség-előreszámítás 2051-ig

9. Entitás modulok. Nagy Gusztáv: Drupal 7 alapismeretek Fejlesztői verzió: október 6.

noannb Számítógépek automatizált tervezése

Jogosultságkezelés felhasználói leírás

Ismeretlen kifejezések és a szófaji egyértelm sítés

Az anyagdefiníciók szerepe és használata az Architectural Desktop programban

SEGÉDLET ELEKTRONIKUS FELÜLET HASZNÁLATÁHOZ. EMVA ÚMVP I. és II. intézkedéscsoportjához kapcsolódó képzések

Tarnaméra Község Önkormányzata Képviselő-testületének március 27. napján megtartott képviselő-testületi üléséről

STATISZTIKAI TÜKÖR 2014/126. A népesedési folyamatok társadalmi különbségei december 15.

Informatikai tevékenység 2234 Maglód, Széchenyi u Mérnöki, tanácsadói tevékenység Iroda: Mobil: Telefon:

On-line értékelési módszerek II. Lengyelné Molnár Tünde

Miért tanulod a nyelvtant? Nyelvtani kiskalauz

Objektum Orientált Szoftverfejlesztés (jegyzet)

Töltőfunkció Kezelési Utasítás

System i. 6. változat 1. kiadás

BAUSFT. Pécsvárad Kft Pécsvárad, Pécsi út 49. Tel/Fax: 72/ ISO-bau. Szigetelés kiválasztó verzió.

Nyelvészkedés és néhány szó egy különleges tündérfeltételről. Nyelvészkedés

Szeminárium-Rekurziók

ÓRAREND SZERKESZTÉS. Felhasználói dokumentáció verzió 2.1. Budapest, 2009.

Adataink biztonságos tárolása és mentése

A Budapest Főváros Kormányhivatala Fogyasztóvédelmi Felügyelőségének tanácsai a karácsonyi vásárlásokhoz

részvétel a kulturális, társadalmi és/vagy szakmai célokat szolgáló közösségekben és hálózatokban. Az informatika tantárgy fejlesztési feladatait a

Horgász Napló V Bemutató Verzió. Felhasználói Kézikönyv. Intelligens Fogási Napló Program

Mobilizált kémia. Azaz: lehet-e az okostelefon a kémiatanítás hatékony eszköze?

!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7

A TWAIN adatforrás használata

SAJTÓSZABADSÁG-INDEX 2012 AZ ÚJSÁGÍRÓK, A MÉDIAVÁLLALKOZÁSOK ÉS A KÖZÖNSÉG VÉLEMÉNYE A SAJTÓSZABADSÁG HELYZETÉRŐL. Vezetői összefoglaló

Könnyedén. és természetesen OPTEAMUS

Csoport neve: Kisiskolások Feladat sorszáma: 2. Feladat címe: Oktatási intézmény honlapja, oktatási naplóval. E-Project.

Országos kompetenciamérés. Országos jelentés

Vállalkozás alapítás és vállalkozóvá válás kutatás zárójelentés

Harmadik országbeli kutatók Magyarországon

2008. április, II. évfolyam 3. szám INTERJÚ HR CSEMEGÉK. belülrôl

A SZÁMÍTÓGÉPPEL SEGÍTETT VIZSGÁZTATÁS EGY SAJÁT FEJLESZTÉSŰ ALKALMAZÁSA

Mérlegelés Kártyaolvasóval

PAS808 / PAS808M / PAS816 / PAS832. Behatolás Jelző Központok

Bói Anna. Konfliktus? K. könyvecskék sorozat 1.

A Nemzeti Névtér megvalósításának néhány kérdése

Kompozit elemek tervezése az Amber One elektromos sportautó számára

Az értelem elemei. Az értelem elemei. Tartalom. Megjegyzés

A hátrányos helyzetű gyermekek tehetséggondozásának rendszerszemléletű megközelítése

INFORMATIKA. 6 évfolyamos osztály

A felmérési egység kódja:

projekt címe: projektgazda: készítette: dátum:

Szövegszerkesztés Verzió: 0.051

Adminisztrátori kézikönyv (Ver: )

A Budapesti Békéltető Testület

1. Járóbeteg előjegyzés

Európai Képesítési Keretrendszer. magyar képesítési keretrendszer

Bocz János Jéghegyek. Tévhitek, avagy a magyar nonprofit szektor mélyrétegei

a felszíni víz minőségvédelmével kapcsolatos alap- és éves adatszolgáltatáshoz a 27/2005.(XII.6.)KvVM rendelet alapján

I. EXPOZÍCIÓS PROGRAMOK FÉLAUTOMATA PROGRAMOK...

Használati Utasítás A KEZELŐEGYSÉG JELZÉSEINEK ÉRTELMEZÉSE (Azonosító modul billentyűzettel és szegmensekkel)

1.1 DEVIZÁS SZÁMLA KIEGYENLÍTÉSÉHEZ KAPCSOLÓDÓ AUTOMATIKUS ÁRFOLYAM KÜLÖNBÖZET KÖNYVELÉS

FELHASZNÁLÓI KÉZIKÖNYV ÜGYFELEK SZÁMÁRA

Cache, Cache és harmadszor is Cache

15. Programok fordítása és végrehajtása

Általános szerződési feltételek

Térinformatikai alkalmazások 4.

Az erdélyi magyar kulturális intézményrendszerrõl

SEGÉDLET ELEKTRONIKUS FELÜLET HASZNÁLATÁHOZ

BARANGOLÁS AZ E-KÖNYVEK BIRODALMÁBAN Milyen legyen az elektonikus könyv?

Egyetemi Számítóközpont

Operációs Rendszerek példatár. Utolsó frissítés: február 10.

ESET LICENSE ADMINISTRATOR

Diplomaterv Portál. Elektronikus szakdolgozat és diplomaterv nyilvántartó és archiváló rendszer. Felhasználói útmutató v11

Az enyhe értelmi fogyatékos fővárosi tanulók 2009/2010. tanévi kompetenciaalapú matematika- és szövegértés-mérés eredményeinek elemzése

i4x50 sorozatú szkennerek

Átírás:

Tartalomelemzés Magyar nyelvű előfeldolgozási feladat szövegelemzéshez Készítették: Fodor Bálint Halányi Ferenc Paróczi Zsombor Porohnavec József S02ZLO RQNG93 WRVU7O T715ZR

TARTALOMJEGYZÉK Feladat ismertetése... 3 Részfeladatokra bontás... 3 Hunlex keretrendszer... 4 Telepítése, a tesztkörnyezet kialakítása... 5 Lemmatizálás és morfológiai elemzés kapcsolata... 7 Automatizált ellenőrzés... 9 Bemenet előkészítése... 9 Kimenet értelmezése... 9 A szövegek elemzése... 10 Szépirodalmi szövegek... 11 A felbontások helyességének ellenőrzése... 11 Tulajdonnevek rossz értelmezése... 12 Prepozíciók figyelmen kívül hagyása... 13 Összetett szavak fel nem bontása... 14 Értelmetlen felbontások... 15 Egyfajta helyességi verifikáció... 15 A rendszer hatékonysága, a felbontások értékelése... 16 A rendszer szófajfelismerés szempontjából... 17 Stopszavak... 18 Köznyelvi szövegek... 19 Adott szótőhöz tartozó szavak felmérése... 20 Csonkoló szótövezés ábrázolása... 20 Hunlex eredmények ábrázolása... 21 Nyelvtudományi helyesség... 24 Eredmények értékelése... 24 Értékelés és tapasztalatok... 26 Függelék... 27 Bemeneti elemző... 27 Kimeneti elemző... 28 Külön szeretnénk köszönetet mondani Sárai Adrienn ELTE BTK Magyar-nyelv szakos hallgatónak fáradhatatlan segítségéért, amivel a csapatot segítette a magyar nyelvtan bonyolult szabályrendszerében való eligazodásban. - 2 -

FELADAT ISMERTETÉSE A félévi feladat során a Hunlex keretrendszerrel foglalkozunk behatóbban. Célunk megismerni működését és rámutatni erősségeire, gyengeségeire. Mindezt magyar nyelvű tesztszövegek gépi és emberi elemzésének összevetésével tesszük. A kérdés, amire keressük a választ, hogy mennyire ad pontos eredményt a Hunlex, mennyire megbízható, mennyiben marad el az emberi értelmezéstől? RÉSZFELADATOKRA BONTÁS Munkánk során egy választott lexikon adatbázis és egy nyelvtani leíró segítségével létrehozzuk a nyelvspecifikus szótár és affixum állományokat, majd vizsgáljuk a morfológiai elemző pontosságát, megfelelően nagy teszthalmazra. Három nagy terülten szeretnénk megvizsgálni a rendszer nyújtotta lehetőségeket: - Automatizált ellenőrzés Adatbázis hiányosságainak feltárása Használt <-> Szépirodalmi nyelv - Adott szótőhöz tartozó szavak felmérése Gráf struktúrában ábrázolás Megosztottság elemzése - Nyelvtudományi helyesség Egyéni tesztelés Szabályok kivételrendszere Az egyes részek behatóbb ismertetése később következik. A csapat megegyezett, hogy a feladatokat nem osztja szét, közösen dolgozunk majd mindegyik részfeladaton. - 3 -

HUNLEX KERETRENDSZER A keretrendszer a 2003-ban indult Szószablya projekt 1 keretén belül jött létre, ennek célja a Magyar Webkorpusz 2 megalkotása volt. A keretrendszer szabadon terjeszthető (LGPL licenc), komponensei: - Hunpos rejtett Markov modell alapú part-of-speech tagger - Hunmorph morfológiai elemző - Hunlex nyelvspecifikus erőforrásállományok létrehozására és szerkesztésére alkalmas eszköz - Hunpars szintaktikai elemző magyar nyelvre A keretrendszer felépítése nyelvspecifikus és nyelvfüggetlen elemeket tartalmaz. A Hunlex komponens segítségével olyan nyelvfüggő adatbázisok fejleszthetők, melyeket a Hunmorph valós időben működő komponens értelmezni tud. A Hunlex bemeneteként egy lexikont és egy a nyelvtan szabályait formálisan leíró állományt igényel (pl.: morphdb). Az utóbb említett komponens (helyes) offline működése két állományt hoz létre: szótár és affixum állományokat. Ezek tehát olyan szisztematikusan szervezett adatok, melyeket a morfológiai elemző (Hunmorph) a feldolgozás alatt felhasznál. A Hunpos komponens a rejtett Markov modell alkalmazásával képes kontextusban lévő szavak szófaját felismerni, mely a szemantikai értelmezéshez is segítséget nyújthat. 1 http://mokk.bme.hu/projektek/szoszablya 2 http://mokk.bme.hu/resources/webcorpus - 4 -

A Hunpars egy szintaktikai elemző magyar nyelvre. Bemenetként egy szövegfájlt kap mondatokkal, kimenetként pedig megadja a mondatok szintaktikai fáját egy egyszerű zárójelezéses jelölésben és GrahpViz dot nyelvű fájlokban. TELEPÍTÉSE, A TESZTKÖRNYEZET KIALAKÍTÁSA A Hunmorph rendszer elemzéséhez először a rendszer egy működő példányát kellett életre hívni. Az alkalmazás legfrissebb forrásának beszerzése legegyszerűbb módon egy CVS klienssel történhet. A tesztkörnyezetet adó Ubuntu 7.10 Linux operációs rendszeren a morfológiai elemző letöltése a következő paranccsal elvégezhető: cvs -d :pserver:anonymous:anonymous@cvs.mokk.bme.hu:/local/cvs co ocamorph Az elemző által értelmezhető nyelvi adatbázist szótárak alapján legyártó Hunlex használata nem szükséges, tekintettel arra, hogy a morphdb.hu magyar nyelvi adatbázis megtalálható a következő címen: http://ftp.mokk.bme.hu/tool/hunmorph/resources/morphdb.hu/m orphdb-hu-20060525.tgz A letöltést követően a forrás lefordításához a fent említett környezetben az alábbi csomagok feltelepítésére volt szükség: ocaml ocaml-findlib texinfo texlive Az utóbbi két csomagot az teszi indokolttá, hogy a fordítás során dokumentáció is keletkezik Tex forrásból. Megjegyzendő továbbá, hogy a make paranccsal történő fordításkor a texinfo csomagra makeinfo néven hivatkozik fordítást megkönnyítő Makefile. Az elemző indításához szükséges megadni a nyelvi adatbázist, tehát a szótár és az affixum állományokat, valamint az elemzendő szöveget. Opcionálisan formázható a - 5 -

program kimenetének tagolása, a ki és bemenetek átirányítása. Az opciók listázása a szabványos --help paraméterrel hívható elő. A paraméterezés kialakítása illeszkedik a környezet alatti szabványos programoknál megszokottakhoz. A munka megkönnyítéséhez, valamint demonstrációs célokra az elemző szolgáltatásának igénybe vételéhez Webes interfészt is készítettünk, hosszabb szövegek elemzését viszont kézzel, közvetlenül parancssorból végeztük. A Webes interfész egy Drupal alapú oldal, melynek főoldalán egy űrlap elküldésével az elemezni kívánt szó felbontását kapjuk vissza. Ennek szemléltetésére szolgálnak az alábbi ábrák. - 6 -

A program az elindítását követően a bemeneten kapott adatbázisokat a memóriába tölti, mely - tekintettel az adatbázisok 70Mbyte-ot meghaladó méretére lassú folyamat. A program egy-egy szó elemzésért való indítás, tehát semmiképp nem hatékony, a Webes interfészről indított ilyen jellegű megközelítés nem célravezető. A nehézséget megoldaná, ha az alkalmazás két komponense futna a környezetben egy állandóan memóriába tartott, az adatbázisokat kezelő szerver és az alkalmi lekérdezéseket végző kliens. Sajnos sem az adatbázisok részleges betöltését, sem az imént vázolt futtatást nem támogatja a rendszer. Továbbá mind az adatbázisok, mind a program bemenetén várt szövegek kódolása ISO-8859-2 típusú, ami azért különös, mert a Hunmorph elviekben egy nyelvi adatbázistól függő, önmagában nyelvfüggetlen morfológiai elemző. A nehézségek áthidalására csapatunk nevesített csővezetékeket (named pipeline) használt. A morfológiai elemző a háttérben fut - mintegy szerverként -, bemenete a létrehozott csővezetékre van átirányítva, kimenete pedig egy másikra. A Webről elküldött szót egy szkriptállomány átkódolja, majd lenyomja a bemenetként szolgáló csőbe, ezután várakozik. A háttérben futó Hunmorph elemez, ezután a kimenetre ír, ahonnan a szkript a várakozás végeztével beolvassa és ezt követően visszaküldi az oldalnak az eredményt. A megoldás hátránya, hogy a szkript aszinkron hívással fordul az elemzőhöz, és előfordulhat olyan eset, ahol a várakozás túl rövid, az elemző kimenetén még nem jelent meg semmi, de a szkript már lezárult. Továbbá ha több felhasználó igényli egyszerre a szolgáltatást, akkor inkonzisztencia léphet fel: ha két felhasználó kis eltéréssel igényel elemzést, és mindkét elemzés gyorsan hajtódik végre, akkor az első felhasználó a másik kérésének eredményét is visszakapja. Erre az lenne a megoldás, ha minden felhasználónak saját csővezetéke lenne, ekkor viszont minden csővezetékhez egy elemző példányra is szükség volna, melyek hosszadalmas betöltési ideje miatt a lassúság problémája továbbra is fenn áll. LEMMATIZÁLÁS ÉS MORFOLÓGIAI ELEMZÉS KAPCSOLATA A nyelvtudományokban és a számítógépes szövegfeldolgozásban a szótövek megkeresése két, egymáshoz kapcsoló mégis különböző feladatkört alkot. A - 7 -

nyelvészetben a szó lemmája (morfémája) alatt azt a szóalakot értik, amelyhez semmiféle toldalék nem járul: alaki és jelentésbeli (lexikológiai) egység, a szó szótári alakja. A nyelvészetben a szótövezés mindig értelmes, jól meghatározott szóalakot ad. A számítógépes szövegfeldolgozás területén elegendő a szavak csonkolt alakját megkapni egy lemmatizálási feladatban, ekkor a jelentésmódosító ragok, toldalékok, prefixek és suffixek eltávolításra kerülnek. Sok esetben a szótövezésből származó szó nem értelmes, nem szótári alak. Létezik erre ellenpélda is, ahogy azt a következőkben láthatjuk. Például a havat szó szótöve nyelvészeti szempontból a hav szó és nem a hó szó. Számítógépes feldolgozás során, főleg szövegbányászati alkalmazásokban, a cél a közös tőre hozás, így a nyelvészeti megoldás nem megfelelő. A szótövezés folyamán szabályok alkalmazása történik a bemeneti szavakra. A szabályok feltételkövetkezmény formájában, azaz ha-akkor szabályok listájaként vannak megadva. Előfordulhat végrehajtási sorrendbeli különbözőség az egyes szabályok végrehajtásánál, amit figyelembe kell venni, ugyanis bizonyos szabályok bemenetei építhetnek korábbi szabályok kimeneteire, amennyiben adott prefixeket vagy szuffixeket több lépésben lehet csak eltávolítani. Nem csak törlés, hanem természetesen karakter-karakterfüzér csere is elképzelhető a szótövezés során. - 8 -

AUTOMATIZÁLT ELLENŐRZÉS Automatizált ellenőrzéshez nagymennyiségű szöveget használtunk fel, mindezt azért, hogy a rendszer esetleges hibáit a hibajelzések során szemügyre vehessük. Két szövegtípussal foglalkoztunk, a szépirodalmi valamint a hétköznapi nyelvvel. BEMENET ELŐKÉSZÍTÉSE Az általunk tesztelt hunmorph rendszer nem végez teljes szövegfeldolgozást, a tokenizálást nekünk kellett elvégeznünk. A rendszer bemenetként olyan fájlt kér, amiben a szavak sortöréssel vannak elválasztva. Az előkészítéshez az irodalmi és hétköznapi szövegeket is előfeldolgoznunk kellett. Egy php nyelvű parsert készítettünk, ami a következő lépéseket végzi: az eredeti formázásban a sortörést és a bekezdéseket megszűnteti bizonyos karaktereket kiszűrjük a szövegből:.,?! : ( ) ; [ ] > < / \ % ezek után szóközök mentén felbontjuk a szöveget a csak számból álló tokeneket eldobjuk (pl. 1998) a csak kötőjel tokenek szűrése (tehát a volt-e összetételt meghagyja) a szavakat kisbetűssé alakítjuk A kódot mellékeljük a dokumentumhoz, megfelelően kommentezve. KIMENET ÉRTELMEZÉSE A hunmorph rendszer futása után a következő kimenetet adja: gyűltünk; {gyűl} gyűl ik {tünk} /VERB<PAST><PERS<1>><PLUR> össze; {össze} össze /PREV a; {a} a /ART hegy; {hegy} hegy /NOUN - 9 -

A formátum értelmezéséhez a hunmorph rendszer dokumentációja segített. Soronként egy szóhoz tartozó eredményt láthatjuk, a gyűlünk szó segítségével magyarázom el a formát. A sor első rész az alapszót tartalmazza (gyűlünk), utána egy pontosvessző következik, majd a felbontásban elérhető legkisebb egység következik (gyűl), majd ige esetében az alapszó (gyűlik). A következő részek az erre ráépülő képzők, jelek, ragok felbontását tartalmazza, az előzővel megegyező formában (tünk). Ha a hozzá csatolt tagokhoz megállapítható a szófaja, akkor kiírja azt is. Ha biztosan megállapítható a szófaj, akkor /szófaj alakban jelzi, ha bizonytalan, akkor?szófaj alakban. Nem sikerült egyértelműen megállapítanunk, hogy milyen szabály alapján ad?-et. A felbontás végén az alapszó szófaja következik, bizonyos esetekben kiegészítő információkkal igék esetében, ahogy a mintán látható a múlt idő, egyes-többesszám, stb. Nem találtuk ezt a komplex formulát effektívnek a további feldolgozáshoz, ezért ezt is egy php nyelvű parserrel átalakítottuk. Munkák fő fókuszában a szótövezés áll, ezért az átalakított formát ehhez igazítottuk gyűltünk :: gyűl+tünk :: VER. A végleges kimeneti formátum igen egyszerű. Az alapszót két kettőspont követi, majd a szó felbontott, tagonként plusz jellel elválasztott verziója következik, majd végül, ismételt kettőspontok után, az alapszó szófaja következik. Ezt a formát könnyebben fel tudjuk használni méréseinkhez, szófaji kimutatásokat is szeretnénk végezni, ezzel egyrészt a szövegekben a szófaji eloszlást, másrészt a rendszer a fel nem ismert szófajokat külön jelöli (unknown) jelzővel. A SZÖVEGEK ELEMZÉSE Ahogyan azt az előbb áttekintettük az elemzéshez először szövegeket kerestünk (korpuszt készítettünk), majd ezeket a rendszer bemenetére batch feldolgozásban beadtuk. Esetünkben a klasszikus előfeldolgozási lépések közül kihagytuk a strukturális szegmentálást és a mondatokra bontást, mert a feladat szempontjából nem fontosak. - 10 -

Először megtörtént a tokenizálás, azaz szavakra bontottuk a szövegeket, kiszűrtük belőlük az írásjeleket, a számokat és a felesleges karaktereket. Ezek után kiszűrtük a stopszavakat és megnéztük, hogy a szöveg hány százalékát alkotják (lásd később). Végső lépésként kaptunk egy listát, amely tartalmazza az eredeti szavakat, a rendszer által generált szótövezett formájukat és a rendszer által vélt szófajukat, a fentebb ismertetett formában. SZÉPIRODALMI SZÖVEGEK A szépirodalmi, magyar nyelvű szövegek nagymennyiségű beszerzése nem okozott problémát, az ebookz.hu oldal gyűjteményét használtuk fel. Ezen az oldalon több tucat tématerületről találhatóak ingyenesen elérhető e-bookok, nagyrészt pdf formátumban, de a szépirodalmi területen több txt formátumú könyv is található. Választásunk a következő művekre esett: A. C. Clarke: A Mars titka Arany János: Toldi Örkény István: Ákos és Zsolt Örkény István: Családunk szeme fénye Örkény István: Európa legjobb síterepe Örkény István: A fogyasztói társadalom lélektani anatómiája Örkény István: Kelj föl és járj! Örkény István: Kenyér Örkény István: Meddig él egy fa? Örkény István: Az ember melegségre vágyik Örkény István: A tíz körmünkkel Örkény István: A Vár mindenkié A FELBONTÁSOK HELYESSÉGÉNEK ELLENŐRZÉSE A kimenet utólagos (szúrópróba szerű) ellenőrzése során volt több tipikus hiba, amelyek igen sokszor előfordultak az eredményben. - 11 -

TULAJDONNEVEK ROSSZ ÉRTELMEZÉSE Igen sok Örkény István mű szerepel a korpuszunkban és a rendszer a szerző nevét következetesen felbontja (helytelenül), ahelyett, hogy egyben hagyná. örkény :: ör+kény :: NOUN istván :: istv+án :: NOUN De a többi tulajdonnévvel sem boldogul: doktor :: doktor :: NOUN hódosi :: hódos+i :: ADJ károly :: kár+oly :: ADJ ilosvai :: ilosv+ai :: NOUN Szegény Toldi Miklós... toldi :: told+i :: ADJ miklósnak :: m+i+klós+nak :: NOUN lajos :: laj+os :: ADJ királynál :: király+nál :: NOUN toldi :: told+i :: ADJ györgyre :: györgy+re :: NOUN Egyedül a György nevet sikerült egyben hagynia, de talán azért, mert nem is lehetne sokkal tovább bontani, illetve eléggé speciális módon "gy" betűre végződik. Sejtésünk, hogy a szótárból kimaradtak a magyar tulajdonnevek (még a leggyakoribbak is) és a rendszer ezért próbálja felbontani az ismeretlen szavakat. Ezt alátámasztja, hogy az "i", "os" végződéseket melléknév képzőnek, az eredeti tulajdonneveket pedig mellékneveknek hiszi a rendszer. Ugyanígy az "án" végződést egy helyhatározó ragnak véli a rendszer. - 12 -

Ha a magyar tulajdonnevekkel sem boldogul a rendszer, akkor nem várhatjuk el, hogy a külföldiekkel megbirkózzon és ez nincs is így. A Mars titkának főhősét valamiért kétféleképpen bontotta fel a rendszer, attól függően, hogy hogyan van toldalékolva: gibson :: gibs+on :: NOUN gibsont :: gibson+t :: NOUN gibsonnak :: gibson+nak :: NOUN A tulajdonnevek anomáliájának feloldását abban látjuk, ha a szótárba bekerülnének legalább a magyar keresztnevek, gyakoribb vezetéknevek és más gyakran használt helység- és tulajdonnevek. PREPOZÍCIÓK FIGYELMEN KÍVÜL HAGYÁSA Egy szótövezőnél, főleg, ha a kifejezéseket később elgépelés javítására, vagy hasonló szavak ajánlására is használjuk elvárható volna, hogy az elöljárószavakat leválassza a szótőről. Ez szinte alig történik meg a Hunmorph esetében. A rendszer vagy egyáltalán nem foglalkozik vele: felerősödő :: felerősöd+ő :: ADJ feljegyezte :: feljegyez+te :: VERB felbomlott :: felboml+ott :: VERB felébresztette :: felébreszt+ette :: VERB összerakta :: összerak+ta :: VERB összegyűjtött :: összegyűjt+ött :: VERB összerombolt :: összerombol+t :: VERB vagy rosszul bontja fel: ledolgozza :: l+e+dolg+o+zza :: VERB - 13 -

A szófajok megoszlási statisztikájában a PREP szófajú szavak (azaz az elöljárószavak) 0%-al szerepelnek, tehát a rendszer valószínűleg meg sem kísérli ezeket leválasztani és külön egységként kezelni. Megjegyezzük, hogy névutók esetében a rendszer sokkal jobb szófajú felismerést produkál, valószínűleg azért, mert ezek eleve különállnak a szótőtől. ÖSSZETETT SZAVAK FEL NEM BONTÁSA A rendszer teljesen következetlen módon hol felbontja az összetett szavakat, hol nem. Mintát a kimenetek értelmezése során nem fedeztünk fel a viselkedésben, ezért magyarázatot sem tudunk adni, hogy miért ad-hoc módon veszi egybe vagy bontja szét a rendszer az összetett szavakat. A rendszer itt szétbontja: burokvizsgáló :: burok+vizsgáló :: ADJ légzoberendezésemet :: légzo+berendezés+emet :: NOUN reklámszövegek :: reklám+szöveg+ek :: NOUN lesiklóbajnokságnak :: lesikló+bajnokság+nak :: NOUN Itt pedig nem: gyufásskatulya :: gyufásskatuly+a :: NOUN légzsilipen :: légzsilip+en :: NOUN emlékezotehetségem :: emlékezotehetség+em :: NOUN lelkiismeretem :: lelkiismeret+em :: NOUN Persze itt is van, amikor a felbontás végképp nem követ semmilyen logikát: jelzokészülék :: jelzoké+szül+ék :: NOUN - 14 -

ÉRTELMETLEN FELBONTÁSOK A teljesség igénye nélkül találtunk pár felbontást, aminek semmi értelme és nem is sejtjük, hogy a rendszer milyen szabályok alapján bontja fel szinte betűnként a szavakat. filozófia :: f+i+loz+ó+f+ia :: NOUN volt :: v+ol+t :: VERB kilót :: k+i+l+ót :: NOUN EGYFAJTA HELYESSÉGI VERIFIKÁCIÓ Ha összevetjük az eredeti szöveget a szótövezett formával, akkor megnézhetjük, hogy mennyire értelmes, érthető a szótövezett szöveg önmagában, ez is lehet egyfajta szubjektív mértéke a szótövezés helyességének. A szótövező minél több és durvább hibát vét, annál érthetetlenebb lesz a szöveg. Íme a Toldiból egy részlet szemléltetésnek: Ég a napmelegtol a kopár szík sarja, Tikkadt szöcskenyájak legelésznek rajta; Ami csak szótövekből összeállítva a következőképen néz ki: ég a napmeleg a kopár szí sar tikkad szöcsk nyáj legel rajta - 15 -

Az összes szótövezett alakot nem tudjuk felsorolni, de egy szemléletes ábrán megmutatjuk, hogy a Toldiban melyek voltak leggyakoribb szótövek: A RENDSZER HATÉKONYSÁGA, A FELBONTÁSOK ÉRTÉKELÉSE Mindezen gyengeségek ellenére a rendszer a szépirodalmi szövegek szavainak nagy többségével megbirkózott. Ám látszik, hogy a hibák nem egy-egy nagyon kivételes esetben jelentkeznek, hanem a rendszer igen sok szót érintő halmazoknál fut bele ugyanabba a hibába. A felbontás kimenetén valóban látszik a mögöttes elv, miszerint a rendszer nagyban támaszkodik egy meglévő szótári adatbázisra és emellett szabályalapú módszerekkel vágja le a toldalékokat. Ez nagyon jól kiütközik a tulajdonneveknél, ahol a szótárban nem szereplő szavakat a szabályok alapján elkezdi tagolni, bár egyáltalán nem kellene, és fals eredményre jut. Meglátásunk szerint a szófaji elemző is hibázik ilyenkor, mert inkább támaszkodik a levágott rag, képző vagy jel legvalószínűbb szófaji előfordulására, mint a rejtett markovi-modellre, akármi is legyen az. - 16 -

A RENDSZER SZÓFAJFELISMERÉS SZEMPONTJÁBÓL Bár az általunk választott korpusz egyáltalán nem reprezentatív, ám a nagy számok törvénye alapján legalább hasonló szófaji megoszlással kéne rendelkeznie, mint az általános magyar nyelvnek, ez pedig közel sincs így. 1. ábra a magyar szavak szófaji megoszlása 3 A mi korpuszunk kimenetéről összegyűjtött szófaji megoszlás a következő: Szófaj Százalék unknown 0.03% ADJ 6.61% ADV 15.77% ART 8.55% CONJ 5.99% DET 4.09% NOUN 33.07% NUM 0.84% ONO 0.01% POSTP 1.36% PREP 0% PREV 2.05% PUNCT 0% UTT 3.4% VERB 18.22% unknown ADJ ADV ART CONJ DET NOUN NUM ONO POSTP PREP PREV PUNCT UTT VERB 3 forrás: Magyar Nyelvőr 2001. 3.sz. - Gósy Mária Kovács Magdolna: A mentális lexikon a szóasszociációk tükrében - 17 -

Látszik, hogy a szófaji megoszlás igencsak más, mint az emberi szófajbesorolás alapján. Míg (nem csak) a magyar nyelvben a szavak 70%-át a főnevek teszik ki, addig a felismerés eredményében ez alig több mint 30%. A rendszer hajlamos a szavakat "igésíteni", azaz sokkal több igét ismer fel, mint azt a statisztikák szerint kéne, ez a mi méréseink szerint majdnem duplája a szükségesnek. A rendszer szófajfelismerő funkciója tehát nem éppen a legpontosabb. A kimenet elemzése során azt vettük észre az "igésítés" főleg ott fordul elő, ahol a szótőre hozásnál is problémája akad a feldolgozónak. Ez azzal a korábbi megállapításunkkal hozható összefüggésbe, miszerint a szófajfelismerő a szavak végén levő ragokat nagyban használja a felismeréshez. STOPSZAVAK A stopszószűrésnél a következőképp jártunk el: Mivel csak körülbelüli elképzelésünk volt a magyar nyelvű alkalmazások szokásos stopszavairól, ezért először készítettünk egy statisztikát, hogy melyek a leggyakrabban előforduló szavak, és ezeket vettük fel a későbbi stopszólistára. A szavak megoszlása a következő (az összes - 71177 db - token számához képest, százalékban): Szó Százalék a 7.52% az 2.71% és 2.19% hogy 2.05% nem 1.69% egy 1.22% de 0.98% is 0.88% ez 0.72% mond 0.68% még 0.57% ha 0.55% már 0.54% meg 0.53% s 0.52% mint 0.51% le 0.51% csak 0.44% tud 0.43% el 0.42% a az és hogy nem egy de is ez mond még ha már meg s le mint csak tud 0,00% 2,00% 4,00% 6,00% 8,00% - 18 -

Érdekesség, hogy a leghosszabb mű (A. C. Clarke: A Mars titka) főszereplőjének rosszul szótövezett neve is szerepelt a listában, ezt természetesen kiszedtük a stopszavak közül. (gibs - 0.92%) KÖZNYELVI SZÖVEGEK A teszteket köznyelvi szövegekre is lefuttattuk, ehhez rengeteg email szövegét használtuk fel. A szövegek sajátossága, hogy tele vannak rövidítésekkel (szvsz, omfg, brb), az interneten meghonosodott mémekkel (lolcat, blogger), helyesírási hibákkal és mindezt nehezítik az angol, vagy angolból átvett kifejezések, illetve ezek lineáris kombinációi. Összességében elmondható, hogy a szótövező a helyesen leírt, általánosan használt szavakkal ugyanolyan mértékben boldogult el, mint szépirodalmi szöveg esetén, de mivel az ilyen szóból sokkal kevesebb volt a köznyelvi korpuszban, mint a szépirodalmiban, ezért ez a helyes szótövezési és szófaj-felismerési statisztikákat is jelentősen rontotta. A speciális szavak esetében a szótövező próbálkozott, több-kevesebb sikerrel. Például a "blog" szónál egészen eredményesen: blog; {blog} blog?noun blogger; {blogger} blogger?noun blogol; {blog} {ol} blog?noun [ACT2] /VERB blogolás; {blogol} {ás} blogola?noun [ATTRIB]/ADJ blogolni; {blog} {ol} blog?noun [ACT2] {ni} /VERB<INF> A sok kérdőjelből látszik, hogy a rendszer bizonytalan az esetek többségében, és vannak szavak, amelyekkel nem tud mit kezdeni. - 19 -

ADOTT SZÓTŐHÖZ TARTOZÓ SZAVAK FELMÉRÉSE Kezdeti teszteléseik során valahogy mindenképen vizualizálni akartuk a közös szótőre hozott szavakat valamint ehhez kapcsolódóan valahogy a nyelv szerkezetét. Összegyűjtöttünk egy szószedet egy gép által különösen nehezen szótövezhető szócsoportból. A választásunk az "autó"/"auto" kezdető szavakra esett, mert ebben az esetben igen sok a szóösszetétel és sokszor áll fent azonos alakúság a szótövek esetében. A szavak mellé megadtuk a nyelvészeti értelemben vett szótövüket is. CSONKOLÓ SZÓTÖVEZÉS ÁBRÁZOLÁSA Első tesztesetben az egyszerű csonkolás alapú, igencsak barbár szótövezési algoritmust vizsgáltuk meg, ez az algoritmus a szótövezés művelete alatt az adott szó utolsó betűjének elhagyását érti. A 4 vagy annál kevesebb karakterből álló szavakat szótöveként saját magukat értjük. 2. ábra Csonkoló szótövezés eredménye - 20 -

Minden szóra lefuttattuk az algoritmust, az így keletkezett szótöveket is alávetettük a szótövezésnek. Egy jól működő szótövezési algoritmus egy szótőnek tekinthető szóhoz nem hoz létre újabb, kisebb szótövet. A szószedetből egy szemléletes gráfot készítettünk, amely tartalmazza az eredeti szavakat és szótöveiket és jól mutatja melyik szót milyen alakra hoztuk, illetve mely szavaknak lett közös a szótöve. Kékkel jelöltük az általunk megadott szavakat, feketével az algoritmus futása során keletkezetteket. Ahogy az 1. ábrán látható, két gócpont alakult ki az autó valamint auto szavak körül, ez várható volt az algoritmus egyszerűségéből adódóan. Ha viszont az ábra egy bizonyos részének nagyítását nézzük (3. ábra) akkor láthatjuk, hogy valamilyen szinten ez az egyszerű algoritmus is nevezhető 3. ábra szótövezőnek, hiszen az autózni, autózgat és autózik szavakat, a nyelvészet szerint megfelelően az autóz szótőre hozta. Az általunk elvárt eredmény a három szó autózik/autózás szavakra való hozása lett volna. Szövegelemzési szempontból az autó lehet a megfelelő szótő ebben az esetben, a kisméretű index létrehozása miatt. HUNLEX EREDMÉNYEK ÁBRÁZOLÁSA A szépirodalmi művek tesztelése során statisztikát készítettünk az egyes szótövek és a hozzá tartozó szavakról. Ezek közül szótő gyakoriság szerint a 167 legnagyobb gyakoriságút kiválasztottuk, majd ezeket ábrázoltuk az előző struktúrához hasonlóan. A kék pontok a szótövek, a szürkék a szövegekben előforduló szavak. - 21 -

A legnagyobb szótő gyakoriságú szavak közül pár (szótövek vannak feltüntetve): mond, mag, lát, tud, mars, áll, ad, más, ír, egy, nap, tart, ember, vár, kezd, gondol, hall, amely, kap, szeret, marad, rész, láb, használ, hagy, év, fog, gép, hely, kérdés, munk, élet, talál, ön, akar, út, hold, néz, él, ór, város, űr, vezet, kupol, haj, nev, zavar, hang, ért, tér, dolg, oldal, világ, men, fény, figyel, szem, szob, kez, próbál, csinál, fal, föld, vég, es, csillag, beszél, bolyg, valam, szav, any, könyv, berendezés, szól, ismer, keres, történet, terv Az előző, csonkoló szótövezőhöz hasonlóan itt is virág formájú eredményt kaptunk, viszont elég erősen elválnak egymástól a szavak, a megfelelő szavak viszont összevonásra kerülnek. A 4. ábrán látszik a teljes eredményhalmaz, adott szépirodalmi szövegekre nézve. Ezt az eredményt vártuk. 4. ábra - 22 -

Az ábra részleteit nézve megtekinthető, milyen szavakat hozott azonos alakra a szótövező, tesztjeink alapján a rendszer bár jól működik, közel sem hibátlan. A teljes ábrát mérete miatt (olvashatóan méretben nyomtatva körülbelül 1 x 1,3 méter lenne), viszont egyes részeit kiemeltük elemzésre. Az 5. ábrán látható például az elér szótő, és a hozzá kapcsolódó szavak. Ebben az esetben a szótövező tökéletesen rendelte a szavakat a szótőhöz, bár nem ellenőriztük az összes szót, lehetséges például, hogy az elérhetők szó szótövének az 5. ábra elérhet szót választotta a rendszer. Egy érdekesség is megfigyelhető az ábrán, bizonyos szavak szótövét ismételt szótövezésnek alávetve egy másik szó jön ki eredményként. Az 6. ábrán figyelhető meg a történet szó szótövezése után a történetei -> történet -> történ láncolat. 6. ábra - 23 -

NYELVTUDOMÁNYI HELYESSÉG A rendszer alapos megismerése és nagyméretű szövegekkel történő tesztelése után a nyelvészet területéről kiragadott, egyedi szavakat teszteltük. Először a kivételeket, magyar nyelv ragozó voltából eredő szabálytalanságokat teszteltük, majd ezek után a csapat által összeszedett egyéb szavak következtek. Végül minden eszünkbe jutó valós vagy kitalált szót átadtunk a rendszernek elemzésre, hogy még jobban megismerhessük a rendszer határait, lehetőségeit. Az eredmények ismertetése során eltekintünk a több tucat, helyesen szótövezett szó ismertetésétől, egyedül az eltéréseket, anomáliákat emeljük ki. EREDMÉNYEK ÉRTÉKELÉSE A lefuttatott tesztek alapján nem lehetünk büszkék a programra, ám figyelembe kell venni, hogy elég sok rendhagyó, idegen eredetű, és köznyelvben ritkán használt szó is volt a szavak között, amelyek jó szótövezéséhez teljesen biztos és pontos működés szükséges. Eltekintve egyes hibacsoportoktól, mondhatjuk, hogy a HunLex működik. Ahogy a webes felületen az eszünkben jutó (általános) szavakat szótöveztetjük, elég sok próbálkozásra van szükség, mire hibát tapasztalunk. Az egyszerűbb szavakat szinte mindig jól szótövezi, ráadásul a nyelvtanilag helyes lemmát találja meg. Azoknál a szavaknál, amelyek tartalmazzák a szótövüket és csak felismerni és levágni kell az egyes toldalékokat szerencsére teljesen jól működik, valamint a legtöbb képzett alakot is felismeri: legfinomabb :: leg+finom+abb :: ADJ fonalakkal :: fonál+akkal :: NOUN megivottal :: meg+iszik+ttal :: ADJ - 24 -

A problémát általában az okozza, ha a keresett szótövet sikerül jól elrejteni : legszebb :: leg+sze+bb :: ADJ fonalakkal :: fonál+akkal :: VERB A legszórakoztatóbb eredményt azok a szavak adják, melyek nem összetett szavak, viszont annak látszanak. Az összetett szavak esetében a program egyik jó tulajdonsága, hogy ezeknél megadja az egyes megatalált szavak szótövét is: karalábé :: kar(noun)+a+láb(noun)+é :: NOUN vitorláshajó ::vitorlás(adj)+hajó(noun) :: NOUN Ebben a helyzetben is, és a szavak nagyobbik részénél is igaz, hogy amennyiben a szó végén nem talál semmilyen utótagra utaló jelet, akkor nem is foglalkozik tovább a szóval: karamell :: karamell :: NOUN Pedig az előző példa alapján azt gondolnánk, hogy ezt is felbontotta volna hasonlóképpen. Az egyes tévesztések leginkább azért történnek, mert ismét több értelmes felbontása lehet egy szónak, sajnos ebben az esetben valamiért az űr szót találja meg a program, és nem ellenőrzi, hogy amennyiben a szótárában nem szereplő szót talált, a krumplip-ot, akkor esetleg egy másik felbontással nem tud értelmes szót találni. krumplipűré :: krumplip+űr+é :: NOUN A szóvégződés befolyásoló hatása a következő példán látszik a legjobban: perdület :: perdül+et :: NOUN perdületmegmaradás :: per+dület+megmaradás :: NOUN - 25 -

Az értelmes megmaradás felismerése után, valamiért már nem képes alkalmazni az amúgy jól működő ragkeresést. ÉRTÉKELÉS ÉS TAPASZTALATOK A szótövező meglepően jól működik, kisebb javítások után teljesen használható kiegészítője lehetne bármely nem speciális szószedetet használó felhasználó különböző szövegbeviteli mezőinek. Egy tartalomkezelő rendszerben segítségével intelligens, akár teljesen automata magyar taggelő modul hozható létre, a különböző kereséseket is pontosítani lehetne a segítségével. Amennyiben a szófaj felismerésén sikerül javítani, jó lényegkiemelő (igék, főnevek, legfőbbképp tárgyak azonosítása) program készíthető a segítségével. Egy teljesen megbízható szótövező felhasználási köre szinte végtelen, ám a HunLex még messze van ettől a szinttől. A funkcionális hibáin kívül, még az architektúrális része, maga a modulok működése, összekapcsolása, és legfőbbképp az adatbázis szerkezetének és tárolási módjának hatékonyabb formába hozása elkerülhetetlen a program késznek nyilvánításához. Szerencsére programhibákat nem tapasztaltunk, sem fagyást, sem memória túlcsordulást, legalábbis reméljük, hogy az egyes szótövezési tévesztések kizárólag elvi hiba vagy hiányosság miatt történnek. - 26 -

FÜGGELÉK A függelékben a felhasznált, általunk írt programok vagy programrészletek forráskódja található. BEMENETI ELEMZŐ <?php /***** Bemeneti elemző *****/ function feldolgoz($mit) { // file beolvasás $x = file_get_contents("be/". $mit. ".txt"); // bizonyos betűk szűrése $x = str_replace(array(".", ",", "?", "!", ":", "(", ")", '"', "'", ";", "[", "]", ">", "<", "\n", "\r", "/", "\\", "%"), " ", $x); // szóközök mentén felbontás $x = split(" ", $x); $ki = ""; // tokennek vélt elemek elemzése foreach ($x as $x1) { $x1 = trim($x1); //üres, szám, valamint - tokenetk szűrése if (($x1!= "") && (!is_numeric($x1)) && ($x1!= "-")) { //kidebetűssé alakítás $x1 = strtolower($x1); $ki.= $x1. "\n"; } } // file írása a ki könyvtára file_put_contents("ki/". $mit. "_pure.txt", $ki); } // a be könytár tartalmának parsolása (.txt kiterjesztésűek a fileok) $dir_handle = @opendir("be/"); while ($file = readdir($dir_handle)) { if (is_file("be/". $file)) { // egyes elemek feldolgozása echo ("- ". $file. "\n"); feldolgoz(substr($file, 0, strlen($file) - 4)); } } closedir($dir_handle); - 27 -

?> KIMENETI ELEMZŐ <?php /***** Kimeneti elemző *****/ function feldolgoz($mit) { // file beolvasás $x = file_get_contents("be/". $mit. ".txt"); $x = split("\n", $x); $ki = ""; // egy szóhoz tartozó elemzés szűrése foreach ($x as $x1) { // szófaji elemek szűrése $t = str_replace(array("/", "?"), " ", $x1); $t = split("\ \ ", $t); } // szórészletekre bontást dolgozunk fel $x1 = str_replace(array("{", "}"), " ", $x1); $x1 = split("\ \ ", $x1); $alap = substr($x1[0], 0, strlen($x1[0]) - 2); $epitmeny = ""; // az egyes részeket + jellel válasszuk el for ($i = 1; $i < count($x1); $i += 2) { if ($epitmeny!= "") $epitmeny.= "+"; $epitmeny.= $x1[$i]; } // szófajt dolgozunk fel $t = $t[count($t) - 1]; for ($i = 0; $i < strlen($t); $i++) { if (($t[$i] < 'A') ($t[$i] > 'Z')) { $t = substr($t, 0, $i); break; } } // új forma összeállítása if ($alap!= "") $ki.= $alap. " :: ". $epitmeny. " :: ". $t. "\n"; // kimenet írása - 28 -

file_put_contents("ki/". substr($mit, 0, strlen($mit) - strlen("_pure.txt_kimenet")). "_hozzarendeles.txt", $ki); } // a be könytár tartalmának parsolása (.txt_kimenet.txt kiterjesztésűek a fileok) $dir_handle = @opendir("be/"); while ($file = readdir($dir_handle)) { if (is_file("be/". $file)) { // egyes elemek feldolgozása echo ("- ". $file. "\n"); feldolgoz(substr($file, 0, strlen($file) - 4)); } } closedir($dir_handle);?> - 29 -