Labádi Gergely </filológia>

Újabb szövegfeldolgozás, ezúttal valami eredménnyel

Sokat, de gyorsan

Nemrég volt szerencsém egy rendkívül izgalmas workshopon részt venni, amely a digitális kultúra és szövegkultúra magyarországi oktatásának, kutatásának – egyáltalán: helyzetének – problemáját tárgyalta. Köszönöm a szervezőknek, Molnár Gábor Tamásnak és Palkó Gábornak, hogy meghívtak. Az előadásomra készülve (Távoli olvasó olvas) készítettem egy elemzést, amely bemutatja, hogyan lehetne használni distant reading módszertanát akár az egyetemi kurzusokon is. Tehát mielőtt továbblépnék, tanulnék tovább, valami olyan példát is mutatok, amely az eddigi ismereteken alapul, de néhány látványos (kinek mi látványos, persze) grafikon mellett konkrét irodalomelméleti és -történeti kérdéseket is felvet. És mivel a számítógépes feldolgozás azért van, hogy sok fájlt dolgozzunk fel, ezért ismét több fájl feldolgozását mutatom be. Mikszáth- és Jókai-novellák lesznek terítéken.

1. Előkészítés

  • Első körben Mikszáth Kálmán három novellagyűjteményét kell letölteni a MEK-ről. A Tót atyafiakat (1881), A jó palócokat (1882) és az Öreg szekér, fakó hámot. Ugyanúgy, ahogy a múltkor, először sajnos el kell mentegetnünk külön .txt fájlként mind a harminchárom szöveget. Mivel nincsenek olyan elemek, amelyeket könnyen megtalálhatnánk, ezért nem lehet automatikusan megkerestetni a novellahatárokat – sajnos (még a címek előtti enterek száma sem egységes, pedig még az is lehetne keresési szempont).
  • Miután ezzel végeztünk, mentsük el őket egy külön könyvtárba – érdemes a címeket úgy alakítani, hogy egyértelmű legyen, a novella melyik évből/kötetből származik. Ugyanebbe a könyvtárba másoljuk be a Magyarlánc-ot, majd a terminált megnyitva másoljuk be az alábbi sriptet – családi támogatás eredménye, köszönöm testvéremnek, Máténak, hogy kisegített.
for infile in $(ls -1 *.txt); do outfile=$(echo "out_${infile}"); echo $infile; echo $outfile; java -jar -Xmx1G -jar magyarlanc-3.0.jar -mode morphparse -input ${infile} -output ${outfile}; done
  • Vigyázzunk arra, hogy más .txt kiterjesztésű fájl ne legyen a könyvtárban, mert akkor azokat is elkezdi elemezni a Magyarlánc. A végeredmény még egyszer annyi .txt kiterjesztésű fájl lesz, de mind úgy kezdődik majd, hogy „out”. Ezeket másoljuk abba a könyvtárba, amely a munkakönyvtárunk lesz.
  • Miután ezt megcsináltuk, olvassuk be őket az RStudio-ba – ez talán már ismerős lesz.
    1. lépés: először elmentettük a .txt-s fájlneveket a filenames változóba abból a könyvtárból, ahol a fájlok vannak, ez legyen a „working directory”-nk (emlékeztetőül: setwd()).
    2. lépés: beolvassuk magukat a fájlokat a filelist nevű listába. A listának harminchárom eleme lesz, mindegyik egy-egy „out”-tal kezdődő .txt-fájlt tartalmaz, a Magyarlánccal elemzett szövegeket. Majd az egyszerűség kedvéért – meg azért, hogy majd kiférjen a grafikonokra a nevük – nevezzük el őket 1-től 33-ig.
    3. lépés: exportáljuk külön listába a novellák eredeti szavait, illetve lemmáikat.
# 1. lépés
> filenames <- list.files(path="eleresiut", pattern="*.txt")

# 2. lépés
> filelist <- lapply(filenames, function(x){read.csv2(x, header = FALSE, sep = "\t", stringsAsFactors = FALSE)})
> names(filelist) <- c(1:33)

# 3. lépés
> lemmak = lapply(filelist, function(df){df["V2"]})
> szavak = lapply(filelist, function(df){df["V1"]})
  • Mikszáth elbeszélőművészete, különösen A jó palócok kapcsán gyakran elhangzik az “élőbeszédszerűség” kategóriája. Az értelmezésekben ez általában kissé homályos marad, a legkonkrétabb kijelentések a novellák elbeszélőjéhez, elbeszélői tudatához kapcsolva emlegetik – vigyázat, .pdf. Az élőbeszédszerűségnek ugyanakkor vannak mérhető elemei is. Az egyik legegyszerűbben megszámolható sajátosság a Type-Token-Ratio, azaz a szavak és szóalakok aránya. Az 1970-es években több ilyen elemzés készült nálunk is, de tudomásom szerint a legambíciózusabb is csak négy novellát vetett össze.
    1. lépés: töröljük az írásjeleket.
    2. lépés: mielőtt egyedi előfordulást számolunk, listátlanítani kell az egyes novellák lemmáit.
    3. lépés: számoljuk ki a type/token-ratiót a Bencziknél olvasott képlet alapján (258. oldal), majd nevezzük el őket ismét (Az 1:4 a Tót atyafiak, a 5:18 A jó palócok, a 19:33 az Öreg szekér, fakó hám.).
    4. lépés: listából tegyük át egy egyszerű numerikus változóba az adatokat, majd ábrázoljuk egy grafikonon.
    5. lépés: nézzük meg a TTR-átlagokat is, ábrázoljuk.
# 1. lépés
csaklemmak = lapply(lemmak, function(x){strsplit(as.character(x),"(\\W+)")})
csakszavak = lapply(szavak, function(x){strsplit(as.character(x),"(\\W+)")})

# 2. lépés
csaklemmak2 = lapply(csaklemmak, function(x){unlist(x)})
egyedi.type = lapply(csaklemmak2, function(x){unique(x)})

# 3. lépés
novellak.tytor = lapply(names(egyedi.type), function(x){length(egyedi.type[[x]])/sqrt(lengths(csakszavak[[x]]))})
names(novellak.tytor) <- c(1:33)

# 4. lépés
n.tytor = unlist(novellak.tytor)
barplot(n.tytor, main="A típus/jel-viszony Mikszáth novelláiban")

# 5. lépés
mk_1881_mean = mean(n.tytor[1:4])
mk_1882_mean = mean(n.tytor[5:18])
mk_1901_mean = mean(n.tytor[19:33])
mk_means = cbind(mk_1881_mean,mk_1882_mean,mk_1901_mean)
barplot(mk_means, main="A Mikszáth-novellák TTR-átlaga")

  • És így néznek ki.

ttr_mk ttrmean_mk

  • Az látszik – az átlagok ki is emelik – hogy a Tót atyafiak, az első négy szöveg, különbözik a másik két kötet novelláitól. Jelen esetben azonban talán informatívabb, ha nemcsak a konkrét arányokat, illetve átlagokat nézzük, hanem a szélsőértékeket is.
mk_1881_range = range(n.tytor[1:4])
mk_1882_range = range(n.tytor[5:18])
mk_1901_range = range(n.tytor[19:33])
mk_ranges = cbind(mk_1881_range,mk_1882_range,mk_1901_range)
mk_ranges
  • És így néznek ki. Magyarázat alább.
  Tót atyafiak (1881) A jó palócok (1882) Öreg szekér, fakó hám (1901)
alsó érték (TTR) 21.11416 14.37951 13.51003
felső érték (TTR) 27.83102 19.78308 25.88291
  Árnyképek (1856)
alsó érték (TTR) 24.89585
felső érték (TTR) 31.80860
  • A jó palócok legmagasabb értéke sem éri el a Tót atyafiak alsó értékét, ugyanakkor az Öreg szekér fakó hám elég szokatlanul viselkedik. Kontrollnak felvéve Jókai egyik novelláskötetét, az újabb nyolc novellát tartalmazó Árnyképeket (ezt az eddigiek alapján mindenki meg tudja csinálni, de az értéket fentebb kiírtam) viszont még jobban láthatók Mikszáth novelláinak, illetve A jó palócok sajátosságai.
  • Ugyanakkor ahhoz, hogy meghatározzuk mit találtunk, hogy valóban az élőbeszédszerűség nyelvi jelét találtuk-e meg, további elemzésekre lesz szükség. Egyáltalán, mennyire megbízható a képlet? Vannak más képletek? Milyenek a 19. századi irodalmi és nem-irodalmi szövegek átlagos TTR-arányai? Műfaji sajátságok (vagy egyszerűen: a hosszúság) befolyásolják az értékeket?