A MAGYAR IRODALMI ÉS KÖZNYELV NAGYSZÓTÁRÁNAK KORPUSZA A HUNGARNET KÖZÖSSÉG SZÁMÁRA

Pajzs Júlia, pajzs@nytud.hu
Váradi Tamás, varadi@nytud.hu

MTA Nyelvtudományi Intézet
1014 Budapest Színház u. 5-9.

Abstract

The project for compiling the Historical Dictionary of Hungarian started in 1985. The dictionary will be based upon a computerized corpus. Several small excerpts was selected by literary historians which are being keyboarded manually. It contains 17 million running words at the moment. In the present paper we introduce the sofwaretools used for text retrieval.

1. A nagyszótári korpusz jellemzői

1.1 A forrásanyag összetétele

A Nyelvtudományi Intézet 1985-ben kezdte újra A magyar irodalmi és köznyelv nagyszótárának munkálatait. A szótár forrásanyagául elsősorban számítógépre rögzített szövegek szolgálnak (korpusz). A felviendő szövegrészleteket az egyes korszakok irodalomtudósai válogatták ki számunkra olymódon, hogy a gyűjtemény a lehető legjobban reprezentálja a szótár által felölelni kívánt időszak szókincsét. Az ismertebb szerzőktől több, a kevésbé ismertektől kevesebb, kisebb terjedelmű részletet rögzítünk számítógépre. Tekintettel arra, hogy egy-egy kötetből folyamatosan általában csak néhány oldal terjedelmű szöveget viszünk be, a felvitt részletek többsége nem teljes mű, csupán a rövidebb versek, novellák, tárcák kerülnek fel teljes terjedelmükben. Néhány példa az egyes szerzőktől felvitt szövegek mennyiségére:

A szerzőnként felvitt szövegrészletek mennyisége leginkább a szövegszavak számával jellemezhető, mivel minden egyes vers, elbeszélés vagy regényrészlet önálló műrészletként van kódolva. Mint látjuk a terjedelem nagymértékben függ a szerző jelentőségétől, de nem csupán attól. Mikszáthtól például azért (is) választottak ki számunkra az irodalomtudósok lényegesen több szöveget mint Jókaitól, mert többféle műfajban publikált. Lexikográfiai szempontból igen fontos az anyag műfaji sokfélesége, így tudjuk reprezentálni a nyelvhasználat különféle stílusváltozatait. Jelenleg (éppen a kisebb részek gépreviteléből adódóan) csak hagyományos kézi adatrögzítéssel visszük be a kijelölt szövegeket. Ezek felvitelét követően át kell térnünk az elektronikus formában hozzáférhető szövegek közül való válogatásra. (Ennek jelenleg a személyi feltételek hiánya szab gátat.)

Egyebek között a Magyar Elektronikus Könyvtárból szeretnénk bőviteni a korpuszt, de szívesen vennénk át bármely kiadótól szövegeket. A Nsz.-i projektum elsősorban abban tér el a MEK-től, hogy célunk nem maguknak a szövegeknek a hozzáférhetővé tétele számítógépen, hanem az egyes szavak, szókapcsolatok előfordulásának bemutatása. Ezért archívumunkba olyan szövegek is bekerülhetnének, amelyeket a MEK, szerzői jogi problémákból adodóan nem tehet közzé.

Nem célszerű azonban áttérnünk a korpusz pusztán mennyiségi növelésére, nagy terjedelmű teljes művek felvitelére, mivel lexikográfiai szempontból így elsősorban a redundanciák számát növelnénk. Egy szerzőtől, azonos szócikkben ugyanis mindenképp csak egy idézetet választhatunk ki. Tapasztalataink szerint a korpusz növelésével elsősorban az amúgyis gyakori szavak előfordulási száma emelkedik jelentősen. Például a korpusz közelmúltban történt bővítésekor az általam éppen vizsgált abszolút szó előfordulása 220-ról 455-re nőtt, ebből 64 egy szerzőtől származik. Ugyanekkor a kritikus 2-3-4 előfordulási számú szavak közül csak néhánynak növekedett a gyakorisága, tovább nőtt a csupán egyszer előforuló lexémák száma. A 14 millió szövegszónyi korpuszból készített lemmatizált gyakorisági lista legfontosabb tanulságai:

A legalább tízszer előforduló lexémák alapul szolgálhatnak kétnyelvű kisszótárak címszóanyagául, a nagyszótári munkákhoz azonban legalább 3 előfordulásra van szükségünk (még azok közül is sok ténylegesen csak egyszer jöhet számításba idézetként, ha ugyanabban a szövegben található). Ebből az adódik, hogy a 14 milliós korpuszból mindössze egy kb. 60.000-65.000 címszót tartalmazó kéziszótár készíthető! Mint látjuk a lexémák több mint fele, csaknem kétharmada (101.352 lexéma) csupán egyszer-kétszer fordul elő.

Mivel egy szócikkben ideális esetben a szó valamennyi jelentésárnyalatáról körülbelül 50 évenként egy idézetet kell kiválasztanunk (jelenleg csak XIX-XX. századi forrásokból dolgozunk), a több százszor, vagy több ezerszer előforduló szavak megfelelő feldolgozása, az idézetek kiválasztása igen nehéz feladat. A csupán egy-két idézettel szereplő szavakról szintén nem tudunk csupán a korpusz alapján valódi nagyszótári szócikket írni. Ezért a korpusz megfontolt bővítésén kívül ki kell dolgoznunk olyan algoritmust is, amelynek segítségével feldolgozható mennyiségű minta választható ki a gyakoribb szavak különböző jelentésárnyalataihoz.

1.2 A korpusz belső reprezentációja

A lejegyzett szövegek ellenőrzés után az Opentext Corporation által kifejlesztett PAT szöveges adatbáziskezelő rendszer alá lettek installálva. (Jelenlegi neve a cég nevéről: OpenText). A PAT rendszer rugalmasan lehetővé teszi, hogy az adatbázist alkotó szövegek különböző file-okban, különböző file formátumokban legyenek, és a szövegeket meghagyja eredeti formájukban. A mi esetünkben egy nagy ASCII szövegfile-ban található a korpusz valamennyi szövege. Minden szövegrésznek külön fejléce van, amely tartalmazza a legfontosabb bibliográfiai adatokat (szerző neve, mű címe, keletkezés dátuma, kiadás dátuma, kiadás címe stb.), valamint rögzíti a bevitel főbb tényezőit (lejegyezte, ellenőrizte stb.) A keresés szűkítéséhez a fejléc bibliográfiai adatai közül az alábbi mezők használhatók: a szerző neve, a mű címe, műfaja, keletkezési ideje. Utóbbit tág határok között is megadhatjuk pl. kereshetünk az 1820-tól vagy az 1900-ig illetve az 1900 és 1930 között keletkezett művek között.

1.3 Karakterkészlet

Külön említést érdemel a karakterkészlet kérdése. Ez annál is fontosabb kérdés, mert biztosítani kell azt, hogy a korpusz többféle operációs rendszerben futtatott terminál programmal egyaránt helyesen lekérdezhető legyen. A korpuszban az ékezetes betűk az ún. Prószéky kódban (az ékezeteket számokkal kódolva) vannak reprezentálva. Az adatok keresése ebben az alakban történik, a keresőprogram azonban négyféle rendszer szerint (cwi, Windows 1250, 852-es kódtábla, Prószéky kód) képes kommunikálni a felhasználóval.

A program vt100-as terminál emulációt kíván meg a szövegek megjele-ní-tésére. Tekintettel arra, hogy előfordulhat, hogy a képernyő helyesen mutatja ugyan a szövegeket, de a billentyűzet nincs magyar karakterek bevitelére felkészítve, ezért a program más karakterkészlet megjelölése esetén is elfogad Prószéky kódban megadott inputot.

Érdekességként megemlítjük, hogy bár a Prószéky kódra gyakran az 123 számmal hivatkoznak, a korpuszban nemcsak e három szám szolgál az ékezetek jelölésére. Még a XIX. század elejei szövegekben is vannak olyan ékezetekkel és segédjelekkel ellátott karakterek, amelyek a mai nyelvben már nem használatosak. Jelölésükre 3-nál nagyobb, esetenként kétjegyű számot használunk.

2. A lekérdezés

2.1 A PAT szöveges adatbázis-kezelő rendszer

A PAT rendszer igen hatásos eszköz nagyméretű szövegek gyors visszakeresé-sére. Két alapvető összetevőből áll: az indexelő-kereső programból (PAT search engine) és a felhasználói interfészből. Ez utóbbi tesztelése után úgy döntöttünk, hogy több szempontból alkalmatlan az általunk kívánt funkcióra. A seach engine ugyan önmagában is használható a szöveg lekérdezésére, néhány egyszerű utasítás segítsésével, de nem igazán felhasználó barát. Apróság, de jól jellemzi a helyzetet, hogy egy-egy elírás esetén újra kell gépelni az egész parancssort. Ha óvatlanok vagyunk, a keresés eredménye villámgyorsan végigcikázhat képernyőnkön, és csak az utolsó képernyőnyi adag marad szemünk előtt. Lehet makrókat definiálni, és egy parancsfile-t lemezre menteni, de tudomásunk szerint arra nincs lehetőség, hogy a programnak a parancssorban meg lehessen adni paramétereket, (például a futtatandó parancsfile nevét). Van ugyan egy alapértelmezés a parancsfile nevére, de már azt nem várhatjuk, hogy azt automatikusan el is indítsa a rendszer, ha megtalálja. A konklúzió egyértelműen az tehát, hogy ez a felhasználói felület alkalmatlan eszköz még az angol anyanyelvű felhasználók széles köre számára is. Nyilvánvaló volt tehát, hogy olyan megoldást kell találni, amely megtartja a PAT vitathatatlan előnyeit a gyors adatkere-sés-ben, de laikus felhasználók számára is elfogadható a kezelése.

2.2 A magyar nyelvű interface

A feladatot úgy oldottuk meg, hogy a PAT rendszert egy magyar nyelvű lekérdező felület mögé rejtettük. Pontosabban fogalmazva a PERL-ben írt magyar lekérdező program párhuzamos process-ként futtatja a PAT rendszert, és kétirányú (input-output) kommunikációt folytat vele. A felhasználótól menüvezérelt módon bekért keresési kifejezést és paramétereket értelmezi, lefordítja a megfelelő PAT parancsra, elküldi azt a PAT rendszernek, fogadja a PAT outputját, s végül azt megfelelően formázva, képernyőnként lapozható módon megjeleníti.

2.2.1 Mit kereshetünk, és hogyan

A jelenlegi beállítások szerint az indexelés alapja a szavak kezdete. A megadott keresési kifejezést balról jobbra illeszti a szövegszavakra olyan hosszan, ameddig csak lehetséges. Ennek megfelelően az ábrán is szereplő "anya" keresési kifejezésre találat az anya, anyaság, anyahajó, sőt a Prószéky kódban történő tárolás miatt az összes olyan toldalékos alak is, amelyik a tővégi magánhangzó változásával jár pl. anyám, anyát stb. Egyéb típusú morfológiai változásokat azonban a program nem tud figyelembe venni pl. tó, tavak vagy bokor, bokros. Ezen toldalékos alakokat csak akkor kapjuk meg, ha kifejezetten megadjuk a keresési kifejezésben. Ha a keresési kifejezést szóközzel zárjuk, akkor csak a megadott kifejezést kapjuk vissza a találatokban. A korpusz mostani indexelt változatában nincs lehetőség arra, hogy a szavakban jobbról balra, tehát a végződések szerint keressünk.

Mód van két kifejezést is megadni, melyeket logikai műveletekkel kapcsolhatunk össze. Ha az "anya + lánya" kifejezést adjuk meg, akkor minden olyan helyet megkaphatunk a korpuszból, ahol az anya szót (és annak ragozott alakjait) a lánya szó követi esetleges ragozott alakjaival azon a szövegtartományon belül, amennyit egyszerre megtekintünk.

A keresési kifejezés mellett megszabhatjuk azt is, hogy mely szövegekben történjék a keresés. A szövegeket a szerző neve, a mű címe, az írás dátuma, és műfaja szerint választhatjuk meg. Minden megadott kritérium szűkítést jelent a keresendő szövegek halmazában. A program kijelzi az egyes kritériumoknak eleget tevő szövegek, valamint az együttes találatok számát is. Íly módon ki lehet szűrni azt a kritériumot, amelyik nulla találatot eredményez.

2.2.2 A találatok megjelenítése

A keresési kritériumoknak megfelelő szövegrészeket három előre megszabott a-lakban lehet megtekinteni. Az alapértelmezés az ún. bekezdésnyi szöveg, melyet az 1. ábra mutat. Látható, hogy egy bekezdés első sora a találat sorszámát és rövid biblio-grá-fiai információt tartalmaz (az írás dátuma, szerző, cím). Ezt követi max. két sornyi szö-veg. Így összesen 5 citátum látható a képernyőn.

A találatok gyorsabb áttekintéséhez hasznos a soronkénti megjelenítés, amely a 2. ábrán látható szokásos konkordancia elrendezésnek felel meg. Ebből egyszerre 20 jele-nik meg a képernyőn.

Az alaposabb tanulmányozáshoz választhatjuk a "képernyő" opciót, amely rész-letes bibliográfiával szolgál (a kiadás adatait is feltüntetve), és a szövegkörnyezet is hoss-zabb (max. 700 karakter a talált szó előtt és után). Itt már a szöveg sorokra tör-del-ve látható, a talált kifejezés lehetőleg a képernyő közepén, a "@@" karak-ter-sorozat után szerepel.

Lehetőség van a képernyő tartalmát egy file-ba elmenteni, ahol az egyes szöveg-részletek egy rekordot képeznek úgy, hogy a mezőket tabulátorjel választja el, és min-den rekord új sorba kerül. Módunkban áll a korábban megtekintett képernyő tartal-makat elő-hívni, és elmenteni. Az elmentett adatokat a program email-en továbbítja egy mega-dott címre.

2.3 Korlátok, teendők

Bár meggyőződésünk, hogy a PAT rendszer által kínált lehetőségekhez képest a jelen-legi megoldás lényeges előrelépést jelent, természetesen a program továbbfejleszthető. Tisztában vagyunk azzal, hogy a karakter alapú TELNET szolgáltatás ma már nem felel meg a várakozásoknak. Ezért kézenfekvő, hogy a programot a WWW grafikus felüle-té-re kell átdolgozni. Ez a karakterkonverzió és a megjelenítés fent ismertetett problémáit egyben enyhítené is, ugyanakkor várhatóan a jelenlegi program nagy része beépíthető a grafikus lekérdező felületbe.

1. ábra A talált szövegrészek "bekezdésnyi" tördelésben

2. ábra A találatok soronkénti megjelenítésben

3. ábra A talált szöveg képernyőnkénti tördelésben

3. Problémáink, távolabbi terveink

A felhasználók közül különösen az állandóan e korpuszon dolgozó lexikográfusok számára vetődik fel élesen a lexémák lekérdezhetőségének kérdése. Ebből a célból a MORPHOLOGIC Kft.-vel együttműködve kifejlesztettünk egy morfológiai elemző programot. Az elemző felismeri a töveket és toldalékokat még olyan esetekben is, amikor az aktuális tő eltér a szótári szóalaktól. A jelenlegi változat azonban még nem képes a többféleképpen elemezhető szavak közül a helyes megoldás kiválasztására. Itt nem csupán az olyan közismert homonimákra kell gondolnunk, mint a vár, áll, hanem a homográfokra is szemét, török, stb. E probléma megoldására különféle módszerekkel kísérletezünk (pusztán statisztikai, szintaktikai, és "kvázi statisztikai") eljárásokat tesztelünk és hasonlítunk össze.

A korpusz elemzése nemcsak a lexikográfusok munkáját könnyíti meg, mivel az elemzés eredményeként a tő szófajkódja és a felismert toldalékok kódjai is fel vannak tüntetve, kereshetünk e kódokat felhasználva is. Ennek különböző nyelvészeti kutatásokban lehet jelentősége.

Az elemzőprogramot felhasználhatjuk a lexémák gyakorisági listájának elkészítésére is, a későbbiekben ezt is szeretnénk a hálózaton keresztül hozzáférhetővé tenni.

Megjegyzés

A munkálatot az alábbi támogatások tették lehetővé: TPB KKFA-ATA 1985-1989, OTKA 1989-1990.,OTKA 1991-1994. Nysz:T 003207, OTKA infrastruktúrális műszer pályázat 1992, Nysz: C 008, OTKA 1995-1998. Nysz: T 014798, NIIF 1996 Nysz: M-668-96

Bibliográfia

Kiss L. - Pajzs J.: A magyar irodalmi és köznyelv nagyszótára (1533-1990) Magyar Nyelv 1989. évf. 2. szám. p. 129-136.

Pajzs J.: A számítógépes nagyszótári korpusz felhasználásának lehetőségei Magyar Nyelv 1994. 3. pp. 287-302.