să scriem împreună un generator de text markov (ii)

joi, 27 dec. 2012, 11:32

În cadrul articolului introductiv am prezentat pe scurt ideea de a implementa un generator de text Markov ca exercițiu pur didactic, am explicat câteva din conceptele teoretice fundamentale pe care se constituie aplicația și nu în ultimul rând am definit o structură de date în Haskell, structură care se mapează unu la unu pe cea a unui lanț Markov. Mai departe voi da un exemplu de construcție (non-algoritmică) a unui obiect de tipul Chain, după care vom porni spre a programa un simulator de procese Markov, definit printr-o interfață oarecare, fixă, interfață care la rândul ei se constituie pe baza unor funcții Haskell.

O primă și importantă funcționalitate a acestei interfețe o reprezintă aceea de construire a lanțurilor Markov. Modulul Data.Map oferă tot soiul de modalități de construire a dicționarelor, printre care inserarea, reuniunea etc. Dat fiind că în programarea funcțională cea mai naturală metodă de a reprezenta chestii este lista, noi vom defini o funcție fromList, care se va folosi de omoloaga din Data.Map pentru a construi lanțuri Markov din asocieri stare-listă (de tupluri stare-probabilitate):

fromList :: Ord a => [(a, [(a, Float)])] -> Chain a
fromList = M.fromList

(mai mult…)

relevanța științifică a wikipediei

luni, 24 dec. 2012, 14:08

Wikipedia e un proiect început în anul 2001 de către un individ pe nume Jimmy Wales. Misiunea site-ului s-ar putea spune că a fost și este de-a dreptul lăudabilă: crearea unui mediu online de informare pe orice subiect al cunoașterii, adică a unei enciclopedii online care în plus să fie liberă atât din punctul de vedere al accesului cât și din cel al adăugării și editării de conținut. Firește că acest deziderat nu este fezabil în practică, motiv pentru care Wikipedia nu este liberă în sensul absolut al cuvântului. Pe de o parte accesul la informație e limitat uneori de „nag screen”-uri, sau mai pe românește cerșeală de donații, și pe de altă parte nu oricine poate edita conținut și nu în orice condiții.

Motivul impunerii acestor ultime limitări este destul de simplu de intuit. Wikipedia a plecat inițial de la câteva presupuneri complet nerealiste. Una din ele este cea că atât cititorii cât și contribuitorii unui anumit subiect sunt interesați de subiect, mai exact în sensul deslușirii adevărului. Alta este aceea că contribuitorii vor stabili în mod implicit standarde înalte pentru calitatea conținutului. În fine, o altă presupunere falsă este cea că cititorii vor trata articolele Wikipediei similar cu cele ale oricărei enciclopedii, și anume doar în scop pur informativ.

Astfel, moderatorii enciclopediei s-au trezit în timp loviți de șocul unor contribuții de proastă calitate, al trolling-ului și al disputelor inutile, dat fiind că oamenii caută deseori doar adevărul care le reprezintă mai bine interesele. Întâmplările astea nu ar fi fost grave dacă Wikipedia nu ar fi devenit de-a lungul timpului o sursă foarte căutată de informare, iar dacă era doar o sursă de (pură) informare, totul era ok; prostia omenească a ajuns să se răsfrângă asupra mediului educațional și academic, unde Wikipedia e deseori folosită ca sursă absolută și unică de cunoștințe, în virtutea ușurinței regăsirii informației. (mai mult…)

interlude: noul site acs

Am observat mai deunăzi că site-ul Facultății de Automatică și Calculatoare a trecut printr-o schimbare la față. Schimbările țin mai mult de estetică decât de organizare, fapt util în special pentru studenții care ar putea fi ușor induși în confuzie de o eventuală restructurare [i]. Noul site ACS m-a lăsat cu următoarele comentarii:

  • Webmaster-ul a renunțat în sfârșit la Adobe Flash-ul ăla nenorocit, făcând site-ul o idee mai utilizabil. Drupal-ul pe care stă acum site-ul mi se pare greoi, însă „it just works”.
  • Site-ul nu are o variantă în limba engleză. ACS — care apropo, vine de la Automatics and Computer Science — nu are cum să fie o facultate de renume internațional fără un site în limba engleză.
  • Pagina cu direcții de cercetare nu include limbaje de programare, compilatoare și sisteme de operare. Asta e mai mult o problemă de-a mea proprie și personală, care nu știu cât de mult o să se schimbe în următorii cinci ani, dar e un factor decisiv în decizia mea de a continua sau nu relația cu facultatea.

Cam atât momentan.

  1. Ori mi se pare, ori site-urile universităților și ale facultăților sunt cumva în mod implicit greu de navigat. De puține ori mi s-a întâmplat să găsesc rapid informații de care aveam nevoie pe site-ul vreunei facultăți oarecare din lume, cu excepția notabilă a site-ului ACS, pe care îl folosesc doar ocazional, însă de ani de zile. []

să scriem împreună un generator de text markov (i)

sâmbătă, 15 dec. 2012, 15:29

Invit cititorul de Cărămizi să ia parte la o inițiativă

  • (a) destul de rar întâlnită pe blog-urile românești,
  • (b) pur didactică,
  • (c) destinată programatorilor amatori, profesioniști sau pur și simplu oamenilor cărora le place să-și folosească chestia aia dintre umeri, și nu în ultimul rând
  • (d) aparent inutilă.

De fapt punctul (d) e în mare parte fals; stând un pic și cugetând, realizez că ar fi foarte util să urmăriți tutorialul dacă doriți de exemplu să învățați Haskell sau să vă faceți o idee legată de analiză statistică și lanțuri Markov, sau pur și simplu dacă vreți să vă dezvoltați un generator de spam [i]. (mai mult…)

  1. Nu văd care-i problema. Scopul meu e acela de a le arăta oamenilor cum să folosească cuțitul, nu să le explic cum ar putea să-l vâre în alți indivizi. []

haken – visions (2011)

luni, 10 dec. 2012, 19:07

În urmă cu un an analizam proaspăt apărutul A Dramatic Turn of Events al celor de la Dream Theater, pe care din câte îmi amintesc l-am primit cu plăcere și l-am pus pe lista mea a albumelor nici prea-prea, nici foarte-foarte. Mărturisesc că după vreo două-trei luni de ascultare masivă, albumul cu pricina a rămas abandonat în colecția mea de muzici și nici nu simt momentan în vreun fel nevoia să îl reascult. Ăsta nu-i musai un semn rău; aștept cu interes următorul album Dream Theater, însă știu că o să prefer oricând un Scenes From a Memory unui Dramatic Turn of Events, pentru că na, cel dintâi mi-a rămas întipărit adânc în memorie, în timp ce din cel din urmă abia dacă am rămas cu câteva nume de melodii.

Într-o cu totul altă ordine de idei, acum destul de multe luni Andrei îmi povestea că e în căutare de rock progresiv ceva mai nou și mai agresiv, și că a dat peste unii, Haken. Primul rezultat al căutării pe Youtube a fost un clip conținând întreg albumul numit Visions, pe care l-am ascultat în treacăt de la un capăt la altul, rămânând cu o impresie similară cu cea dată de albumul Dream Theater de mai sus: oamenii clar fac o muzică mișto, însă ar părea că genul ăsta de metal progresiv începe să devină uzat. Pur întâmplător Visions a fost scos pe piață la nici o lună după A Dramatic Turn of Events, ceea ce ar putea justifica cu atât mai mult comparația între cele două.

Apoi am început să mă înteresez în legătură cu Haken, care se pare că sunt o trupă din Marea Britanie, formată din niște indivizi oarecare, șase la număr, într-o formulă destul de obișnuită pentru formațiile de metal progresiv: o baterie, un bas, o voce, o clapă, o chitară, plus un chitarist/clăpar pe nume Richard Henshall, care s-a ocupat de cea mai mare parte a compoziției albumului. Formația are la activ două albume, primul fiind Aquarius, urmat de Visions. Dacă cel dintâi album al formației n-a reușit încă să-mi provoace nici un fel de interes — în ciuda faptului că, la fel ca urmașul său, e un album-concept –, acesta din urmă mi-a captat încet-încet atenția, ajungând chiar să devină una din lucrările muzicale pe care le-aș asculta aproape oricând; „it grew on me”, vorba englezului. (mai mult…)