Text Analysis with Neural Network Models

A témám célja az volt, hogy a neurális hálók működését feltárjam, az adat- és szövegbányászati alapfogalmakat megismerjem, emellett, egy általam választott programozási nyelvben, ami jelen esetben a Python volt, tudásomat elmélyítsem, és a nyelv szövegbányászati lehetőségeit feltárjam. Az elméletben megszerzett tudást, a gyakorlatba való átültetéséhez, egy Long-Short Term Memory (LSTM) modell felépítésével sajátítottam el.

Az ösztöndíjhoz tartozó kutatás által, a kutatáshoz szükséges alapfogalmakat lehetőségem volt felkutatni, és azokat elméleti szinten mélyen megérteni. Következetes voltam abból a szempontból, hogy a legkülső és legnagyobb halmazú témától kezdve haladtam befelé, egészen az LSTM fogalmáig, közben pedig, megvizsgáltam, hogy milyen fontos fogalmak tartoznak ehhez a témakörhöz, először is a szövegbányászat témaköréből, utána pedig, a neurális hálók általános témaköréből. A neurális hálók témakörében pedig a Recurrent Neural Network (RNN) témakörben mélyedtem el, ugyanis ennek a csoportnak a tagja a mi általunk választott és vizsgált LSTM is.
A kutatásomban használt modell célja az volt, hogy egy több ezer szóból álló szövegállományt kellett feldolgoznia, és ezután, a kiválogatott szavakból, bizonyos feltételek mellett, egy szóhalmazt kellett elkészítenie. A modell az így előállított halmazt használta első körben a tanulásra, és másodkörben pedig a tesztelésre, 80% – 20% arányban.

A munkámban, a modellt egy olyan egyszerűnek tűnő feladat elsajátítására akartam megtanítani, hogy képes legyen, egy 5 betűs szó utolsó betűjét megtippelni, pontosabban helyesen kitalálni. A modell sikerességét abból az egyszerű mérőszámból szerettem volna meghatározni, hogy mekkora pontosággal találja el az utolsó betűt. Ha ez a szám, közelít az 1/24-hez, akkor az lényegében azt jelenti, hogy nem gondolkodik, csak tippel egyet véletlenszerűen a modell. Ha ennél a számnál szignifikánsabban nagyobb a pontossága a modellnek, akkor kijelenthető, hogy valamilyen következtetésen alapul az, hogy milyen betűre tippel.

Ahhoz, hogy a modellt optimalizáljam, különböző kísérleteket végeztem amiatt, hogy az optimális epoch számot megtaláljam, emellett pedig az LSTM cellák számát is szerettem volna optimalizálni. Ennek a két értéknek az optimuma teszi lehetővé, hogy a modell ne tanuljon túl, azaz ne a tanuló adatsor értékeit tanulja meg, hanem abból vonjon le következtetéseket. A túltanulás megakadályozása és elkerülése volt a kutatásom egyik fő szempontja.

Emellett, próbáltam egy kisebb kísérletet tenni, hogy a modell, tud-e 6 betűs szavakra tippelni, úgy, hogy először megtippeli az 5. betűt, ezután pedig az első betű elhagyásával megpróbálja megtippelni a 6. betűt is. Mivel maga a modell nem erre volt kitalálva, ezért itt sajnos a vártnál nagyobb volt a hibák száma, de ez is egy jó kiindulópont volt, és ötlet arra, hogy a kész modellt milyen lehetőségek szerinte lehetne tovább fejleszteni, és milyen irányokba történhetne ez a fejlesztés.

A kutatásom megismerése egy jó alap afelé, hogy megértsük, hogy is működnek a szövegkiegészítő programok. Persze léptékben, még van egy kis különbség, de maga ez a kezdetleges modell egy jó kiindulópont afelé, hogy egy olyan modellt hozzunk létre, ami pár betű után képes megfelelő szó alternatívákat felajánlani

Zsemle Zsolt

2021/ 1/ 31.

Támogató: Flextronics

Be the first to comment

Leave a Reply

Your email address will not be published.




Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .