2011. május 3.

Legyél te is számítógépes nyelvész - tíz év alatt

Úgy néz ki hogy májusban megszaporodnak a levelek melyekben arról érdeklődnek a kedves olvasók hogy miképp is válhat valaki számítógépes nyelvésszé. Ahhoz hogy valaki szakértő legyen egy területen, kb tíz év gyakorlás és gyakorlat szükséges (l. Norvig Teach Yourself Programming esszéjét vagy Mérő László Mindenki másképp egyforma könyvét), rossz hír hogy az interdiszciplináris területeken talán több is. Jó hír viszont hogy ezt egyáltalán nem kell úgy érteni hogy ennyi időt kell az iskolapadban eltölteni (habár ha egy PhD-t bevállal valaki, akkor nyolc kellemes évet tölthet el a felsőoktatásban - talán nem véletlenül). Tovább bonyolítja a helyzetet hogy a számítógépes nyelvészet területére különböző hátterű emberek érkeznek ezért nincs egységes recept. Blogunkon megpróbálunk olyan forrásokat is bemutatni amik segíthetnek az érdeklődőknek, most ezeket szedegettem össze és megpróbáltam egy egységes keretbe foglalni hogy ki-ki megtalálja a maga forrásait útja elkezdéséhez.



Előzetes megjegyzések

Nagyon sok dologgal fogsz találkozni ebben a posztban. És ez csak a minimum! Nyilván valamelyik területen van már tapasztalatod ha ide elvetődtél, és ezen a területen gyorsabban fogsz haladni. ha így van, félig nyert ügyed van! A többire viszont időt kell áldoznod. Fókuszálj egy-két területre és ne add fel. Az önismeret elengedhetetlen, önállóan feldolgozni egy-egy témát nagyon nehéz! Körültekintően válaszd ki melyik forrással kezded, és ha elakadsz ne add fel! Ha túl nehéznek találod az egyik könyvet, keress magadnak egy olyat ami egyszerűbben tálalja a problémát, vagy nézd meg milyen előismeretek hiányoznak a repertoárodból.  Merj félbehagyni egy könyvet ha túl nehéz! Nem gáz elővenni egy középiskolai könyvet és átnézni! Tanuld meg beosztani az idődet! (Ebben segíthet az Pomodoro technika, amiről itt és itt olvashatsz) Ha még nem tudsz angolul legalább zökkenőmentesen olvasni, állj meg és gyakorolj! Sokan hiszik hogy a nyelvészek sok nyelvet beszélnek, ám ez nem igaz. De angolul ma már tudni kell mindenkinek! Minden további nyelv fontos, gazdasági, tudományos, és művelődési szempontból is - ha időd engedi és lehetőséged van rá, tanulj meg az angol mellé még egy-két másik idegen nyelvet is.

Nyelvészet - csak röviden!

Már több mint egy éve írtam ezt a posztot - ez volt az első kérésre írt írásom itt. Tök mindegy hogy milyen háttérrel érkezel a területre, valamennyi nyelvészeti tudás szükséges. Ebben az ismertetőben ingyenes anyagokat is ajánlunk, de nem árt pár könyvbe beruházni.

Nem szabad félni a matektól!

Ha valaki szeret gondolkodni, akkor nincs oka félni a matematikától! Kezdetnek és szemléletformálásnak Enikő Logika és tudományelmélet mindenkinek írásában bemutatott népszerűsítő tudományos műveket ajánlom. Egy pár fejtörő és paradoxon mindenkinek érthető módon bemutatva elég a kezdethez.

Ha ez megvan, akkor érdemes a diszkrét matematikával és logikával folytatni. Erről Logika mindenkinek I és II írásaim, valamint Dávid Matematika és logika nyelvészeknek posztja szólt bővebben.

És a statisztikáról se feledkezzünk meg

A statisztika és a valószínűségszámítás szintén elengedhetetlen terület. Nem szabad azt hinni hogy fontosabb, vagy éppen kevésbé fontosabb mint a diszkrét matek! Ha a végén a sztochasztikus módszer híve is leszel, akkor sem kerülheted el a diszkrét matekok, hiszen az az algoritmusok és a számításelmélet megértéséhez szükséges. Ha már van némi alapod a formális gondolkodás területén, csak akkor rohamozd meg a statisztikát! Kezdésnek nagyon jók az Enikő által bemutatott Head First Statistics és Head First Data Analysis kötetek. További forrásokért ajánlom Statisztikai túlélőkészlet posztomat, ahol már egy kicsit komolyabb anyagokat is bemutattam, ill. ingyenes forrásokat is találhatsz.

Itt nagyon hamar elérkezünk a programozáshoz, az R nyelv ismerete manapság elengedhetetlen egy számítógépes nyelvész számára. Magát a nyelvet R, de miért is használjam I és II posztjaimban mutattam be. Sok remek könyv van a piacon amiből tanulhatsz, a The Foundations of Statistics: A Simulation-based Approach kötetet mi is bemutattuk.

A kemény dió - programozás és számítástudomány

A számítógépes nyelvésze lényege az hogy az elméleteidet ellenőrizhető, futtatható formában tudod megfogalmazni. Ehhez szükséges a programozás. Ideális esetben elég lenne egy nyelv ismerete, de hát ettől még messze vagyunk. A fent már említett R nyelvet használjuk az adatok feltérképezéséhez. Az adatok manipulálását azonban a Python nyelvvel szoktuk általában végezni, ennek ismerete alap és nagyon jól jön mivel a szakma gyakorlati oldalát bemutató alapkönyvek is ezt használják. Ezekről a Head First Programming és Head First Python könyveket bemutató írás végén találsz infot.

A logikai programozás paradigmája nem túl népszerű manapság, de a számítógépes nyelvészek szeretik, mivel könnyen lehet prototípust készíteni a nyelvben. Ha valaki biztos alapokat akar és szeretné látni az elméleti hátteret is a legelterjedtebb eljárások mögött, az nem elégedhet meg a Python posztban említett nltk-val! Ebben viszont a Logikai programozás nem programozóknak posztunk segít eligazodni.

Különböző okok miatt (amiket itt nem részletezünk, mert nem kezdőbarát okok), egyre jobban terjed a funkcionális paradigma. Ezzel is meg kell ismerkednie annak aki számítógépes nyelvészetre adja a fejét! Funkcionális programozás posztunk segít elindulni ezen a területen.

Amiről még mi sem beszéltünk

A biztos alapok megléte előfeltétele annak hogy megbirkózz olyan dolgokkal mint pl. algoritmusok és adatstruktúrák - ami tkp. a számítógépes nyelvészeti munka lényege! Az különböző adatbázisok ismerete is elengedhetetlen ahhoz hogy jó szakember legyen belőled. És a legvégén, nem árt foglalkozni a szakma metodológiai, filozófiai kérdéseivel és etikai vonatkozásaival sem, legalább érintőlegesen. A jövőben igyekszünk ezeket a területeket is bemutatni legalább egy-egy könyvismertető keretében.

Nincsenek megjegyzések: