úterý 18. prosince 2012

Jazyk a stroj 1

Chci vytvořit nějakou jednoduchou matematickou strukturu, která bude obsahovat nějakou užitečnou informaci o přirozeném jazyce. Tuto strukturu chci získat automaticky pokud možno bez toho, abych stroji příliš napovídal jak má struktura vypadat. První pokus jsem udělal takto: Vzal jsem několik gigabytů textu a našel jsem dvojce slov, které mají alespoň padesát stejných kontextů. Kontext je slovo nalevo a slovo napravo. Tak se najdou slova, která mají něco společného. Z těchto dvojic jsem dále vyškrtal ty dvojice, které obsahují slovo, které je ve více jak deseti dvojicích. Tak se odstraní slova, které se všude jen motají a nic užitečného neříkají. Výsledek jsem dal do grafu. Texty byly z internetu. Do češtiny se připletlo dost anglických textů, ale anglická slova si povídají jen sami mezi sebou a mezi česká slova se nepletou. Překvapilo mě, že i takhle jednoduchý algoritmus na takhle "nečistých" datech může udělat docela plantou práci. Je však potřeba vytvořit něco úctyhodnějšího, a proto bude mít tento příspěvek pokračování. Cizím nápadům a připomínkám je nebráním, takže přemýšlejte, co by se dalo udělat.

pondělí 10. prosince 2012

Miroslav Petříček uvažuje o matematice (a jednom matematikovi)

Líbí se mi, když někdo dovede říci něco nápaditějšího než "matematika je pro život užitečná, protože učí logickému myšlení". A ještě víc se mi líbí, když to někdo napíše do kulturní revue. Celé je to tady, takže jsem vybral jen pár slov.

Jednoduchá otázka dokáže rozbít pečlivě vybudovanou logickou stavbu, protože ta dosud jen předstírala, že stojí na solidních pilířích. Ale ty tam nejsou, nikdy nebyly a ani být nemohly. Matematika ukazuje problémy na rubu jistot. V rukou vystudovaného matematika, který pochopil, proč byla vynalezena, přesně ukazuje, co je na jistotách nepřesného. (...) hloupost se rodí z všeobecné shody, která si libuje v nepřesnostech. Zdánlivě naivní tázání tuto hloupost demaskuje a brání jejímu bujení.
Miroslav Petříček - O matematice

pátek 16. listopadu 2012

Poe a Turek

V roce 1838 napsal Poe úvahu o tom, proč je známý automat hrající šachy podvod, tj. není to automat, ale skříň ukrývající člověka.

The Automaton does not invariably win the game. Were the machine a pure machine this would not be the case – it would always win.
Edgar Allan Poe - Maelzel's Chess-Player

Celé je to tady. Poe sice nebyl technik, ale jistě ani úplný prosťáček. Co se muselo stát s obecnou představou stroje, aby každý nahlédl nesmyslnost takovéhoto argumentu?

pondělí 8. října 2012

Keltský soumrak

Naštěstí není problém sehnat tuto bibli keltofilů v originále a legálně zadarmo zde. Sehnat si český překlad i za peníze už snadné a možná ani možné není. Snad jen v knihovnách, ale tuhle útlou knížku musí člověk prostě mít. Naštěstí se tato více než sto let stará angličtina čte docela dobře. Posuďte sami:

I will not of a certainty believe that there is nothing in the sunset, where our forefathers imagined the dead following their shepherd the sun, or nothing but some vague presence as little moving as nothing. If beauty is not a gateway out of the net we were taken in at our birth, it will not long be beauty, and we will find it better to sit at home by the fire and fatten a lazy body or to run hither and thither in some foolish sport than to look at the finest show that light and shadow ever made among green leaves.
William Butler Yeats - The Celtic Twilight

pátek 28. září 2012

iPod Scrobbling – DIY

Pokud vlastníte naprosto nescrobblovatelný iPod a nechcete ho „opravit“ tím, že smažete celou knihovnu i se všemi statistikami přehrávání jak bývá často doporučováno, pak zbývá ještě zkusit ho scrobblovat vlastním skriptem. Zbytek příspěvku je tedy jen pro ty, co vědí co je iPod, scrobbling a jazyk python.

Získání statistik z iPodu

iPod má všechny statistiky v iTunesDB. Zkoušel jsem pro to hledat funkční parser, ale nenašel jsem. Nechce se mi ho programovat, stejně Apple každou chvíli změní formát. Vytáhl jsem tedy statistiky jinak. První krok je editace obsahu iPodu v iTunes. Důležité je vybrat jen sloupce Název, Interpret, Album, Přehrání, Datum přehrání a Čas. Stačí teď jen vybrat položky s nejméně jedním přehráním. (Jde to, pokud si je podle počtu přehrání seřadíte.) Obrázek přikládám. Pak je nutné zvolit „menu/úpravy/kopírovat“ a v nějakém editoru výsledek vložit do textového souboru. Netřeba snad zdůrazňovat, že je nutné dát si pozor na kódování češtiny. Výsledek by měl být v cp1250. Notepad nemá žádný problém.


Scrobbling

Knihovnu pro scobblování v pythonu napsal uživatel andy.theyers a je celá v souboru audioscrobbler.py. Můžete si napřed vyzkoušet, jak funguje: 

# -*- coding: cp1250 -*- 

from audioscrobbler import AudioScrobblerPost

track = {
  "artist_name": "Karel Kryl",
  "song_title": "Bratříčku zavírej vrátka",
  "length": 291,
  "date_played": "2012-09-27 16:20:00", 
  "album": "Bratříčku zavírej vrátka",
  "mbid": "",
}

post = AudioScrobblerPost(username = "username", password = "password")
post(**track)

Statistiky z iPodu jsou nyní uloženy. Problém je se nahrávkami, které mají víc jak jedno přehrání. U těchto nahrávek předpokládám jedno přehrání za týden. To je sice hrubá aproximace, ale nic lepšího nevymyslím. Důležité upozornění: předpokládám český formát dat, tj. den.měsíc.rok. Pozor: na správné scrobblování máte jen jeden pokus. Skript je proto nutné nejdříve řádně odladit. Příkaz na skrobblování je pro jistotu zakomentován.

# -*- coding: cp1250 -*- 

import re
from audioscrobbler import AudioScrobblerPost

def aWeekAgo(y, m, d):
  ms = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
  if (y - (2012 - 40)) % 4 == 0:
    ms[2] = 29 
  d = d - 7
  if d < 1:
    m = m - 1
    if m < 1:
      m = 12
      y = y - 1
    d = ms[m] + d
  return (y, m, d)

fname = "forScrobbling"
f = open(fname)
post = AudioScrobblerPost(username = "username", password = "password")
for line in f:
  [title, interpret, album, N, datetime, time] = line.strip().split('\t')
  [d, m, y, h, min] = re.split(r"[ :\.]", datetime)
  [tmin, tsec] = time.split(":")
  N = int(N)
  d = int(d)
  m = int(m)
  y = int(y)
  h = int(h)
  min = int(min)
  length = 60 * int(tmin) + int(tsec)
  for i in range(N):
    date_played = "%d-%02d-%02d %d:%02d:%02d" % (y, m, d, h, min, 0)
    print
    print "       title =", title
    print "   interpret =", interpret
    print "       album =", album
    print " date_played =", date_played
    print "      length =", length
    #post(artist_name = interpret, song_title = title, length = length, date_played = date_played, album = album, mbid = "")
    (y, m, d) = aWeekAgo(y, m, d)
f.close()

Pokud skript proběhne v pořádku a jste s tím, co píše do konzole spokojeni, můžete odkomentovat řádku, na které se provádí scrobbling. Nakonec nesmíte zapomenout v iTunes vynulovat statistiky přehrání a raději smažte scrobblované statistiky. Celé je to, přiznávám, drbání se levou rukou za pravým uchem, ale až bude zase nějaký volný čas, zapracuji na nějakém systémovějším řešení.

čtvrtek 20. září 2012

Roger Miller: King of the Road – Bass Tab

Kdo jako já neumí na baskytaru a může zkusit jen ty nejjednodušší věci, tady najde inspiraci. (Pochopitelně vím, že v originále se to hraje na kontrabas.) Tabulaturu jsem psal přímo z nahrávky, takže pozor na chyby. Délky jsem se neobtěžoval zapisovat. Je to jenom úvod, protože při zpěvu a hře ostatních nástrojů basu moc neslyším, ale docela se to tam opakuje s výjimkou refrénu, který je harmonicky trochu jinde.

G------------------------0-3-0---------------------------------
D--3-5-3-0-------0---0-1-------1-2-3-2-3-2-3-3-1-1-------------
A----------1-0-1---1-------------------------------3-3-----0-1-
E------------------------------------------------------1-3-----

úterý 28. srpna 2012

Frege o vyprázdněném formalismu

Vykřičníky v textech matematiků bývají pouze symboly za faktoriál. Ne tak v přiložené ukázce. Ale když uvážím, že se jedná o obdobu sporu o realismus, tak ty vykřičníky zas tak nepřekvapují.

Mezi dosud známými čísly neexistuje žádné, které splňuje obě rovnice: x + 1 = 2 a x+ 2 = 1, nic nám však nebrání zavést znak, který tuto úlohu řeší. Řekne se: tato úloha přece obsahuje spor. Ovšem pokud jako řešení vyžadujeme reálné nebo obyčejné komplexní číslo. Rozšíříme-li však náš systém čísel, stvoříme přece čísla, která tomuto požadavku vyhovují! Vyčkejme, až nám někdo prokáže spor! Kdo může vědět, co je u těchto nových čísel možné? Jednoznačnost odečítání ovšem nezachováme, ale museli jsme se přeci vzdát i jednoznačnosti odmocňování, když jsme chtěli zavést záporná čísla. Komplexními čísly se stalo víceznačné i logaritmování. Stvořme čísla, která dovolí sečítat divergující řady! Ne! Ani matematik si nemůže stvořit něco libovolně, tak jako to nemůže geograf. I on může objevovat jen to co je, a pojmenovat to.
Gotlob Frege – Základy aritmetiky

pondělí 23. července 2012

Tuhý život pověr.

Jsem optimista, a proto si myslím, že přirozený sklon lidí nenávidět odlišnosti jiných lidí a přisuzovat jim i ty nejnesmyslnější odpornosti se dá zvrátit. Takto to před dvěma tisíci lety vypadalo, když se o onen zvrat dějepisec Apión nesnažil:

Později slyšel od sluhů, kteří k němu docházeli a jichž se vyptával, o hrozném zákonu Židů, podle kterého ho vykrmovali. Tak v určené době postupují každý rok. Tehdy zajmou nějakého Řeka, který jejich zemi cestuje, pak ho po celý rok vykrmují, nakonec ho odvedou do nějakého lesa a zabijí ho. Pak obětují jeho tělo podle svých rituálů, snědí kousek z jeho vnitřností a při oběti přísahají, že zůstanou nepřáteli Řeků. Zbylé ostatky toho člověka pak odhodí do nějaké jámy.
Josephus Flavius – O starobylosti Židů

Neřekl bych, že právě popsaná pověra je tradice sahající až do starověkého Řecka. To jsme si jen zopakovali kus historie zcela sami. George Santayana měl asi pravdu.

úterý 3. července 2012

Russell o vědě a o přesnosti matematiky

Tohle se hodí spíše do sbírky citátů než k hlubšímu zamyšlení.

Jste-li špatným střelcem, pak se stejně netrefíte do středu terče, máte však přesto více šancí trefit se do středu než do jakéhokoliv jiného místa. Podobně také hypotéza vědce, i když nemusí být vždy zcela pravdivá, má přece jen více šancí na to, aby byla pravdivá než jakýkoli předpoklad, který byl vysloven člověkem, který se nezabývá vědou.
Bertrand Russell - Zkoumání o smyslu a pravdivosti

Tohle jedny lidi trápí a jiné zase rozčiluje to, že to ty první trápí. Jen utéci tomu asi nelze.

Tento problém přesnosti matematiky a nepřesnosti smyslů je dávným problémem, který Platón řešil pomocí fantastické hypothésy o rozpomínání se. V novějších dobách se podobně jako na jiné neřešené problémy na tento problém zapomnělo, protože jsem se s ním sžili, podobně jako je tomu se zápachem, který si neuvědomíme, protože jsme v něm tak dlouho žili. Je jasné, že mí-li být geometrie použita na smyslový svět, musíme také být s to nalézt definici bodů, přímek, ploch atd. v termínech smyslových dat nebo jinak musíme být schopni vyvodit ze smyslových dat existenci nevnímatelný entit, které mají ty vlastnosti, které potřebuje geometrie.
Bertrand Russell - Zkoumání o smyslu a pravdivosti

pondělí 2. července 2012

Pohodové čtení na léto

Podivné vydavatelství Pragma se mj. zabývá vydáváním knih o tom, jak opravdu hodně zbohatnout. A některé z těch knih budou jistě užitečné, protože není až tak velký problém vydělat hodně peněz, když jediným cílem nějakého člověka je vydělat hodně peněz. Steve Wozniak naštěstí mezi takovéto lidi nepatřil, a proto je jeho životopis nazvaný iWoz docela podnětný. V mnohém doplňuje nedávno vydaný životopis Steveho Jobse. Kniha iWoz vydala Pragma v českém překladu. Protože účel četby není kritizovat překladatele, řeknu jen, že pokud můžete, přečtěte si knihu v anglickém originále, a pokud nemůžete, berte způsob překladu s humorem.

Hlavní část knihy je o historii vzniku osobního počítače a o klíčové úloze Steveho Wozniaka. Jistěže Woz počítač nevymyslel, ale byl to on, kdo stál u toho, kdy myšlenka stroje, který nedělá nic konkrétního, ale je jakousi nádobou na data a znalosti, pronikla z vědeckých kruhů mezi schopné techniky jako byl a je Woz. Koneckonců, kniha prozrazuje, že touhou lidí v začátcích počítačů nebylo mít nějaký užitečný stroj, ale mít počítač. To ostatní přišlo až pak. Dnes myšlenka počítače vypadá samozřejmě a téměř prostě, ale to je omyl. Zásluhou knih jako je iWoz si lze připomenout, jak geniální a nesamozřejmý tah to v sedmdesátých letech byl. Ačkoli je kniha iWoz často hodně subjektivní, nepřesná a leccos opomíjí, přeci je cenným dílem skládačky dějin výpočetní techniky, které na své velké historiky teprve čekají. Lehkou práci mít nebudou.

pondělí 25. června 2012

Střet civilizací

(...) I když byli tehdy Římané nepochybně poraženi a jejich vojenská zdatnost byla otřesena, dokázali na základě zvláštního uspořádání své ústavy a důsledného jednání nejen obnovit svou nadvládu v Itálii, když pak nad Kartágiňany zvítězili, nýbrž za krátký čas ovládli celý svět.
Polybios – Dějiny III.

Podobnost lze nalézt ve všem, třeba i mezi slimákem a čajovou konvicí. Hodně bych se proto bránil třeba srovnání Hannibalova vpádu a 9/11. To ponechám „rozmáchlejším“ duchům. Ale střet mocností a očekávání změny podoby světa, ke které skutečně došlo, může i dnes být podnětná.

Každému, kdo se jen trochu zajímá o veřejné záležitosti, je přece již zřejmé, že – ať ve válce zvítězí Kartágiňané nad Římany, nebo Římané nad Kartágiňany – vítězové se v žádném případě nespokojí s vládou nad Itálií a Sicílií, nýbrž přijdou a nebývalou měrou rozvinou své útočné síly.
Polybios – Dějiny V.

neděle 27. května 2012

Lze se spokojit s Cantorovskou představou kontinua?

Těm, kdo stále cítí afinitu vůči Cantorovu způsobu myšlení, by mohl otevří oči následující příměr. Stejně jako definoval Cantor reálné číslo jako libovolnou (Cauchyho) posloupnost, mohli Řekové definovat reálné číslo jako bod přímky konstruovatelné libovolnými prostředky nebo mohl Gödel říci, že dokazatelné je vše, co je pravdivé. Tím by slavné problémy jako kvadratura kruhu, úplná axiomatizovatelnost aritmetiky nebo „Entscheidungsproblem“ jednoduše zmizely. Již Archimédes byl totiž schopen ke kruhu daného průměru zkonstruovat odpovídající jeho obvodu a jsem přesvědčen, že když vám dám formuli predikátové logiky prvního řádu, budete – při odpovídajícím vzdělání – v konečně mnoha krocích rozhodnout, zda se jedná o tautologii, nebo ne. (...) Co se týče diagonálního argumentu, obecný závěr, předvedený již Wittgensteinem, je relativně přímý: je nevhodné a matoucí říkat, že existuje více reálných čísel než přirozených, když jediné, co de facto máme v ruce, je postřeh, že jsou jejich jména užívána různě. Tento vhled se bezesporu skrývá i za Brouwerovým raným rozhodnutím specifikovat kontinuum jako spočetně nedokončené v tom smyslu, že pod hrozbou paradoxu nemůže tvořit uzavřenou schematicky danou totalitu.
Vojtěch Kolman – Idea, číslo, pravidlo

středa 23. května 2012

Pozice matematiky

Zabývá-li se filosofie ve Wittgensteinově a obecně v analytické koncepci jazykem, nedělá ji to ještě lingvistikou. K té se má podobně jako medicína k anatomii, tj. mají sice stejný předmět (jazyk, resp. lidské tělo), ale řešení filosofických stejně jako lékařských problémů nespočívá v tom, že vysvětlí, jak to ve skutečnosti je, ale tím, že se vyléčí, nechají zmizet. To činí filosofii bytostně nevědeckou, nezvědavou, nerozšiřující naše poznání. Specifická role matematiky v prostoru mezi filosofií a empirickou vědou spočívá v tom, že žije v jakémsi mezisvětí, tj. má sice konkrétní předmět jako ostatní vědy (čísla, obrazce atd.), tento předmět ale není jednoduše vykazatelný v prostoru běžné zkušenosti, i když v něm nachází nezpochybnitelné aplikace. To ji činí mimořádně atraktivní jako cvičný materiál pro ty, kdo se chtějí stát filosofy, a proto je také výuka matematiky Platónem metodicky řazena před zvládnutí filosofické dialektiky.
Vojtěch Kolman – Idea, číslo, pravidlo