- Larry Gonick - Mark Wheelis: The Cartoon Guide to the Computer
- Harper Paperback, 1991
- 250 oldal
2010. december 31.
Könyvismertető: The Cartoon Guide to the Computer
2010. december 26.
Google Ngram Viewer - Mi a szösz az?
2010. december 22.
Könyvismertető: Statisztika és adatelemzés kezdőknek (Head First Statistics, Head First Data Analysis, Head First SQL)
2010. december 17.
Könyvismertető: Oakes; Statistics for Corpus Linguistics
- Michael P. Oakes: Statistics for Corpus Linguistics
- Edinburgh University Press 1998
- 272 oldal
2010. december 14.
Könyvismertető: McEnry - Wilson; Corpus Linguistics An Introduction
- Tony McEnry - Andrew Wilson: Corpus Linguistics An Introduction
- Edinburgh University Press 2001 (első kiadás 1996)
- honlap: http://www.lancs.ac.uk/fss/courses/ling/corpus/
- 235 oldal
2010. december 7.
Könyvismerető: Logicomix, logikai képregény kicsiknek és nagyoknak
- Logicomix : An Epic Search for Truth
- honlap: http://www.logicomix.com/
- Bloomsbury USA
- 352 oldal
2010. december 3.
Tudományfilozófia, gépi tanulás és nyelvészet - egy nem is annyira különös találkozás
2010. november 30.
Mire jó a digitális bölcsészet?
2010. november 26.
Könyvismertető - Szilágyi N. Sándor: Világunk, a nyelv
- 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
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
2010. november 19.
Kitchen Budapest: Technológiai és újmédia boszorkánykonyha - Interjú Bujdosó Attila koordinátor és internet-freak építésszel
2010. november 17.
Tudományfilozófia és szemantikus web
2010. november 16.
Work in progress poszt: A lean startup mint az adatvezérlet, kutatás orientált startupok vezérelve I.
2010. november 12.
Bohumil Hrabal szótára
2010. november 10.
Word Cram - an interview with its creator Dan Bernier
Játékelmélet és nyelvészet I.
2010. november 6.
Könyvismertető: A Semantic Web Primer
- 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
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. november 2.
On (Computational) Corpus Linguistics - an interview with Stefan Th. Gries
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
2010. október 19.
Kognitív metaforaelméletről röviden
2010. október 18.
Könyvismertető: Morville - Callender: Search Patterns
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
2010. október 12.
The life of a computational linguist II. - Interview with Oliver Mason
2010. október 8.
Data-Journalism: Hope for a future in a troubled profession - Interview with Mirko Lorenz
2010. október 4.
Mi is az a dinamikus episztemikus logika és mihez is kezdjünk vele?
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
2010. szeptember 28.
Könyvajánló: Logika és tudományelmélet mindenkinek
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
2010. szeptember 21.
Keresés természetes nyelven
A Kereső Világ blogon vendégposztoltam a fenti címen, az írást ide kattintva elolvashatod.
2010. szeptember 18.
Retro programozás
2010. szeptember 14.
Az adatok megmagyarázhatatlan természete
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
2010. szeptember 4.
Az adatok tudománya és a nyelvtudomány - olvasnivaló
2010. augusztus 29.
Ruby programozási nyelv
Könyvismertető: Meyer; English Corpus Linguistics
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
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
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
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
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
- 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.
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
- Az R nem egy egyszerű nyelv
- aki nem ismeri a lisp dialektusokat annak az R szintaxisa nagyon idegen lehet
- nehéz egyszerre statisztikát és R programozást tanulni
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.
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
- 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)
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:
- built-in support for lists
- automatic storage management
- dynamic typing
- first-class functions
- uniform syntax
- interactive environment
- extensibility
- history
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
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.
NLP meetup
2013 május 22 - Szezonzáró
CompLingLight
PRECOGNOX
Nyelv és Tudomány
Keresés ebben a blogban
Archives
-
►
2012
(114)
- ► szeptember (13)
-
►
2011
(160)
- ► szeptember (13)
-
▼
2010
(83)
-
▼
december
(7)
- Könyvismertető: The Cartoon Guide to the Computer
- Google Ngram Viewer - Mi a szösz az?
- Könyvismertető: Statisztika és adatelemzés kezdőkn...
- Könyvismertető: Oakes; Statistics for Corpus Lingu...
- Könyvismertető: McEnry - Wilson; Corpus Linguistic...
- Könyvismerető: Logicomix, logikai képregény kicsik...
- Tudományfilozófia, gépi tanulás és nyelvészet - eg...
-
►
november
(14)
- Mire jó a digitális bölcsészet?
- Könyvismertető - Szilágyi N. Sándor: Világunk, a n...
- Incanter, a statistical environment for Clojure - ...
- On Information Architecture - Interview with Dan Klyn
- Szöveges információk vizualizációja Gephi és az Al...
- Kitchen Budapest: Technológiai és újmédia boszorká...
- Tudományfilozófia és szemantikus web
- Work in progress poszt: A lean startup mint az ada...
- Bohumil Hrabal szótára
- Word Cram - an interview with its creator Dan Bernier
- Játékelmélet és nyelvészet I.
- Könyvismertető: A Semantic Web Primer
- The Digital Humanities: An Introduction for Techies
- On (Computational) Corpus Linguistics - an intervi...
-
►
október
(9)
- Matematika és logika nyelvészeknek
- Az adatok tudománya és nyelvészet - ismét
- Kognitív metaforaelméletről röviden
- Könyvismertető: Morville - Callender: Search Patterns
- The life of a computational linguist IV - intervie...
- The life of a computational linguist III. - Interv...
- The life of a computational linguist II. - Intervi...
- Data-Journalism: Hope for a future in a troubled p...
- Mi is az a dinamikus episztemikus logika és mihez ...
-
►
szeptember
(8)
- Wordle: a logónk története
- Könyvajánló: Logika és tudományelmélet mindenkinek
- The life of a computational linguist I - Interview...
- Keresés természetes nyelven
- Retro programozás
- Az adatok megmagyarázhatatlan természete
- A New York Times és a Guardian API-k használata
- Az adatok tudománya és a nyelvtudomány - olvasnivaló
-
▼
december
(7)
Zoltán Varjú Számítógépes nyelvészet című műve Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenc alatt van.
Based on a work at szamitogepesnyelveszet.blogspot.com.
Permissions beyond the scope of this license may be available at http://szamitogepesnyelveszet.blogspot.com/.