HTML

Precognox

precognox_logo_190.jpg

A blog készítői a Precognox Kft. keretein belül fejlesztenek intelligens, nyelvészeti alapokra épülő keresési, szövegbányászati, big data és gépi tanulás megoldásokat.

Ha a blogon olvasható tartalmak kapcsán, vagy témáink alapján úgy gondolod megoldhatjuk problémáidat, lépj velünk kapcsolatba a keresovilag@precognox.com címen.

Star Wars text mining

visualizing_star_wars_movie_scripts_precognox.jpgA long time ago, in a galaxy far, far away data analysts were talking about the upcoming new Star Wars movie. One of them has never seen any eposide of the two trilogies before, so they decided to make the movie more accessible to this poor fellow. See more...

Facebook oldaldoboz

Meetup ajánló

Blog figyelése (RSS)

 Add hozzá az RSS olvasódhoz

Ha levélben szeretnél értesülni az új cikkekről:

opendata.hu

opendatahu45.jpg

Az opendata.hu egy ingyenes és nyilvános magyar adatkatalógus. Az oldalt önkéntesek és civil szervezetek hozták létre azzal a céllal, hogy megteremtsék az első magyar nyílt adatokat, adatbázisokat gyűjtő weblapot. Az oldalra szabadon feltölthetőek, rendszerezhetőek szerzői jogvédelem alatt nem álló, nyilvános, illetve közérdekű adatok.

Az opendata.hu oldalt a Magyar OpenData Alapítvány/Egyesület hivatalos megalakulásáig - lelkes önkéntesek segítségével a
K-Monitor Közhasznú Egyesület (K-Monitor) működteti, az üzemeltetést a Precognox végzi.

Főbb témák

adatok (12) adatújságírás (16) adatvizualizáció (15) AI (7) alternatív (6) alternatív keresőfelület (24) beszédtechnológia (13) big data (45) bing (14) CEU (6) clustering (6) conTEXT (7) dashboard (6) data science (8) deep learning (13) egészség (7) egészség kereső (7) előadás (7) emócióelemzés (29) facebook (8) Facebook (9) gépi tanulás (10) Google (23) google (57) gyűlöletbeszéd (7) hackathon (9) hálózatelemzés (14) internetes keresés (26) internet hungary (6) képfeldolgozás (7) képkereső (8) keresés (57) kereséselmélet (7) keresés jövője (55) keresés problémái (38) keresők összehasonlítása (9) keresőoptimalizálás (6) kereső szándéka (11) kereső tanfolyam (9) kereső teszt (15) kognitív nyelvészet (12) konferencia (34) könyvajánló (20) korpusznyelvészet (13) közösségi keresés (8) közösségi média (6) különleges keresők (7) kutatás (6) LDA (9) lda (10) live (13) magyar kereső (9) marketing (8) meetup (39) mesterséges intelligencia (9) metafora (6) mobil (37) mobil keresés (17) Neticle (8) NLP meetup (17) Nuance (9) nyelv (6) nyelvészet (27) nyelvtechnológia (69) open data (11) open knowledge (7) politikai blogok (22) Precognox (42) Precognox Labs (14) Python (12) R (19) spam (6) statisztika (11) számítógépes nyelvészet (6) szemantikus keresés (16) szemantikus kereső (9) szentimentelemzés (31) szövegbányászat (14) tartalomelemzés (53) tartalomjegyzék (6) tematikus kereső (19) Twitter (18) twitter (15) vertikális kereső (9) vizualizáció (11) yahoo (26) Címkefelhő

A blog tartalmai CC licenc alá tartoznak

Creative Commons License
Kereső Világ by Precognox Kft. is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at http://kereses.blog.hu/.
Permissions beyond the scope of this license may be available at http://precognox.com/.

A Kereső Világ blogon közölt tartalmak a Precognox Kft. tulajdonát képezik. A tartalom újraközléséhez, amennyiben nem kereskedelmi céllal történik, külön engedély nem szükséges, ha linkeled az eredeti tartalmat és feltünteted a tulajdonos nevét is (valahogy így: Ez az írás a Precognox Kft. Kereső Világ blogján jelent meg). Minden más esetben fordulj hozzánk, a zoltan.varju(kukac)precognox.com címre írt levéllel.

Creative Commons License

Nevezd meg! - Ne add el! - Ne változtasd!

 

Learning by doing: Írjunk és teszteljünk saját nyelvtant

2014.09.29. 08:00 Szerző: zoltanvarju Címkék: vendégposzt nyelvtechnológia Python NLTK

Gerő Dávid Péter vendégposztja, az Egyszerű magyar mondatok kezelése NLTK környezetben című szakdolgozatának témájából.

Az írásom célja, hogy kedvet és lelkesedést ébresszek a próbálkozás utáni tanulás iránt egy számítógépes nyelvfeldolgozó keretrendszer bemutatásával. Megmutatni egy eszközrendszert és az eszközrendszeren egy magyar nyelvészeti probléma megoldását, amely alkalmas arra, hogy a diákok a felsőoktatásban elsajátított vagy éppen tanult ismeretanyagokat lefordíthassák a számítógép által is értelmezhető formába.

A célhoz eszköz kell. A választás a Python programozási nyelven megvalósított Natural Language Toolkit-re (NLTK) esett. Mind a programozási nyelv, mind a számítógépes eszközrendszer könnyű elsajátíthatósága miatt.

Az előttünk álló probléma a magyar nyelvű névelő egyeztetés és a választott nyelvészeti keretek pedig a generatív nyelvtan és megszorítás alapú nyelvtan.

Miről is beszélek most egyáltalán?

Ugorjunk a példára.


ember, kutya, egy ember, egy kutya, *a ember, az ember, a kutya, *az kutya

 

Tehát a nyelvünk ábécéje: e, egy, a, az, ember, kutya

Az ábécé feletti halmazunk: az ábécé permutációja (az ábécé hat elemű, így ennek faktoriálisát vesszük: 6! = 720 elemű.)

Tehát a nyelvünk (L) 720 mondatból áll.

Nekünk pedig az a szerény feladatunk, hogy ebből a 720 mondatból kiválasszuk azt a hat elemet, amelyek a magyar nyelv része. - Ez utóbbit nevezzük LM-nek, amely LM teljes részhalmaza a magyar nyelvnek.

Fogalmazzuk újra a problémát!

Generatív nyelvtan alapján az feladatunk, hogy egy olyan transzformációs szabályhalmazt adjuk, amely a megadott ábécé alapján csak és kizárólag a keresett hat elemű halmazt (LM-et) generálja.

Megszorítás alapú nyelvtan szempontjából pedig az a feladatunk, hogy olyan megszorítás alapú szabalyokat adjuk, amely az L halmazból kizárólag a keresett hat elemű halmazt (LM-et) választja ki.

Most már minden tiszta. Szerencsére. Fordítsuk először képletre aztán kódra a gondolatot és vizsgáljuk meg a működését!


Generatív nyelvtannal

A G=(N, T, S, H) rendezett négyest generatív nyelvtannak (vagy generatív grammatikának) nevezzük. (Pontos definíció: www.inf.unideb.hu/~nbenedek/FormNyelvAutom/chunks/ch03s02.xhtml )

A problémánk mentén N, a nemterminális szimbólumok halmaza { S, DP, D, DhatN, DhatP, DmghP, DmghN, NmghP, NmghN }
A T a terminális szimbólumok halmaza { e, egy, a, az, ember, kutya }
A H, a helyettesítési szabályok halmaza. { S → DP, DP → D , D → DhatM, D → DhatP , DhatM → e N, DhatM → egy N , DhatP → DmghP NmghP, DhatP → DmghM NmghM , DmghP → az , DmghM → a , N → NmghP, N → NmghM ,
NmghP → ember, NmghM → kutya }
Míg az S, a kitüntetett egy elemű halmaz, a kezdőszimbólum. { S }

Néhány munkadefiníció magyarázatra szorul. A DhatM nemterminális szimbólum azokat a determinánsokat jelöli, amelyek határozottsági jegye mínusz értéket vesz fel. Míg a DhatP azon determinánsokat jelölik, amelyekt határozottsági jegye pozitív. A DmghM és DmghP a magánhangzóval kezdődő alaknak a nemterminális szimbóluma.

Abbéli csodálkozásunkban, hogy sikerült egy ilyen kis képletbe ilyen sok szimbólumot beillesztenünk... Fordítsuk gyorsan kódra a működést.

cfg_ketto.png

Mit érdemes észrevennünk?

A nyelvtani fájlt érdemes megfigyelnünk. A nyelvtani fájlban nem definiáltuk külön a nemterminális és termininális szimbólumok halmazát. Csupán felállítottuk a transzformációs szabályokat... és mégis működik.
Az NLTK amellett, hogy egy könnyű szintaxist biztosíts a számunkra saját nyelvtanunk definiálására meg van az a nagyszerű lehetősége, hogy a terminális és nemterminális szimbólumok halmazát automatikusan, a szabályhalmazból következteti ki.
Ezért a generatív grammatika definiciójára hivatkozva: nekünk elegentő helyettesítő szabályok halmazát felírnunk és ebből a szabályhalmazból automatikusan létrehozza számunkra a rendszer a terminális, nemterminális és a kezdőszimbólum halmazát.

Megszorítás alapú nyelvtannal

Végezetül álljon itt egy példa a keresett nyelv megszorítás alapú leírására.
Megszorítás alapú nyelvtan szempontjából az a feladatunk, hogy olyan megszorításokat adjuk, amely az L halmazból kizárólag a keresett hat elemű halmazt (LM-et) választják ki.

Összegzés

Egy egyszerű nyelvtant szerkesztettük, amely a névelők és főnevek egyeztetését hivatott modellezni magyar nyelven. Se maga a nyelvtan, se annak informatikai megvalósítása nem teljes. Sőt nyelvészeti szempontból megkérdőjelezhető is. Ennek ellenére a nyelvtanok, a különböző nyelvtani keretrendszerekben működnek és pontosan az általunk keresett helyes magyar mondatokat generálják vagy fogadják el.

A célunknak megfelelően könnyen áttekinthető példák, amelyek azt szorgalmazzák, hogy a saját nyelvtan szerkesztése és a saját nyelvtannak a számítógép által értelmezhető formában való megjelenítése és megvalósítása nem egy ördöngős informatikai feladat. Ha olyan eszközrendszer áll a rendelkezésünkre, mint a példák során felhasznált NLTK.

Jó játékot!

Gerő Dávid Péter (@davidpgero), a Szegedi Tudományegyetem magyar-nyelvtechnológus hallgatójaként végzett 2014-ben. Jelenleg szoftverfejlesztőként tevékenykedik és nem szereti a mazsolát.

A Kereső Világ a precognox_logo_190.jpg Precognox szakmai blogja A Precognox intelligens, nyelvészeti alapokra építő keresési, szövegbányászati és big data megoldások fejlesztője.

Szólj hozzá! • Kövess Facebookon • Iratkozz fel értesítőre

A bejegyzés trackback címe:

http://kereses.blog.hu/api/trackback/id/tr256740481

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben.

Nincsenek hozzászólások.