2010. december 31.

Könyvismertető: The Cartoon Guide to the Computer

Sajnos hazánkban a képregény műfaja elhanyagolt, sokan nem tudják hova tenni, pedig ha jó érzékkel nyúl hozzá egy szerző egy témához (és jó illusztrátor vagy jó illusztrátorral dolgozik együtt), akkor csodák születhetnek. Felejtsük el hogy csak a gyerekeknek szólnak a képregények, hogy nem lehet elmesélni egy egy érdekes történetet vagy bemutatni valamit ebben a műfajban. A Cartoon Guide to the Computer a képregényes ismeretterjesztés egyik legjobb darabja! Természetesen az olvasó nem fogja elsajátítani az alapokat elolvasása során, azonban olyan fogódzókat kap, melyek segítik elindulni az informatika világának felfedezésében.


  • Larry Gonick - Mark Wheelis: The Cartoon Guide to the Computer
  • Harper Paperback, 1991
  • 250 oldal






2010. december 26.

Google Ngram Viewer - Mi a szösz az?

A Google Labs mostanában indította el Books Ngram Viewer szolgáltatását és megjelntek a legkülönbözőbb "elemzések" mindenhol - még a print HVG-ben is találtam! Arról viszont kevés szó esik hogy mit is takar tkp. ez a szolgáltatás, miért indította el a Google, mi egyáltalán az az ngram (vagy jobban mondva n-gram) és mire jó ez azon kívül hogy szép grafikont rajzolunk.


2010. december 22.

Könyvismertető: Statisztika és adatelemzés kezdőknek (Head First Statistics, Head First Data Analysis, Head First SQL)

Az előző két könyvajánlók azoknak szólt akik már valamennyire járatosak a statisztika és az adatelemzés világában. Most három olyan könyvet ajánlunk ami segít elsajátítani az alapokat. Ezek "belépő" szintű könyvek, azaz átlagos középiskolai műveltséggel és jó angol nyelvtudással önállóan is feldolgozhatóak. Habár külön-külön is olvashatóak és nincs közöttük semmilyen sorrendiség, az olvasó akkor jár a legjobban ha szépen egymás után az itt bemutatott sorrendben dolgozza fel mindegyiket.



2010. december 17.

Könyvismertető: Oakes; Statistics for Corpus Linguistics

Az előző posztban bemutatott kötet szervesen kapcsolódik össze a most tárgyalt művel. Azonban előre kell bocsátanom hogy ez a kötet nem egy "bevezetés a statisztikába nyelvészeknek", hanem a statisztikai módszerek alapos és érthető bemutatása a korpusznyelvészet területén. Így elsősorban azoknak ajánlom akik már rendelkeznek a szükséges ismeretekkel megértéséhez.


  • Michael P. Oakes: Statistics for Corpus Linguistics
  • Edinburgh University Press 1998
  • 272 oldal







2010. december 14.

Könyvismertető: McEnry - Wilson; Corpus Linguistics An Introduction

Napjainkban a korpusznyelvészeti módszertan reneszánszát éli, azonban sajnos a hazai felsőoktatásban még nem vált általánossá oktatása (habár vannak biztató jelek). Talán ezért kérték sokan hogy ajánljunk olyan könyveket melyeket önállóan is feldolgozhatnak az érdeklődők. McEnry és Wilson műve egy alapos és átgondolt bevezetés azok számára akik már rendelkeznek egy minimális háttérrel (azaz hallgattak már egy nyelvészeti bevezető tárgyat, vagy olvastak bevezető jellegű műveket - akik ezt még nem tették meg, Nyelvészet - csak röviden posztunkban találhatnak információt arról hol érdemes elkezdeni a témával való ismerkedést). Augusztusban bemutattuk Meyer English Corpus Linguistics művét, ami egy áttekintést ad a témáról, az informatika területéről érkezők számára ajánljuk hogy olvassák el azt a rövid bevezető munkát mielőtt belekezdenek ebbe a komolyabb munkába, nyelvész és egyéb bölcsész olvasóinknak pedig ajánljuk hogy statisztikai ismereteiket elevenítsék fel, vagy ha ezen a téren nem járatosak, olvassák el Statisztikai túlélőkészlet posztunkat ami talán segíthet elindulni a területen.






2010. december 7.

Könyvismerető: Logicomix, logikai képregény kicsiknek és nagyoknak

Apostolos Doxiadis, egy matematikus végzettségű író és Christos H. Papadimitriou a UC Berkeley számítástudomány professzora (és a legendás UC Berkeley Logic Group tagja) Alecos Papadatos és Annie Di Donna illusztrátorok segítségével egy igazán szép és szórakoztató képregényben mondja el Betrand Russel egész életén át tartó kalandját mely a megismerés és a matematika megalapozását tűzte ki céljául. Mielőtt legyintene az olvasó, elárulom ez bizony egy best-seller! Hogy miért? Mert jó! Annyira hogy nem csak a képregényfanok körében aratott sikert, hanem a logikusok, matematikusok, filozófusok, nyelvészek és számítástudományi szakemberek és diákok körében is kultusza lett a kiadása óta eltelt egy évben.







2010. december 3.

Tudományfilozófia, gépi tanulás és nyelvészet - egy nem is annyira különös találkozás

Előző posztomban a tudományfilozófia és a szemantikus web közös kérdéseit jártam körbe, és amellett próbáltam érvelni hogy a deduktív érvelés határait érdemes figyelembe venni. Most az induktív megközelítés problémáit próbálom meg körüljárni, és ismét a tudományfilozófiát hívom segítségül. Az ún. gépi tanulás statisztikai módszerekkel próbál meg egy adattömegben "rendet vágni" és használható tudást kinyerni. Ebben közel áll a tudományos tevékenységhez (ahol adatot gyűjtünk, leíró statisztikát készítünk és megpróbálunk összefüggéseket találni, elméleteket gyártani). Azt korábbi írásomban röviden bemutattam miképp számolta fel önmagát a klasszikus logikai megközelítésen alapuló tudományfilozófia és fordult át tudományszociológiába. Azonban a történet itt nem állt meg. A múlt század negyvenes éveiben megjelent egy irányzat ami a tudományos tevékenység igazolási kontextusa helyett a kutatási módszerek vizsgálatára helyezte a hangsúlyt, azaz az indukció problémájára.


2010. november 30.

Mire jó a digitális bölcsészet?

Nem rég értesültünk arról hogy a Pázmány Péter Katolikus Egyetem Bölcsészettudományi Karán digitális bölcsészet MA képzés indul. Az érdeklődőket egy ismertetővel várják december 7-én 5 órától Piliscsabán (a szakleírást itt található, ezen kívül Debrecenben is lehet ilyen képzésre jelentkezni és ott van digitális bölcsészeti központ is - habár honlap nélkül, ami furcsa).  A hír kapcsán érdemes egy kicsit körüljárni mi is az a digitális bölcsészet, mire jó és mennyiben kapcsolódnak a magyar kezdeményezések a nemzetközi irányhoz.

2010. november 26.

Könyvismertető - Szilágyi N. Sándor: Világunk, a nyelv

Sokan kerestek meg minket hogy tudnánk-e ajánlani egy bevezető könyvet a nyelvtudomány területéről. Ez természetesen az informatika területéről érkezők számára kérdés, és ahogy sok bölcsész fél a matematikától, sok természettudományos hátterű ember fél a humán tudományoktól. Szilágyi N. Sándor könyve tömören fogalmazva csodálatos. Kerülve a szakzsargont, világosan, követhető példákon keresztül mutatja be a nyelvet mégpedig úgy hogy ez nem megy a szakmaiság rovására.
  • Világunk, a nyelv
  • Osiris, 2000, második kiadás
  • 222 oldal

2010. november 24.

Incanter, a statistical environment for Clojure - Interview with its creator David Edgar Liebke

This week we interviewd David Edgar Liebke the creator of Incanter (a statistical and graphics environment for the JVM). David is a developer and statistician working for Clojure/core at Relevance Inc. He has a B.S. in cognitive science (UC San Diego), M.S. in applied mathematics and statistics (Georgetown), an M.B.A. (UC Irvine). He's got a nice blog, Data Sorcery with Clojure, and you can find him on Twitter as @liebke.




2010. november 22.

On Information Architecture - Interview with Dan Klyn

Számítógépes nyelvészet: Please tell us something about yourself.
 
Dan Klyn: My name is Dan Klyn, and I teach the IA class at the University of Michigan School of Information. My primary research focus is interpreting the work of IA-pioneer Richard Saul Wurman. In addition to operating my own IA consulting practice I was also recently elected to a seat on the board of directors of the IA Institute.  I live near Lake Michigan on the West coast of the State of Michigan, and my first "real IA job" was at Allmusic.com in 1998.

2010. november 20.

Szöveges információk vizualizációja Gephi és az AlchemyAPI segítségével

Már sokszor szóltunk róla hogy érdekel minket miként is lehet egy szöveget vizualizálni. Persze az első kézenfekvő válasz erre a régi jó öreg Zipf-törvény alapján rajzolt szógyakoriság (ami nekem már egészen kis korom óta a kedvencem), illetve a bigram és n-gram táblák, esetleg szófajok alapján egy piechart. De lehet-e mélyebbre menni ennél? Kelle-e? A második kérdésre én sem tudom a választ, de az elsőre már határozott igen a válasz! Minden különösebb programozási ismeret nélkül betekintést nyerhetünk a szövegek egy mélyebb rétegébe, azonban sajnos anyanyelvünkön ezt még nem tehetjük meg.

2010. november 19.

Kitchen Budapest: Technológiai és újmédia boszorkánykonyha - Interjú Bujdosó Attila koordinátor és internet-freak építésszel

Ezen a héten végre ismét magyar interjú kerülhet fel. A Kitchen Budapest a Magyar Telekom innovációs laborja, ahol csuda dolgok történnek. Hogy mik is azok, miért jött létre a labor, hogyan működik nehéz pár szóban összefoglalni, de Bujdosó Attila koordinátor és internet-freak építész volt olyan kedves és segített nekünk ebben.

2010. november 17.

Tudományfilozófia és szemantikus web

A szemantikus web ambiciózus programja azt célozza meg hogy az interneten minden dokumentum tartalmazza saját alapvető interpretációját is. Ez a távoli cél ami még várat magára, ám egyre több tudományterület ontológiája készül el és egyre több terültről áll rendelkezésünkre ún Linked Data (ami nem más mint egy olyan adathalmaz amihez csatolták elemei interpretációját is - de ez nem egy szakszerű definíció). Így felmerül a kérdés, ha adott az ontológia és egy adathalmaz, kell-e még nekünk kutató? Az ontológiát és az érvényes következtetések szabályait alkalmazva lehetséges-e új, eddig még nem ismert összegfüggéseket találni automatizált módon?


2010. november 16.

Work in progress poszt: A lean startup mint az adatvezérlet, kutatás orientált startupok vezérelve I.

Mindenkinek vannak jó ötletei. Mindenki elgondolkodik azon hogy milyen jó dolgokat is lehetne csinálni egy-egy érdekes probléma megoldásával. Azonban csak kevesen vágnak bele a megvalósításba és indítanak egy startupot, vagy fognak bele komoly alkalmazott kutatásba és még kevesebben járnak sikerrel és csinálják meg azt amit elgondoltak (vagy valami használhatót). A lean startup metodika segít abban hogy a gondolattól a használható produktumig jussunk. Habár , miképp neve is sugallja, statupok számára lett kitalálva, szerintünk az alkalmazott kutatások területén is kamatoztatható.



2010. november 12.

Bohumil Hrabal szótára

Tempfli Péter vendégposztja

František Čermák, Václav Cvrček (eds.)
Nakladatelství  Lidové Noviny / Ústav Českého Národního Korpusu 2009. 

A prágai Károly Egyetem Cseh Nemzeti Korpusz Intézete 2009-ben jelentette meg a tizenhárom éve elhunyt, de már életében legendává vált  Bohumil Hrabal írói nyelvének szótárát (a magyar olvasók a legjobban Hrabal Sörgyári capriccio és A szigorúan ellenőrzött vonatok című könyveit, és Jiří Menzel filmadaptációit ismerik). E kiadvány annak a sorozatnak a második része, mely 2007-ben Karel Čapek nyelvének feldolgozásával indult meg.


2010. november 10.

Word Cram - an interview with its creator Dan Bernier

This week we interviewed Dan Bernier, the creator of WordCram. Dan runs a nice blog, the Invisible Blocks, and you can find him on twitter as @danbernier, if you want to get info on WordCram, follow @wordcram.


Játékelmélet és nyelvészet I.

A nyelvészeti kutatások során egyre inkább előtérbe kerül a nyelv társas volta. Amíg a klasszikus elképzelés alapvetően azt szeretné megfejteni hogy egy adott beszélő fejében miképp áll össze a "NYELV", hogyan képes értelmes megnyilatkozásokat produkálni és megérteni, az utóbbi években a logika (dinamikus) episztemikus irányzata, a logikai játékok (melyeket nem szabad összekeverni a hétköznapi értelemben használt fogalommal) a racionális viselkedés filozófiai és pszichológiai vizsgálata termékenyítően hatottak a nyelvtudományra és megszületett a játékelméleti megközelítés.

2010. november 6.

Könyvismertető: A Semantic Web Primer

A szemantikus webről szóló írásunk után most egy olyan forrást mutatunk be amit segít eligazodni és elindulni az érdeklődő olvasóknak. Tehát nem egy enciklopédikus művet ajánlunk itt, hanem egy áttekintő művet amit alapvető ismeretek birtokában mindenki haszonnal forgathat és segítségével képet alkothat magának a területről.
  • A Semantic Web Primer (amazon link)
  • Grigoris Antoniou - Frank van Harmelen
  • MIT Press, 2008 (második kiadás)
  • 288 oldal

Kiknek ajánlható a könyv?
A könyv egy bevezető áttekintést nyújt azok számára akik érdeklődnek a szemantikus web alapelvei és technikái iránt.

2010. november 4.

The Digital Humanities: An Introduction for Techies

A guest post by Aditi Muralidharan


I'm Aditi, and I'm a PhD student at the department of computer science at UC Berkeley. I work in the digital humanities, but when people ask me what I do, I rarely use those words. I say "natural language processing", or "HCI". This is partly because nobody in the Berkeley CS department knows what the digital humanities are, but mostly because there's a strong stigma associated with the word 'humanities' around here, digital or otherwise: it's the soft option, not 'real' research, has no substance. Nevertheless, I'm going to come out and admit it here - I do digital humanities. I enthusiastically work on applying computational tools to problems from the humanities.

2010. október 30.

Matematika és logika nyelvészeknek

A számítógépes nyelvészet területére két irányból szoktak érkezni az emberek. Az egyik típus az informatika vagy a matematika irányából. Számukra a nyelvészeti/nyelvtani arzenált kell pótolni. A másik típus az, aki a bölcseleti irányból érkezik. Számukra az informatikát és a matematikát kell pótolni. Most az utóbbiaknak szeretnék egy kis segítséget, olvasnivalót ajánlani a kezdéshez.


2010. október 26.

Az adatok tudománya és nyelvészet - ismét

Napjainkban az adatok korát éljük. Ennek megfelelően kialakulóban van egy új alkalmazott tudományág, az adatok tudománya (data science) melyet itt már bemutattunk és a nyelvészeti adatok természetéről is ejtettünk pár szót, azoknak pedig akik szeretnének jobban elmélyedni a témában egy kis összafoglalót is közöltünk. Most Bender és Good nyomán arra szeretnénk kitérni hogy mit tud hasznosítani a nyelvtudomány az adatok tudományának eszköztárából és mit tud adni ezért cserébe.

2010. október 19.

Kognitív metaforaelméletről röviden

A kognitív metaforaelmélet nem csak a stilisztikával bővebben megismerkedni vágyóknak nyújt érdekes betekintést a metaforák osztályozásának egyik módjában, hanem azok számára is különösen érdekes, akik mindig érdeklődtek a nyelvi képek vizsgálata iránt, de leírásukat mindig felszínesnek, önkényesnek találták. - Magam mindkettő réteget képviselem. Ezért volt rám nagy hatással, amikor először találkoztam a kognitív nyelvészet ezen ágával, amely igyekszik egységes és rendszerezett keretek között leírhatóvá tenni a trópusokat. De rendszerezésük és leírásuknál is nagyobb célt valósít meg: egy univerzális eszközt ad a kezünkbe a nyelvi képek, és egy nyelvi alapú irányzatát képviseli az emberi megismerés vizsgálatának.

2010. október 18.

Könyvismertető: Morville - Callender: Search Patterns

"The future isn't just unwritten - it's unsearched."

Peter Morville és Jeffrey Callender könyve élvezetes olvasmány lehet mindenkinek akit érdekel a keresés témaköre. Itt nem a PageRank algoritmust és társait találod meg, hanem azt hogy milyen kihívásokat jelent egy alkalmazásba integrálni egy keresés funkciót, hogyan keresünk, milyen kereső interfészekkel találkozhatunk a neten és józan ésszel miképp segíthetünk a technikán. Mindezt kellő humorral, gazdagon illusztrálva (elvégre Callender grafikus) érdekes és jó analógiákkal megspékelve teszi a könyv.


2010. október 16.

The life of a computational linguist IV - interview with Alyona Medelyan

This week we interviewed Alyona Medelyan who's a Senior Software Engineer & Researcher at the NZ enterprise search company Pingar where she's working in the areas of semantic and faceted search, query analysis and search result representation. She's got a nice research blog, the Topic indexing blog, and you can find her on twitter as @zelandiya

2010. október 14.

The life of a computational linguist III. - Interview with Hugo Liu taste researcher

This interview is a little digression from our series, The life of a computational linguist. We talked with Hugo Liu who's the Chief Scientist at Hunch.com and a research affiliate of the MIT Media Laboratory and MIT Comparative Media Studies Program, where he has taught courses on artificial intelligence, and philosophy of aesthetics. He's got a blog at larifari.org and you can find him on twitter as @dochugo

2010. október 12.

The life of a computational linguist II. - Interview with Oliver Mason

This week we interviewed Oliver Mason, a computational linguist at the Department of English of University of Birmingham. He holds an MA in Computational Linguistics from the University of Trier, and a PhD in Linguistics from the University of Birmingham. You can find more information on Oliver on his personal webpage. He runs two blogs, Language and Computation and Learning, Teaching, Research. You can find him on twitter as ojmason.


2010. október 8.

Data-Journalism: Hope for a future in a troubled profession - Interview with Mirko Lorenz

The present interview is a little digression from "The Life of a Computational Linguist" series, but since data journalism is connected to digital humanities, we decided to present this new movement here.
We interviewed Mirko Lorenz who is an information architect, journalist & trainer. He studied History and Economics at the University of Cologne, then worked for various new media companies. Currently he is working with Deutsche Welle and organised the European Journalism Centre's conference on data journalism among other things. You can find him on twitter as @mirkolorenz.

2010. október 4.

Mi is az a dinamikus episztemikus logika és mihez is kezdjünk vele?

Szépfalussy Enikő vendégposztja

A dinamikus episztemikus logika (röviden DEL) az évtized "buzz word"-je a logikusok körében és mint ilyen megosztja a szakmát. Mi itt és most nem vállalkozunk másra mint egy képet adni az olvasóknak arról miért van ez így. Ezért itt nem mutatjuk be a különböző rendszerek formális definicióit, csak jelezzük merre érdemes elindulni és miért érdemes megismerkedni ezzel az irányzattal.

2010. szeptember 29.

Wordle: a logónk története

Ezúttal bemutatásra kerül a logónk elkészítésének módja. A posztban nem a logó megszületésén lesz a hangsúly, hanem igyekszem rámutatni azokra a jellemző problémákra és akadályokra, amelyek szinte minden alkalommal előkerülnek, amikor az ember egy szógyakorisági táblát kíván saját kezűleg előállítani. Hogy ez esetben nem csak táblát, hanem egy ebből készült grafikát is kapunk eredményül, ez csupán a logó, mint cél eredménye. De természetesen mindenki könnyedén előállíthatja a bemutatott minta, a saját szógyakorisági táblája alapján.

2010. szeptember 28.

Könyvajánló: Logika és tudományelmélet mindenkinek

Szépfalussy Enikő vendégposztja
Amennyire szép és hasznos dolog a logika, annyira nehéz is. Mi logikusok szeretjük azt hinni hogy pofon egyszerű és nem értjük miért olyan nehéz akár természettudományos háttérrel rendelkező embereknek is megérteniük a legalapvetőbb logikai fogalmakat is. Ahelyett hogy az oktatás színvonalát okolnánk inkább arra kellene koncentrálnunk miképp tehetnénk hozzáférhetőbbé és érthetőbbé tudományunk alapjait és eredményeit. Nagyon örültem amikor rátaláltam Zoli blogjára, és hasznosnak találtam logikai könyvajánlóit, csak egy dolgot hiányoltam, az abszolút kezdők számára íródott könyveket.

2010. szeptember 23.

The life of a computational linguist I - Interview with Jason Adams

This week we conducted an interview with Jason Adams, a computational linguist who is working on sentiment analysis at Systino. He holds a BS degree in Computer Science from the University of South Carolina, and an MS in Language Technologies from the Carnegie Mellon University. You can find Jason on Twitter as @ealdent. He's got a blog, The Mendicant Bug, where you can read about nlp, ruby and other stuffs.

2010. szeptember 18.

Retro programozás

A funkcionális programozás napjainkban egyre nagyobb teret nyer, habár már nagyon régen velünk van. Az egyik legöregebb programozási nyelv a LISP, ami bizonyos körökben éppen reneszánszát éli. Számunkra azért fontos ez a remek nyelv, mert a korai mesterséges intelligencia és számítógépes nyelvészeti kutatások paradigmatikus alkalmazásait LISP-ben írták, és területünk klasszikus műve, Norvig Paradigms of Artificial Programming könyve, (nagyrészt) erről a nyelvről szól.

2010. szeptember 14.

Az adatok megmagyarázhatatlan természete

"For those who were hoping that a small number of general rules could explain language, it is worth noting that language is inherently complex, with hundreds of thousands of vocabulary words and a vast variety of grammatical constructions. Every day, new words are coined and old usages are modified. This suggests that we can’t reduce what we want to say to the free combination of a few abstract primitives." Halevy, Norvig, Pereira: The unreasonable Effectiveness of Data

Előző posztjaimban az adatok tudományával foglalkoztam és a visszajelzések alapján sokak érdeklődését felkeltettem. Mielőtt azonban a szögre akasztanánk megszokott eszköztárunkat, egy kicsit gondolkozzunk el az adatok természetéről.

2010. szeptember 10.

A New York Times és a Guardian API-k használata

Ahogy az előző posztokban említettem sokan reménykednek abban hogy a neten összegyűlt hatalmas adat mennyiség betekintést nyújthat abba hogyan is működik a nyelv. Habár sokat segíthet ha rengeteg adattal rendelkezünk, ennek vannak határai - ahogy erre pl Kilgariff is rámutatott. Nem is beszélve a technikai és jogi korlátokról.

2010. szeptember 4.

Az adatok tudománya és a nyelvtudomány - olvasnivaló

Sokan kérdezték az előző poszt kapcsán hogy hogyan is indulhatnak el "data science" ügyben. Itt egy kis összefoglaló következik, mit érdemes olvasni, merre érdemes keresgetni, és egy kicsit ajánlani fogom korábbi posztjaimat is. Tehát most sorra vesszük hogy egy nyelvész mit tehet hogy 1) betekintést nyerhessen az adatok tudományába 2) eszköztárába illeszthesse a nyelvi adatok elemzésére alkalmas módszereket.

2010. augusztus 29.

Ruby programozási nyelv

Zoli Ruby programozásról szóló posztján felbuzdulva magam is megosztanám a magyar nyelven elérhető Ruby programozásban segítő és ingyenesen elérhető tananyagok listáját. A Ruby-ról, és a Ruby alapokon nyugvó Rails-ről lesz szó. – De már most itt az elején figyelmeztetnék mindenkit, hogy mielőtt engednénk a kísértésnek, hogy magával ragadjon a Rails csodálatos világa: ne legyünk restek, hogy alaposan ki- és megismerjük a Ruby nyelvet, mert saját tapasztalatból is tudom, hogy minden Rails-el ismerkedni vágyó bicskája ott törik bele, hogy a gyönyörű építmény alapjait nagyon felületesen futotta át.

Könyvismertető: Meyer; English Corpus Linguistics

Mivel egyre nagyobb teret nyer az empirikus adatokon alapuló kutatás, természetes hogy egyre többen érdeklődnek a korpusznyelvészet iránt. Meyer könyve nem ígér többet mint hogy bemutatja a korpusznyelvészet területét (az angol nyelvű munkákon keresztül), és ezt korrektül meg is teszi.

188 oldal
Cambridge University Press, 2002
Angol nyelvű
ISBN-10: 052100490X
Charles F. Meyer

Kiknek ajánlható a könyv?

Szerencsére mindenkinek! Nem igényel különösebb nyelvészeti előképzettséget hogy megértse az ember, ezért bátran ajánlható nyelvészeknek akiket érdekel az adatgyűjtés és feldolgozás folyamata, illetve számítástudományi szakemberek is hasznosnak találhatják. Azonban akit a hard core statisztikai elemzése érdekelnek és már rendelkezik biztos alapokkal, csalódni fog mivel ezekkel csak érintőlegesen foglalkozik a könyv.

Pro és kontra

A kötet nagy erénye hogy rengeteg példán keresztül mutatja be hogy a korpusznyelvészeti megközelítés a nyelvészet minden területén alkalmazható - ez alól még a generatív nyelvészet sem kivétel. Ezután a korpusztervezés folyamatát mutatja be, részletesen a közismert Brown, ICE, London-Lund és egyéb korpuszok tervezésével kapcsolatos példákkal illusztrálva milyen problémák merülhetnek fel. A korpusz kompilációjáról és annotációjáról szóló fejezetek már elnagyoltabbak, igaz nehéz is lenne a különböző technikák részletes bemutatása. A kazettás magnók problémáiról szóló részeket manapság már megmosolyogja az ember, de nem szabad elfelejtenünk hogy a legtöbb használatban lévő korpusz beszéltnyelvi részét még bizony ilyen technikával rögzítették és gépelték be. Az ötödik fejezet szól a korpusz használatáról, azaz hogy milyen módon tesztelhetjük hipotéziseinket. Számomra ez a könyv leggyengébb része, mivel teljesen hiányzik a statisztikai módszerek bemutatása. Habár nyilvánvaló hogy a szerzőnek visszafogottan kellett ezt kezelnie egy kezdőknek írt könyvben, és döntése hogy az ún "pseudo-titles" használatának elemzésével egy gyakorlati példát mutat elfogadható, az olvasóban hiányérzetet hagy  hogy egy-egy elemzés nevét é eredményét olvashatja, de hogy pontosan mit is fed az a kötetből nem tudja meg.

Összegzés

A kötet mindenkinek ajánlható, ám ára az átlagos magyar olvasónak szerintem magas, ezért inkább a könyvtári kölcsönzését ajánlom. Aki elolvassa kap egy átfogó képet arról mi is az a korpusznyelvészet, mire jó és hogyan dolgoznak a korpusznyelvészek. Senki nem lesz tőle profi nyelvész (persze egy könyv elolvasásától ezt ne is várja senki) és kézikönyvnek sem használható, mivel nem ad pontos recepteket. Viszont remek előkészítés komolyabb munkák befogadásához, vagy párhuzamosan is forgatható pl Gries Quantitative Corpus Linguistics with R kötetével.



2010. augusztus 21.

Kreatív Ruby programozás kezdőknek

Augusztus 19-én a világ, de legalábbis a Ruby-t ismerő része, ünnepelt. A kiváló hacker why the lucky stiff pont egy éve tűnt el a virtuális világból, ám hagyatékát soha nem fogjuk elfelejteni, és hála a lelkes közösségnek, elherdálni sem. Hogy ki is volt _why, arról a neten sokat olvashatsz, a lényeg hogy kiválló pedagógiai érzékkel rendelkezett és sokat tett azért hogy a programozás csodás világa könnyen hozzáférhetővé váljon a fiatalok (és lelkes idősebbek) számára.

Ha szeretnél megismerkedni egy szép, teljesen objektum-orientált szkriptnyelvvel a Ruby remek választás. Könnyű tanulhatósága és megbízhatósága miatt (is) napjainkban nagyon népszerű a webprogramozók körében és az egyik legelterjedtebb framework a Ruby alapú Ruby on Rails. Persze a könnyű tanulhatóság relatív, kinek? Ezt ismerte fel _why. Míg régen a C64-esek világában amikor nagylemezt és magnókazettás beolvasót használtak az emberek és a BASIC és társai voltak a menő nyelvek (és hazánkban a Süni magazinban két oldalas játékprogramok kódjait olvashattad) még egyszerű volt programozni. Nyilván azért is mert nem hatvanhatezer nyelv közül kellet választani, hanem azt használtad ami éppen adott volt, meg nem hatszáz oldal útmutatót adtak a neten a nyelvhez hanem kb tíz oldalon elfért minden. Szépen kipróbálhattad hogy ha ezt csinálod, ezt és ezt az eredményt kapod és ennyi. Most meg törheted a fejedet hogy akkor itt ez van, de akkor egy hibakezelési blokkot is iderakok ami ugye dob egy ilyen hibát vagy mi a szösz és akkor nekem String kell, de nem olyan sima mert az "immutable", hanem amit tudok dinamikusan változtatni és akkor a legvégén még kell egy statikus változó és őőőőőőő.....

Egy kezdőnek nem ez kell! A másik irányzat "lebutított" nyelvekkel próbálkozott. Azok akik ismerik a Java-t gondolják végig hogy az egyszerű inputot milyen körülményes elérni! Sokan pedagógiai célból csomagokat alkottak hogy leegyszerűsítsék ezt és csak a programozás "logikáját" tanítsák. De így nem egy "élő" és "igazi" nyelvet tanul meg az ember. _why nagy ötlete éppen az hogy egy jó nyelvet kiválasztva, annak egy töredékére koncentrálva és a megfelelő eszközöket megalkotva olyan tudást adhatunk a kezdők kezébe amivel már tudnak haladni. Ha nem kell egy évig azon rágódni hogy milyen típus kezelés is megy végbe akkor a programban, hogyan tanulhatom meg egy IDE használatát, a GUI programozás nem jelent egy szinte teljesen új nyelvet, ha a webprogramozás és az MVC keret tényleg csak egy megközelítési mód és nem megint egy új probléma, akkor a tanuló képes tényleg alkotni, felfedezni. Ha van visszacsatolás, ha képes a tanuló pozitív élményként megélni a programozás folyamatát, akkor gyorsabban fog haladni, bátrabban fedezi fel a számára ismeretlen területeket és sokkal magabiztosabb és kreatívabb lesz.

Eszközök
Egy kezdők számára készített programozási környezet, ami nem csak a programok szerkesztését könnyíti meg, hanem futtatni is lehet benne az elkészült művet.
A legegyszerűbb és szerintem legintuitívabb GUI amit valaha készítettek. Elég egy kis Ruby tudás, és remek grafikus felülettel ellátott programokat készíthetünk vele. A HacketyHack rendszerbe integrálták a készítők, de önállóan is használható.
A Ruby on Rails kistestvére. Kevesebb mint 4kB a forráskódja mégis használható oldalakat programozhatunk vele. Az MVC filozófiát követi, mégis mellőz minden  olyan elemet ami csak túlbonyolítja a dolgokat egy kezdő számára. A Heroku ingyenes tárhelyet is biztosít Camping appjeink számára, feltöltés előtt érdemes elolvasni ezt a kis tutorialt.

Olvasnivaló
Ne egy hagyományos könyvet várj! Nem ez egy posztmodern alkotás, ami (sajnos) nem emészthető mindenkinek. Semmi gond! Ha nem érted, nyugodtan használhatsz más forrást. Gondolom a címéből kiderül hogy a Ruby nyelvbe vezeti be olvasóját.
A Poignant Guide stílusában, a Shoes használatába nyújt bevezetést. (A link egy pdf verzióra mutat).

Összegzés
_why hagyatéka rendkívül szerteágazó (pl a Poignant Guide-hoz még zenei CD-t is készített!). Kétségkívül szoftverei nagyobb hatást értek el (nem csak pedagógiai fejlesztései, hanem a Ruby gems-ei is!), stílusa azonban sokak számára érthetetlen. Ezen nem kell csodálkozni és szerintem felesleges vitatkozni, akinek nem tetszik, az olvassa Chris Pine Learn to Program könyvét, vagy annak netes verzióját. A legfontosabb ami ránk maradt a hozzáállás. A programozás világát sokan azért szerették meg mert nyílt, demokratikus és meritokratikus egyben. Bárki elkezdheti a tanulást viszonylag kis befektetéssel, a neten formálódó közösségek nyíltak és segítőkészek és mindenkit érdemei szerint ismernek el. Azon lehet vitatkozni hogy tényleg veszélyben vannak-e ezek az alapértékek, de nem árt ha megjegyezzük bizony ezek egy nyílt és demokratikus társadalom jellemzői is. A programozással nem csak szakmát tanulhat az ember, hanem kreatív módon kifejezheti magát, megtanul másokkal együttműködni és elviselni a kritikát.

A számítógépes nyelvészet és digitális bölcsészet iránt érdeklődők számára mindenképp hasznos tapasztalat a Ruby elsajátítása, különösen az objektum orientált paradigma alapjainak megismerése. Sajnos azonban a közösség a nyelvészeti munkákhoz használatos könyvtárak és csomagok fejlesztésében nem jeleskedik és kezdőknek nagyon nehéz maguknak megírni ezeket, ezért ajánlatos az alapok elsajátítása után az nltk-ra átnyergelni.

2010. augusztus 14.

Piac és Oktatás: a nyelvtechnológia Magyarországon

A napokba interjút készíthettünk Jóföldi Endrével, a Weblib egyik ügyvezetőjével, az általunk is naponta szemlézett Kereső Világ blog szerzőjével. A Weblib.hu címen tájékozódhattok az „okos keresők” specialistájaként ismert cég teljes profiljáról. Technológiájuk és termékeik például a Polymeta keresőjük, a PolySpell, a helytelenül megadott keresőszavak kiszűrésére és korrigálására szolgáló rendszer, megemlítendő, és megemlítésre méltó a HealthMash, az egészségügyi tudásbázisuk. Továbbá talán a legismertebb pedig a Johu.hu keresőrendszerük, ami mindenki számára elérhető, használható már évek óta az Interneten.

Megkezdődik tehát a folytatásos interjúsorozatunk, ahol igyekszünk a nyelvtechnológiával foglalkozó, abban érdekelt emberek, cégek legtöbbjét megszólaltatni, hogy a lehető legszélesebb körben és mélységben ismerkedhessünk meg az interjúkban legtöbbet firtatott hazai oktatás és a piac kapcsolata, a kezdőkkel szembeni elvárások és úgy általában a nyelvtechnológiai ipar állapotáról.

1) Sok bölcsészkaron nyelvszakosok, magyarosok, pszichológusok és nyelvészet főszakosok számára felvehető a nyelvtechnológia minor. Viszont nem tudják hogy mennyire ismert ez az ipar számára, jelent-e valamit, tudják-e a munkáltatók hogy mit várhatnak egy ilyen végzettségű emberkétől? Jelent-e egyáltalán valamit, vagy csak mérnök-informatikus, programtervező informatikus végzettséggel érdemes próbálkozni. Ide sorolnánk továbbá a nagy kérdést is: BA/BSc vagy MA/MSc nélkül ne is induljanak állást keresni ezen a területen?

Ez valószínűleg a cégmérettől is függhet. Számunkra, akik egy egészen kicsi 10 fő alatti cég vagyunk nyilván nagyon fontos, hogy lehetőleg minél univerzálisabb emberek legyenek a cégünkben. Tehát egyelőre nem nagyon engedhetjük meg magunknak, hogy valaki csak elméleti szinten értsen a nyelvtechnológiához. Mindenképpen előnyös, ha legalább gyors prototípusokat tud készíteni valamilyen elméleti kérdés gyakorlati megvalósíthatóságának igazolására.

2) Sok nyelvész és nyelvtechnológus hallgató vágott bele (és leveleik szerint szerezte meg) a Sun Certified Java Programmer illetve a mySQL Developer/Associate certifikátokba. Ahogy kivettem a levelekből, így szeretnék kiemelni magukat, hogy nem csak az egyetemen oktatott prolog és python iránt érdeklődnek és ismerik, hanem a de facto standard Java nyelvet, és rendelkeznek adatbázis kezelési ismeretekkel is (ami hiányzik a tantervükből). Van értelme, hogy megszerezték ezeket a papírokat? Számít valamit? Van még valami, amit érdemes megszerezniük?

A programozási gyakorlatban természetesen van értelme a hasonló papíroknak, bár természetesen minket a gyakorlatban valóban alkalmazható tudás érdekel. Kevésbé az, hogy van-e hasonló papírja. Az tény, hogy a felsőfokú szintű informatikai, illetve programozó matematikusi oktatás szemléletbeli dolgokat is megtanít optimális esetben, amit a gyorstalpalók kevésbé. Az SQL illetve Java ismeretek mindenképpen nagyon fontosak, hiszen ezek az eszközök amivel a valóságban általában dolgoznak ezeken a problémákon. Persze a keresés során már legtöbbször el kell szakadni az SQL-től, de az adatok összegyűjtése és előfeldolgozása során mindenképpen szükség van rá.

3) Az informatikus olvasók arra panaszkodnak, hogy habár tanulnak mesterséges intelligenciát és nyelvfeldolgozást, ez inkább elméleti és hiányzik nekik a gyakorlati oldal a képzésből. Meglepő, de az érdeklődők még a nyelvtechnológusoknál is pesszimistábbak, nekem úgy jön le, hogy ők jobban látják a hiányosságaikat. Sokukat érdekli, hogy érdemes-e akár spontán írni a nyelvtechnológiai cégeknek és gyakorlati lehetőség iránt érdeklődni.

Sajnos itt a cégméret komoly problémát jelent. Egy hozzánk hasonló mikrocégben nincsenek meg a szükséges létszámbeli erőforrások ahhoz, hogy valakinek könnyedén gyakorlati időt tudjunk biztosítani. Ezzel együtt nem zárkóznánk el olyantól például, ha valaki akár kutatási vagy éppen Phd témát keres és valami olyannal szeretne foglalkozni, ami akár aztán gyakorlati módon egy valódi működő keresőrendszer részévé válhatna.

4) Szintén az informatikus olvasók kérdezik érdemes-e nekik a nyelvtechnológia minort felvenni? Azt vettem ki, hogy nagyon érdekli őket a téma, de nem tudják, hogy megéri-e ezt ilyen formális keretbe terelni (és időt, fáradtságot meg némi pénzt fektetni ebbe)?

Nem követtem, hogy milyen más minorok vannak, tehát ez függ nyilván az érdeklődéstől. Számunkra úgy tűnik, hogy csak nyelvtechnológiából nem egyszerű a magyar piacon megélni. Mi éppen ezért a kezdetektől fogva külföldre dolgoztunk. Ha valaki tehát ilyen irányban indul, akkor rögtön érdemes az angol nyelvterülettel (is) foglalkoznia, hiszen valószínűbb, hogy a gyakorlatban angol nyelvi megoldásokra lesz szükség.

5) Milyen egy ideális pályakezdő jelölt egy nyelvtechnológiai cégnél? Tudom, hogy ez túl általános, de körülbelül milyen is legyen?

Megint csak saját szemszögből megközelítve. Elvárás, hogy önállóan tudjon témákat kutatni, angolul is abszolút olvasás és ha csak lehet írásképes is legyen. Képes legyen a témából néhány oldalas összegzést, és aztán implementációs tervet is készíteni, ami aztán a programozók munkájának alapja lehet. Az nagy előny, ha tud valamilyen eszközzel gyors prototípusok készítésére, ahol kipróbálhatok pl egy témában a különböző algoritmusok és teljes kidolgozásra éppen ezért csak a már valószínűleg beváló megoldás kell, hogy kerüljön.

6) Hogyan lehet egyáltalán a „tűz közelébe kerülni”? Miért nem hirdetnek az ismert cégek a nagy állásportálokon? Miért nincs sok cégnek a honlapján információ a karrierlehetőségekről? Ennyire zárt ez az ipar?

Nem könnyű a terület. A magyar nyelvű piac rendkívül kicsi, az igényesebb, több munkával járó és éppen ezért természetesen drágább megoldásokat nem könnyű eladni, hiszen a megtérülést egy ilyen kis piacon nehezebb produkálni. Ha valaki pedig nemzetközi vizekre evez Magyarországról elindulva, akkor hamarosan azzal kell szembesülnie, hogy az ottani kis cégek nagyobbak a mi nagy cégeinknél. Tőkeerő és fejlesztési kapacitás tekintetében ez mindenképpen komoly korlát.

7) Számít-e hogy hol végzett az ember? A vidékieket ez különösen érdekli, ők a levelek alapján azt hiszik hogy a Pesten tanulók szereznek gyakorlatot a képzés során (hisz a nyelvtechnológiai cégek 99%-ban ott vannak és hátha bekerülnek a srácok ott).

A végzés helye elsősorban a diploma minősége miatt számít. Ezt a felvételi ponthatárok idén is elég jól tükrözték. Nézzétek meg például a mérnök informatika szakok ponthatárait. Sok helyen rendkívül alacsony. Szerintem nem véletlenül.

Köszönjük Jóföldi Endrének, hogy válaszolt a kérdéseinkre! Hozzá segítve minket a számítógépes nyelvészet piacának feltérképezéséhez, és betekintést engedve olvasóinknak a piaci igények felmérésében egy hazai cég, a Weblib szempontjából.



2010. augusztus 12.

Hogyan tovább? - mihez kezdhet magával a magunkfajta

Az elmúlt hetekben rengeteg levelet kaptunk (köszönjük). Sokan kértek egy kis útmutatást hogy mit is csinál egy számítógépes nyelvész, milyen esélyei vannak a munkaerőpiacon, mit kell tudnia és merre mehet tovább valaki egy nyelvész BA vagy infós BSc után. A blognak nem célja hogy pályaválasztási tanácsadással és munkaerő közvetítéssel foglalkozzon, de a kérdéseket megértjük és elfogadjuk. Amit mi tehetünk értetek megtettük!

Elindult egy sorozat, Toma Tasovac írásával kezdődött. Ebben ismerőseinket kérjük fel hogy röviden írjanak munkájukról. Reméljük hogy így egy kis képet kaptok arról ki-mit csinál ezen a területen, mennyire színes és változatos kedvenc elfoglaltságunk. A sorozatban főleg az akadémai  világban mozgó emberek munkáját tudjuk bemutatni, mivel ismerőseink között a kutatók vannak többségben, de keressük a lehetőséget hogy másokat is elérhessünk.

Hamarosan felkerül első interjúnk, a magyar nyelvtechnológiai ipar szereplővel készített sorozatunkból. Nem tettünk mást mint a tipikus kérdéseiteket összeszedtük és elküldtük pár hazai cégnek. Reméljük ezzel is segíteni tudunk nektek.

Sajnos ennyi telt tőlünk, reméljük az írásokat élvezni fogjátok és valami hasznosat is találtok majd bennük. A következő írás a témában Jóföldi Endrével (Kereső Világ, WebLib) folytatott beszélgetésünk, amit szombaton töltünk fel.

2010. augusztus 9.

The Anxiety of Digital Humanities

A guest post by Toma Tasovac

Digital humanities is an anxiety-ridden set of practices at the intersection of humanities research and computer technology. But the worst thing that could befall DH is forced collective psychotherapy or free prescriptions for Prozac. As long as we are anxious, we will try to find new and interesting things to do.


Zoltan asked me to write a post about my work in field of digital humanities (DH) and I am happy to do so. Not because I know ahead of time what I will say, but because thinking about one's own work -- and by thinking, i mean: reasoning more or less comprehensibly, without necessarily writing a multi-volume, self-aggrandizing novel -- is a fun and useful exercise. Mostly for myself.

DH is an anxiety-ridden set of practices at the intersection of humanities research and computer technology. It is an exciting but troubled discipline-in-the-making, uncertain about its own boundaries and purpose. Is it a field or a fad? Does it have a future or is it the future? Is it "emerging" or simply "peripheral"? Practitioners of DH are no weirder than your average academic (who is, by the standards of the "outside world" already pretty weird), but I think that an average DHer hears more voices in their head than a typical Slavist, for instance. With some notable exceptions.

The DH community is obsessed with trying to justify what it is that they are doing. A great deal of that soul-searching is unfortunately not very soulful: it is prompted by academic power games, grant opportunities and vicious self-promotion. But some aspects of this disciplinary (and sometimes undisciplined) introspection are fascinating: What should we do with a million books? Is there such a thing as a philosophy of text encoding? What are the limits of digital representation? What is digital history?

Academia in general is anxiety central: a place where insecure and often snobbish people disguise their distaste for manual labor as a kind of intellectual and quasi-moral superiority. The anxiety of digital humanities, however, is better: it is the anxiety about the very basics of professional intellectual work and models of representation and self-representation. Not being entirely certain about one's status or level of academic acceptance keeps one alert, active and safely tucked away from the oceanic feeling of complacency. That is why the worst thing that could happen to DH is forced collective psychotherapy or free prescriptions for Prozac. As long as we are anxious, we will try to find new and interesting things to do.

In my own work, I focus on a traditional tool of humanistic research: the dictionary, both as a material object, cultural product and a model of language. In lexicographic literature, you will find very little anxiety about what a dictionary is: it is usually defined as a list of words with some kind of explanation attached to them. For me, however, the dictionary is first and foremost a kind of text. As such, it is already a problem: a meaning potential that can be realized though its use, but also a field of contradictions that can not always be reconciled. That is why my work is focused on the interplay between electronic textuality and our notion of what a dictionary is (and ought to be). I am exploring ways in which the methods of digital humanities and digital libraries could alter our idea of what a dictionary can (and should) do.

At the Belgrade Center for Digital Humanities, we are working on a Wordnet-based bilingualized Serbian-English dictionary that will be deployed as a web service to interact with digital libraries. That project is called Transpoetika. We have also started digitalizing Serbian historical dictionaries with the goal of exploring the creation of a Serbian meta-dictionary. I am interested not only in the interaction of digital texts and digital dictionaries, but also in lexicographic serendipity: the Transpoetika dictionary, for instance, uses Twitter feeds as sources of "live quotes" and tagged Flickr images as on-the-fly illustration. Our experiment in lexicographic community-building called Reklakaza.la ("Hearsay") has drawn more than 22,000 fans on Facebook.

And, still, we are only at the very beginning. I have no idea how far we will be able to go and where we will end up. I don't know which of our experiments will be successful and which will fail: lexicographic text mining or dictionary visualizations? Spatial mappings of the lexicon or ludic explorations of the dictionary's narrative potential? What I do know for certain is that I have become good friends with my own anxiety and that I plan to keep that relationship going as long as I can.

Digital humanities should embrace their anxiety, too.

About the author
Toma Tasovac has a B.A. in Russian Literature from Harvard and M.A. in Comparative Literature from Princeton. He is the director of the Belgrade Center for Digital Humanities, a media trainer for DW-Akademie in Berlin and Bon, and a self-proclaimed dictionary freak. He meddles into all sorts of things, mostly digital.

2010. augusztus 6.

Könyvismertető: Getting Started with Processing

Sokan kérték hogy egy egyszerű, mindenki számára érthető bevezető könyvet ajánljak. Dióhéjban: a Processing nyelvet egyszerűen, példákon keresztül el lehet sajátítani akár egyedül is, hiszen alapvetően vizualizációkat készít vele az ember és "látásra"getting-started-with-processing el tudjuk dönteni hogy azt érte-e el a kódunk amit akartunk. A Processing-et tekinthetjük speciális Javanak, elsajátítása után könnyen áttérhetünk a nagy testvér használatára is. Ne feledjük azt sem hogy nagyon szórakoztató bütykölni egy ilyen nyelvet!

  • O'Reilly/Make,  2010
  • Angol nyelvű
  • ISBN-10: 144937980X
  • Szerzők: Casey Reas, Ben Fry

Mi is az a Processing?
Saját ön meghatározása szerint a Processing " is an open source programming language and environment for
people who want to create images, animations, and interactions" azaz egy nyílt forráskódú programozási nyelv és környezet azok számára akik képeket, animációkat és interakciókat akarnak készíteni.

Ezt a meghatározást nem árt kiegészíteni. A szokványos komparatív programnyelv tanulmányokban két táborra oszlanak a szakik a Processing kapcsán. Mivel a Processing sokkal inkább egy környezet (egy IDE és pár hasznos cucc) és egy Java könyvtár, hiszen majdnem 100%-ban standard Java szintaxist használ, Java byte code-ot produkál és a JVM-en fut. Ugyanakkor nem tiszta Java, mind a strukturált, mind az objektum orientált paradigmát támogatja. Ha ehhez még hozzá vesszül hogy akadnak egyéb JVM-en futó nyelvek (Groovy, Scala, Clojure) akkor csak nagyobb a homály. Maradjunk annyiban hogy a Processinget itt nyelvnek nevezzük és észben tartjuk szoros kapcsolatát a Javahoz.

Minek nekünk egy újabb nyelv?

Szerintem gyakran ennek nincs más oka mint hogy a készítő szeretett volna egy saját nyelvet, ami neki megfelel. A Processing alapvetően Casey Reas és Ben Fry fejéből pattant ki, akik híres MIT Media Lab-ben John Maeda doktoranduszai voltak. Maeda a kilencvenes években érdeklődött hogy miképp lehetne a digitális művészek, dizájnerek és nem-programozók számára megkönnyíteni a belépést a programozás világába, ennek eredménye lett a Design by Numbers nyelv lett, ami habár már nem egy aktív projekt, inspirálta a Processing alkotóit.

Reas és Fry koncepciója szerint a nem technikai háttérrel rendelkező (de kellően motivált) alkotó emberek nem egy játékot akarnak. Egy eszközre van szükségük, amivel elintézhetik amit akarnak. Többek között ezért nem áldozhatták fel a gyorsaságot (ne feledjük egy grafikus program bizony számításigényes) és választották a Java-t kiindulási alapul. Ugyanakkor törekedniük kellett a használhatóságra, amit szerintem az egyszerű programozási környezettel el is értek.  Habár a Processing megengedi hogy a feladat nehézsége és tudásunk szintje szerint megválasszuk milyen paradigmát használunk (szimpla parancsokat adunk, procedurális modorban függvényeket definiálunk vagy objektum orientáltan alkotunk) a használó nagyon gyorsan el fog jutni az OO módhoz ha naponta pár kis programot megír. Így habár egy kontinuumot képzelhetünk el az első Processing sketch és az első Java programunk között, sokan megmaradnak a rugalmas környezetben.

Fontos kiemelni hogy pedagógiai szempontból is jó ötlet egy grafikus programozási nyelvvel kezdeni. Hasonló elveken (csak más korosztálynak) épült fel a Scratch is. Ha a kód manipulálását direkt vizuális visszajelzés követi egyszerűbben és gyorsabban halad a programozás elsajátítása is.

Nézzük a könyvet
A könyv vékony és nem is olyan drága, sok ábrával és példa programmal van megspékelve, vizuálisan kifejezetten hívogató. Nem is beszélve hogy a Processing két atyja mint szerző meggyőzőnek hangzik. Egy ilyen vékony kötettől persze ne várja senki hogy hacker lesz mire a végére ér, de ha valaki szépen végig csinálja a példa programokat és veszi a fáradságot hogy egy kicsit módosítgassa őket, akkor képes elsajátítani mind a Processing nyelv, mind pedig a programozás alapjait (mi egy változó, mi az hogy iteráció, kondicionális, mi a különbség egy osztály és egy objektum között stb). Ennél nem is ígérnek többet a szerzők az előszóban.

Grafikus nyelvként az alapokkal indul a könyv (pont, vonal, kör koordinátákkal való képernyőre rajzolása), majd szépen halad az alapvető kontroll struktúráktól az osztályokig. Minden fejezet végén egy nagyobb projekt várja az olvasót; egy robotot készíthetünk ami egyre szebb és több képességgel rendelkezik. Ez nem csak mókás, de meg is mutatja hogyan használhatjuk egy hosszabb kódban (vagy mini projektben) megszerzett tudásunkat.

Az utolsó fejezet inkább arról szól hogy merre tovább, alapvetően az Arduino és a processing honlapja ajánlható ha tényleg jobban el akarsz mélyedni ezen a területen, de nem árt persze elolvasni azt a néhány oldalt.

Pro és kontra
Ami nekem kifejezetten tetszett az egyrészt hogy tele van a könyv jó tanácsokkal, apró trükkökkel hogyan kell programozni (kommenteld ki a kód egy részét, használd a println() függvényt hogy lásd a koordinátákat stb) és egy külön függeléket szentelnek a további, általános praktikáknak. Mivel a a változók hatóköre sokszor okoz problémát a kezdők számára, ennek is külön függeléket szántak, továbbá a különböző beépített típusoknak is, érdemes ezt a részt elővenni ha valami nem világos. Ez már csak azért is fontos, mert a könyvben gyakran találkozunk olyan változó deklarációkkal amikor nincs érték rendelve a változóhoz explicite (sőt ez tovább van bonyolítva egy autoincrement operátorral is).

Összevetve más könyvekkel

Természetesen nem ez az egyetlen jó könyv amiből megtanulhatsz programozni és a Processinget használni. A Processing honlapján találsz egy komplett listát a megjelent (és hamarosan megjelenő) könyvekről, érdemes megnézni hogy a számodra legmegfelelőbbet kiválaszthasd. Itt most csak az általam ismert, főleg kezdőknek szánt könyvekre szorítkozom.

Processing: A Programming Handbook for Visual Designers and Artists, Reas and Fry, MIT Press, 2007
Címéből adódóan ez egy kézikönyv. Rengeteg hasznos példát találsz benne, ha van egy kis programozási gyakorlatod akkor pusztán ezzel a könyvvel is elindulhatsz. Viszont az ára egy magyar átlag ember/diák számára nem barátságos.

Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction, Daniel Shiffman, Morgan Kaufmann, 2008
Ez a KÖNYV minden kezdőnek, kiváló támogató oldallal és sok-sok feladattal. Viszont az ára húzós (nekem legalábbis az) és ha tényleg gyorsan akarsz valami használhatót, akkor ez talán kicsit hosszú. Ha nem követed teljes figyelemmel könnyen elveszhetsz.

Processing: Creative Coding and Computational Art (Foundation), Ira Greenberg, Friends of Ed., 2007
Nekem nagyon vegyes benyomásaim vannak ezzel kapcsolatban. Nyilván nem tartozom a célcsoportjába (művészlelkek). A stílusa nem a szokványos technikai, száraz, tömör leírás, hanem szép elbeszélés.

Visualizing Data, Ben Fry, O'Reilly, 2007
Nem kezdőknek való, de mindenképpen hasznos. Amolyan tutorialba öntött ötlettár hogy hogyan prezentáld adataidat.

Összegezve
A Getting Started with Processing azt teszi amit ígér, elindít a kódolás világába mindezt magas színvonalon és még nekünk is elérhető áron.

2010. július 29.

R, de miért is használjam? - II.

Az előző részben megvizsgáltuk milyen is elvileg egy ideális nyelv egy számítógépes nyelvész számára. Most sorra vesszük hogy ennek mennyiben felel meg az R statisztikai programozási nyelv.

Vegyük végig a pontokat
1. A listák beépített támogatása
Igen, sőt!
2. Automatikus tárhelyvezérlés
Ezen sem lepődünk meg, hiszen manapság már egy cool nyelvnek ezt alapból tudnia kell
3. dinamikus típuskezelés (de mondhatnám hogy dinamikus gépelés)
Ezzel sem kell sokat törődnöd, nincs String name = "Zoli", nem fogsz egy Integert byte-ba tenni és elvérezni.
4. első-osztályú függvények
Elég itt idézni az R Language Definition idevágó részét: "In R functions are objects and can be manipulated in much the same way as any other object. Functions (or more precisely, function closures) " azaz első osztályú függvények a nyelv alapjai.
5. egységes szintaxis
Nagyon kevés nyelv van amelyiknek nem egységes a szintaxisa és az R nem tartozik közéjük.
6. interaktív környezet
A CommonLISP, Scheme és Python által megkezdett hagyományhoz hűen az R is rendelkezik egy szép interaktív környezettel. Itt talán még intenzívebben használják ezt.
7. Bővíthetőség
A Comprehensive R Archive Network szinte minden feladathoz kínál csomagot. Könnyen lehet egy új csomagot installálni és szabadon módosíthatod ha kell cuccot igényeid szerint. (A nyílt forráskód előnye :D)
8. Történeti háttér és kultúra
Erről külön is szólni fogunk!
9. Statisztikai függvények támogatása
Egy statisztikai programozási nyelv alapból támogatja ezeket, ugye ez nem lepett meg. Ajánlom figyelmedbe a Language Definition dokumentumot.
10. Speciális adatstruktúrák natív támogatása
Ha probabilisztikus megközelítésre adjuk fejünket szükségünk lesz a listákon kívül vektorokra, mátrixokra és egyéb félelmetes nevű dolgokra. Ha érdekel mi mindent támogat az R itt egy jó oldal.

Egy kis történeti háttér
Az R nyelv az S nyelven alapul amit John Chambers 1975-ben a Bell Labs keretein belül fejlesztette ki. Az informatika területén 35 évesnek lenni matuzsálemi kornak számít, viszont egy stabil és igen hozzáértő kör alakult ki a felhasználókból ez idő alatt. Az R 1993-ban tűnt fel, és létezik még egy S-Plus nevű testvére, amely kereskedelmi szoftver.

Aucklandi atyákat az eredeti S nyelv mellett a Scheme egyszerűsége inspirálta, aminek én mint Scheme rajongó nagyon örülök. A nyelv hamarosan nagyon népszerű lett a statisztikusok körében, így a nyelv egymást követő verziói általában nagyon stabilak.

A kilencvenes évek végén elkezdődött az adatok forradalma. Egyrészt az informatika világa egyre több adatot produkál, (talán ennek hatására) másrészt a humán és társadalom tudományok is egyre jobban a kísérleti és begyűjthető adatok felé fordultak. Egyre többen kezdték el használni különböző statisztikai programcsomagokat ismerték fel azok korlátait is. Az R felhasználói tábora valamikor az ezredforduló körül hirtelen megugrott és azóta is folyamatosan bővül.

Ez a történet csak tovább erősíti a nyelvet. A kemény mag továbbra is szinte változatlan és egyre jobb rendszert fejleszt. A speciális területek művelői egyre több csomagot írnak és publikálna. Az így létrejött nyilvánosság az esetleges hibák felfedezését meggyorsította, a fejlesztők közötti együttműködést elősegítette és még jobb csomagokat eredményezett. Az online fellelhető dokumentáció igen magas színvonalú, habár nagyon technikai jellegű. Úgy tűnik hogy még várnunk kell hogy a "kocka" fejlesztői mag észrevegye ezt és lépjen az érthetőség irányába.

A hosszú történet azzal is jár hogy sok jó könyvet találhatsz (habár ezek általában drágák) és rengeteg publikációt olvashatsz. Könnyű kommunikálni eredményeidet és nem kell sokat magyarázkodnod közben.

Hátrányok
  1. Az R nem egy egyszerű nyelv
  2. aki nem ismeri a lisp dialektusokat annak az R szintaxisa nagyon idegen lehet
  3. nehéz egyszerre statisztikát és R programozást tanulni
Hogyan tovább?
Ha szeretnél még többet megtudni a nyelvről, esetleg kipróbálnád és tanulnád érdemes elolvasnod Valószínűség, statisztika és nyelv című korábbi posztomat, ami segít eligazodni hogy hol érdemes kezdeni.

R, de miért is használjam? - I.

Sok olvasó kérdezte miért is használjon R-t, hiszen a Python nyelv ideális nyelvészek számára, nem beszélve az nltk-ról. Senkit sem szeretnék lebeszélni megszokott eszközeinek használatáról, de vannak esetek amikor az R használata egyszerűbb, természetesebb és hatékonyabb. Most azt szeretném bemutatni miért érdemes elgondolkodni más eszközök használatáról is.

Az nltk dizájn hátrányai
Eddig a legjobb cikk amivel találkoztam az nltk mögötti dizájn filozófiáról Edward Loper NLTK: Building a Pedagogical Toolkit in Python című írása. Érdekes milyen követelményeket vettek figyelembe a rendszer tervezése során:
  • könnyű használhatóság
  • konzisztencia
  • bővíthetőség
  • dokumentáció
  • egyszerűség
  • modularitás
Nyilván ezeket minden rendszernél szeretjük látni. De ne feledjük hogy gyakran kell kompromisszumokat kötnünk hogy az elkészült rendszer pl gyors legyen, vagy "állja a sarat" nagy igénybevétel esetén is. Azonban az nltk egy pedagógiai céllal készült eszköz. Loper éppen ezért emeli ki írásában hogy milyen követelményeknek nem kell megfelelnie az nltk-nak. Nézzük mik is ezek:
  • nem kell mindenre kiterjedő, átfogó rendszert alkotni
  • a teljesítményt épp annyira kell optimalizálni hogy diák projekteket lehessen kivitelezni vele
  • okoskodás, a fenti ponthoz kapcsolódva nem trükkös hack-kek sorával kell tuningolni a programokat, hanem tiszta átlátható implementációt kell készíteni (hogy a diákok láthassák a forráskódban miképp valósítottak meg egy-egy elképzelést)
Szerencsére az nltk annyira jól sikerült hogy nem igazán vesszük észre "hiányosságait", sőt egyes moduljait az iparban is felhasználják (habár itt figyelembe kell venni hogy a nyílt forráskódot módosítják néha a jobb teljesítmény elérése érdekében).

Milyen követelményeknek kell megfelelnie egy számítógépes nyelvészetben használt programozási nyelvnek?

Erre a kérdésre mindenki máshogy válaszolna nyilván, sőt úgy tűnik az ipar letette a voksát a Java mellett (követve az IT egész világát). Természetesen akadnak kivételek és sok számítógépes nyelvészeti feladatot egyszerűen túl bonyolult Java-ban elvégezni. Ha a mesterséges intelligencia felől közelítjük meg a kérdést (hiszen tekinthetjük kedvenc tudományunkat az AI egy részterületének is), akkor sokaknak rögtön eszébe jutnak az olyan egzotikus nyelvek mint a LISP, Scheme, Prolog. Nem véletlenül, a mesterséges intelligencia programozás klasszikusa, Norvig PAIP-ja kora ellenére még ma is kötelező olvasmány ezen a területen, még ma is hatással van a kezdőkre és profikra egyaránt. Ebben nagy érdekes követelményeket fogalmaz meg a szerző egy AI programozásban hasznos nyelvvel szemben:
  1. built-in support for lists
  2. automatic storage management
  3. dynamic typing
  4. first-class functions
  5. uniform syntax
  6. interactive environment
  7. extensibility
  8. history
A listára ma is rábólintunk, talán két dolgot tennénk hozzá. Egyrészt nem szégyenkezzünk, számít a gyorsaság. Másrészt már a könyv publikálásakor is feljövőben volt a sztochasztikus megközelítés amely mára az uralkodó paradigmává vált, így joggal kérhetjük ideális nyelvünktől hogy tegye könnyűvé életünk és támogassa a különböző statisztikai függvényeket (ne kelljen már annyit gépelnünk) és adatstruktúrákat.

A Python nyelv az eredeti nyolc pontból hét és félnek megfelel (lehet hogy egy csak az én személyes véleményem, de a 4. pontnak csak részben felel meg a pythonos lambdázás). A további két kritériumnak is megfeleltethetjük a kígyós nyelvet, de ehhez ki kell használnunk bővíthetőségét. A statisztikai elemzéshez és bonyolultabb adatstruktúrák létrehozásához szükségünk lehet a numpy/scipy csomagra, ezek használata kezdő kezekben bizony nagy teljesítmény csökkenéshez vezethet, nem beszélve hogy a nyelv "magján kívül" egy új csomagot kell elsajátítanunk.

Összegzés
Mind a Python, mind az nltk hasznos és sokoldalú eszközök, de dizájnjukból fakadóan nem felelnek meg az általunk felállított kritériumoknak. A következő részben végre rátérünk arra hogy az R miért is ideális nyelvészeti elemzésekre, de persze semmi sem tökéletes, az R-nek is vannak hátrányai!

2010. július 23.

Szógyakoriság vizualizáció Many Eyes használatával

Legelső szógyakorisági posztomban amúgy ránézésre fedeztük fel egy korpusz tartalmát előre elkészített szógyakorisági táblával. Majd pedig megnéztük hogyan készíthetünk egyszerűen egy gyakorisági táblát, és miképp tehetjük szebbé ábránkat. Ehhez minimális programozásra volt szükség, viszont kaptunk egy szép táblát amiből az IBM Many Eyes rendszerével interaktív vizualizációt készíthetünk könnyen, gyorsan, ingyen.

A program használata annyira egyszerű és magától érthető hogy nem kell magyarázni. Fontos hogy regisztrálnod kell hogy saját adatokat tölthess fel és adataid nyilvánosak lesznek (más is használhatja azokat saját vizualizációhoz) illetve kommentelhetővé válik munkád. Mivel egy kép gyakran többet ér bármennyi szónál, lássuk mit alkottam.