La figa è di sinistra. Dimostriamolo.
Per prima cosa installiamo un po' di intelligenza artificiale: apt-get install crm115
.
Poi scriviamo due scriptini: uno per classificare:
1 2 3 4 5 6 7 8 9 |
|
...e uno per imparare:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Poi creiamo i due file con le categorie:
cssutil -b -r destra.css
cssutil -b -r sinistra.css
Scarichiamo un po' di dati per imparare la differenza tra destra e sinistra:
lynx -dump http://www.ilrestodelcarlino.it > carlino.txt
lynx -dump http://www.repubblica.it > repubblica.txt
lynx -dump http://www.corriere.it > corriere.txt
lynx -dump http://www.ilgiornale.it/ > giornale.txt
lynx -dump http://www.unita.it/index.asp?sezione_cod=HP > unita.txt
lynx -dump http://www.ilmanifesto.it > manifesto.txt
lynx -dump http://www.lastampa.it/redazione/default.asp > stampa.txt
lynx -dump http://www.liberazione.it/ > liberazione.txt
lynx -dump http://www.marxismo.net/ > marxismo.txt
Uno script per vedere quanto impara:
1 2 3 4 5 6 |
|
Poi vediamo:
./view -> Tutto di destra
./learn.crm --cat=sinistra.css < repubblica.txt
./view -> Tutto di sinistra
./learn.crm --cat=destra.css < carlino.txt
# Si ripete (ometto i view, faccio learn sui soli errori, riporto solo la
# sequenza dei learn)
./learn.crm --cat=sinistra.css < liberazione.txt
./learn.crm --cat=destra.css < giornale.txt
./learn.crm --cat=sinistra.css < manifesto.txt
./learn.crm --cat=destra.css < corriere.txt
./learn.crm --cat=sinistra.css < unita.txt
# Ora è bravo. Da notare che non ha avuto bisogno di training per
# marxismo.txt e stampa.txt
Possiamo chiedergli anche quanta differenza c'è tra destra e sinistra:
$ cssdiff destra.css sinistra.css
Sparse spectra file destra.css has 1048577 bins total
Sparse spectra file sinistra.css has 1048577 bins total
File 1 total features : 139728
File 2 total features : 103392
Similarities between files : 5890
Differences between files : 123769
File 1 dominates file 2 : 133838
File 2 dominates file 1 : 97502
Sono molto di piú le differenze delle similarità. Strano: in Italia mi aspettavo il contrario.
Mettiamo alla prova la nostra intelligenza artificiale:
$ lynx -dump http://www.mariuana.it/ > maria
$ ./class.crm < maria
CLASSIFY succeeds; success probability: 1.0000 pR: 306.6527
Best match to file #1 (sinistra.css) prob: 0.7746 pR: 0.5361
Total features in input file: 178
#0 (destra.css): features: 139728, hits: 2323, prob: 2.25e-01, pR: -0.54
#1 (sinistra.css): features: 103392, hits: 2070, prob: 7.75e-01, pR: 0.54
$ lynx -dump http://spazioinwind.libero.it/gastroepato/cocaina.htm > coca
$ ./class.crm < coca
CLASSIFY succeeds; success probability: 1.0000 pR: 306.6527
Best match to file #0 (destra.css) prob: 0.5691 pR: 0.1208
Total features in input file: 17775
#0 (destra.css): features: 139728, hits: 23679, prob: 5.69e-01, pR: 0.12
#1 (sinistra.css): features: 103392, hits: 21597, prob: 4.31e-01, pR: -0.12
La cocaina è di destra e la mariuana e di sinistra: lo sanno tutti, e infatti lo sa anche crm.
È giunta finalmente ora di risolvere il grande quesito:
# Ma la figa, è di sinistra?
$ lynx -dump http://www.figa.it/figa_1.html > figa
$ ./class.crm < figa
CLASSIFY succeeds; success probability: 1.0000 pR: 306.6527
Best match to file #1 (sinistra.css) prob: 0.9993 pR: 3.1273
Total features in input file: 2408
#0 (destra.css): features: 139728, hits: 16334, prob: 7.45e-04, pR: -3.13
#1 (sinistra.css): features: 103392, hits: 12168, prob: 9.99e-01, pR: 3.13
E vai! L'avevo sempre immaginato, ma ora ne ho avuto la conferma! :)