- 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.
Fontos megjegyezni hogy nem kell feltétlenül gyakoriságitáblát feltöltened, elég egy sima szövegfájl, de szexibb ha van saját tábnlánk.
2010. július 19.
Scientific Approaches in Syntax: a synthesis of analogies
A guest post by Hannah Little
Introduction
I realised when writing this essay that it could be read in a couple of ways. Firstly it could be read as a (by now highly clichéd) anti-generative grammar rant, but I don't think that's necessarily what I was trying to achieve. The point of it was to try to argue for a much more scientific approach to syntax than has been done in recent years. I am not disputing either that many syntacticians are already stringent in this practice or that a scientific approach is impossible when approaching things as a generativist, far from that, but that certain considerations have to be made before continuing down the syntactic path.
I would also like to take the opportunity here to express that this is probably more aimed at undergraduates doing linguistics, this is partly because I don't want to patronise postgrads or postdocs because they know all of this stuff, but also because I haven't found a bachelor's degree in linguistics yet which isn't a BA and because of this the scientific methodology and philosophy is pretty thin on the ground, I'm pointing out here that it shouldn't be.
I'd also like to mention that whilst I put syntax in the title and all of the examples are syntactic there is no reason why the methods and phenomenon I've addressed here can be applied to other aspects of linguistics.
Physics Envy
A lot of Linguists, Chomsky among them, when trying to explain the phenomenon of principles and parameters explain it using the metaphor of a switch board, that is that there are a set of parameters in the head which are either switched on or off depending on what the language input is. The most cited example of this phenomenon is whether a language is left-headed or right-headed, the argument is that the switch could go one of two ways and depending on the language which is input the switch will be set to either left-headed (if you speak a language like Hungarian) or right-headed (if you speak a language like English). Now, anyone who's ever studied either English or Hungarian will know that it isn't that simple, there are hundreds of counter examples within a language with regards to head direction, this is why, to me, the switch board has always seemed like a pretty oversimplified analogy to use. For ages I was trying to come up with a better analogy and it was only when reading Richard Feynman's 'The Pleasure of Finding Things Out' (1999) that it suddenly came to me that a much better analogy is that of the game of chess, which is used within Feynman's book to explain our understanding of nature. He explains;
On way, that's kind of a fun analogy in trying to get some idea of what we're doing in trying to understand nature, is to imagine that the gods are playing some great game like chess, let's say, and you don't know the rules of the game, but you're allowed to look at the board, at least from time to time, in a little corner, perhaps, and from those observations you try to figure out what the rules of the game are. You might discover after a bit for example, that when there's only one bishop around on the board that the bishop maintains its square colour. Later on you might discover the law for the bishop as it moves on the diagonal which would explain the law that you understood before - that it maintained square colour- and that would be analogous to discovering one law and then finding a deeper understanding of it. Then things can happen, everything is going good, you've got all the laws, it looks very good, and then all of a sudden some strange phenomenon occurs in some corner, so you begin to investigate that - it's castling, something you didn't expect. We're always, by the way, in fundamental physics, always trying to investigate those things in which we don't understand the conclusions. After we've checked them enough, we're ok.
This to me reads very much like the search for the rules of Universal Grammar, the set of internal rules which explains all phenomenon in language. This is, for the most part, why syntactians have 'Physics Envy'. (I stole this term from Simon Kirby who claimed that whilst syntacticians had 'physics envy', him and other evolutionary linguists had 'biology envy'.)
The main point which I took from this was that it should be the anomalies, the things which don't fit the theory, which should be focused on. It seems to me within current papers in syntax the anomalies are vaguely explained away using external factors at best, or completely ignored at worst.
Andrew Carstairs-McCarthy wrote of this seeming parallel between the study of physics and the study of language in his book 'The Evolution of Morphology' (2010). He makes the point that:
It would help cosmologists tremendously if there were other universes that they could compare with this one. In the absence of such universes (or, at least, in the absence of any access to them), cosmologists have to adopt a different research strategy. They have to devise thought experiments, asking themselves: 'In order for as many as possible of the currently observed characteristics of the universe to fall neatly into place, what assumptions do we need to make about its origin and about fundamental laws governing it?'
-Andrew Carstairs-McCarthy (2010:3)
This again makes the point, perhaps more directly this time as it comes from a book written by a linguist about linguistics, the difficulties which linguists (and physicists) face. That is that there isn't alien languages out there which we can compare human language to, and that because of that strategies of abductive reasoning must be implemented as opposed to the traditional scientific approach of deductive reasoning;
Deductive reasoning
The most productive scientific approach in most fields and the one most people would assume you mean when the scientific method is mentioned is that of deductive reasoning. That is the following:
The hypothesis to be tested is p. The proposition p has a consequence the claim that if q is true, then r must be true too. Therefore in appropriate experiment conditions we arrange that q holds, and then check whether r holds also. If we observe r, then the experiment tends to confirm the hypothesis p, whereas if we observe not-r, the experiment disconfirms p.
This is the most often used method in syntax and its use can be summarized as follows: p is a hypothesized principle of universal grammar, q is a proposition that a set of items which contain that principle are candidates for sentencehood and r is a claim subject to the grammaticality judgments of native speakers. It is then possible to make the claim of if q and r then p is confirmed, or if q and not-r then p is disconfirmed. This form of reasoning within syntax is, for the most part, utilized well. What isn't done well is the willingness to drop the initial hypothesis if it is confirmed in one language and then, later, disconfirmed in another. Taking my example from earlier, it may be the case that within a verb final language adpositions are always realized to the right side of the noun (postpositions) and after confirming this with native speakers one could claim that the hypothesis that if verbs take a right headed position in a language then adpositions will take the same right-headed position. This is a very neat explanation for languages such as Hungarian which is verb final and for the most part uses postpositions. This hypothesis however might run into difficulties when one considers postpositions such as 'együtt' which can appear to the left or right of the noun it appears with.
(1) Boris-sal együtt
együtt Boris-sal
Boris-with together
“together with Boris”
Anomalies are then attributed to external factors such as emphasis or because unexplained syntactic phenomena. I'm guilty of this myself. Why is it such a stretch to pronounce a hypothesis disproved and come up with a better one? Is it because humans are haunted by the phenomenon known as confirmation bias (http://en.wikipedia.org/wiki/
Even worse than the pitfalls of confirmation bias is that of making the hypothesis fit the results. I here refer you to Ben Goldacre's Bad Science:
Here is an analogy. Imagine I am standing near a large wooden barn with an enormous machine gun. I place a blindfold over my eyes and, laughing maniacally, I fire off many thousands and thousands of bullets into the side of the barn. I then drop the gun, walk over to the wall, examine it closely for some time, all over, pacing up and down: I find one spot where there are three bullet holes close to each other, and then I draw a target around them, announcing proudly that I am an excellent marksman. You would, I think, disagree with both my methods and conclusions for that deduction.
- Ben Goldacre (2009:258)
The linguistic equivalent of this would be to find 2 postpositions in English (see below) and proclaim that all adpositions in English were right-headed.
- 2 miles away
- 2 years ago
This is a very transparent example and therefore no one would try to make this claim but the warning is there.
Abductive reasoning
Let us now turn to 'Abductive reasoning' or 'inference to the best explanation', as first put forward by the logician Charles Sanders Peirce;
The hypothesis to be tested is p, if p is true then, on the basis of the other well-established assumptions, we will expect to observe q, r, s, t ...as well. If p is false, there is no obvious connection between q, r, s, t... Yet q, r, s, t...are all true. The likelihood that p is true is therefore increased, inasmuch as it explains the otherwise apparently random coexistence of q, r, s, t....
This is the 'different research strategy' which Carstairs-McCarthy was referring to above and it is one which I believe is very underused with regards to syntax. This is because this approach is one which works on probability of a hypothesis being true rather than just declaring it true or false on an experiment by experiment basis. In order to implement this method though some assumptions need to be confirmed first using statistical analysis, for example, the connections between syntactic phenomenon such as headedness of adpositions and word order are currently, from what I have seen, a result of conjecture and anecdotal evidence.
Conclusion
We can't see the internal structure of language, just as we can't see the rules of chess in Feynman's example, but through observation of what is 'true', statistical analysis and using logically sound methods progress can be made and our 'physics envy' can be satisfied.
References
For a good example of abductive reasoning being used in linguistics see:
Carstairs-McCarthy, Andrew (2010) The Evolution of Morphology. OUP. Oxford.
For funny insightful philosophy of science stuff:
Feynman, Richard, P. (1999) The Pleasure of Finding things out. Perseus Books. New York City.
For an easy to read book about statistics, experiment design and the media's portrayal of science:
Goldacre, Ben (2009) Bad Science. Forth Estate. London.About the author
Hannah spent her formative years in Stockton-on-Tees in the North-East of England. She was a student at the University of York from 2007 -2010 studying for a BA in English Language and Linguistics, whilst there she completed a dissertation on Postpositions in Hungarian. She is starting an MSc in The Evolution of Language and Cognition at the University of Edinburgh in September (2010). She is 21 and a geek of the highest order.
2010. július 14.
Szógyakoriság ismét (de most saját fájlból, R használatával elemezve)
Eszközök
Egy szövegfájl Keressünk egy szövegfájlt az OSZK MEK honlapján. Válaszd a html formátumot.
HTML "kitisztító" html2text, ha Ubuntu, vagy Linux alapú oprendszered van akkor a szokásos módon telepítheted. Vagy választhatod a python alatt bármikor bárhol futtatható verziót is. Házi feladat, készíts a html fájlból egy "plain text" fájlt. A program man page-e talán segít.
Egy kész szövegfájl letölthető itt, ha lusta vagy (vagy valamiért nem tudod magad megcsinálni).
R Ha még nincs fent a gépeden, akkor telepítsd fel az R statisztikai programozási nyelvet.
A feladat
Arra vagyunk kíváncsiak hogy egy adott szó hányszor fordul elő a fájlban. Gondolkozz egy kicsit milyen problémákat vet ez fel. Mi az hogy szó? Mi neked egy szó és mi a számítógépnek? Mi nagyon egyszerű definíciót adunk itt, szónak egy olyan karaktersort tekintünk amit két nem-karakter között összefüggően fordul elő. Jó mi? (Kicsit gondolkozz el azon hogy ez mennyire jó meghatározás, hogyan kellene finomítani hogy megfeleljen a szó intuitív fogalmának) Elgondolkodtál? Akkor egy kicsit még maradjunk a témánál. Nyilván így egy halandzsa, vagy félreütött karaktersor is szó (pl asAnza), felmerül a kérdés hogy a "tó" "tavak" egy vagy két szó-e (nálunk kettő, mivel technikailag nagyon nehéz lenne morfológiailag elemezni). Mi van a mondat elején nagybetűvel kezdett "Asztal" és a csupa kisbetűs "asztal" esetében? Ezt könnyű megoldani, nem okoz gondot átalakítani a karaktereket. Nyilván figyelembe kell venni ezeket a kérdéseket. De ha eltekintünk ezektől, attól még egy becslést tehetünk.
Vágjunk bele!
Indítsd el az R-t abban a könyvtárban ahol a szövegfájlod található. Először olvassuk be a fájlt hogy tudjunk vele dolgozni.
> textfile<-scan(file.choose(), what="char", sep="\n", quote="", comment.char="")
Figyelem! Mac és Windows használók a file.choose() függvényt cseréljék ki choose,files() -ra.
Alakítsuk át a fájlt csupa kisbetűs karakterek sorává. (Ugye mondtam hogy egyszerű lesz, "Asztal"-ból, "asztal" lesz így)
> textfile<-tolower(textfile)
Abban maradtunk hogy "szónak egy olyan karaktersort tekintünk amit két nem-karakter között összefüggően fordul elő" . Ez R-ben:
> words.list<-strsplit(textfile, "\\W+")
Fent semmi mást nem tettünk mint a fájl tartalmát "feldaraboltuk" a "nem szó-karakterek" mentén. Ezt a \W+ reguláris kifejezéssel értük el (szabályos kifejezéseknek is hívják őket, ha angolul keresed regular expressions).
Egy kicsit bonyolítsuk a dolgot. Tudjuk az előző posztból hogy bizonyos szavak nagyon gyakoriak. Ezeket gyakran töltelékszavaknak hívjuk, vagy angolos szakzsargonnal stop words. Ha kiszűrjük ezeket a szavakat, akkor egy kicsit jobb képet kaphatunk hogy a normális szavak milyen gyakoriak (kontentívumok maradnak, mivel a legtöbb töltelékszó funktor). Tegyük ezt akkor! Először is egy listát készítünk ezekről a faramuci szavakról:
> stop.list<-c("a", "egy", "be", "ki", "le", "fel", "meg", "el", "át", "rá", "ide", "oda", "szét", "össze", "vissza", "de", "hát", "és", "vagy", "hogy", "van", "lesz", "volt", "csak", "nem", "igen", "mint", "én", "te", "ő", "mi", "ti", "ők", "ön", "ez", "az", "ha")
Alakítsuk egy kicsit át a beolvasott szövegfájlt:
> words.vector.h<-unlist(words.list)
Most már egy adat típusba tartozik a beolvasott szöveg és a töltelékszavak listája is, ki is szűrhetjük őket.
> words.vector<-words.vector.h[!(words.vector.h %in% stop.list)]
A következő lépésekben pedig elmentjük a gyakorisági táblázatot egy kimeneti fájlba.
> freq.list<-table(words.vector)
> sorted.freq.list<-sort(freq.list, decreasing=T)
> sorted.freq.list<-sorted.freq.list[sorted.freq.list>1]
> sorted.table<-paste(names(sorted.freq.list), sorted.freq.list, sep="\t")
> cat("WORD\tFREQ", sorted.table, file=file.choose(), sep="\n")
Bónusz gnuplot bütykölés
A gyakorisági adatokat csökkenő sorrendbe tettük és a csak egyszer előforduló elemeket is kiszűrtük (hogy nagyon okos legyél olvasd el mi az a hapax legomenon, na azé' szűrjük ki!). Most hogy elmentettük, gnuplot-tal az előző posztomban leírtak szerint készíthetsz egy szép ábrát hogy lásd arányaiban hányszor fordul elő egy-egy elem. Az enyém így néz ki.
Ha összeveted az előző ábrával láthatod hogy nincsenek kiugró vonalak (hapax legomena!). Nem is kezd olyan magas értéknél, de hát kisebb is a mintánk. A lényeg hogy szebb (lehet hogy csak nekem).
Ha érdekel akkor ezt olvasd
A poszt megírásához Stefan Th. Gries Quantitative Corpus Linguistics with R könyve adott inspirációt, a kódrészleteket pedig minimális változtatással vettem át.