rumoreggiare
questo post sarà tecnico e noioso, ma ho voglia di scriverlo perché potrebbe preludere a qualcosa di buono e, soprattutto, perché il progetto prosegue anche se non vi tengo aggiornati.
sto parlando dell’impresona.
eravamo arrivati a questo punto: tutte le pagine di inserimento dati funzionano (e ci sarebbe mancato altro), ma il programma che semplifica la matrice dei testi etichettati dava dei problemi.
prima erano dovuti a moduli aggiuntivi di python non correttamente chiamati, adesso sono dovuti al fatto che la matrice ha determinante zero.
che cosa vuol dire?
il programma python prende una matrice (immaginate una serie di numeri disposti ordinatamente per riga e per colonna, come se si fosse preso il contenuto di una tabella omettendone tutte le etichette) e la semplifica. in questo modo ad ogni riga (ogni riga definisce un testo) corrispondano non i trenta e fischia valori delle etichette ma due soli valori che rappresentino i testi bene quanto gli altri (dovrebbe chiamarsi trasformazione lineare quella che preserva le informazioni importanti e i rapporti tra gli elementi di un insieme).
il procedimento è ovviamente abbastanza laborioso: comporta ad esempio il fatto che vengano individuate ed eliminate le etichette (le colonne della matrice) che non sono significative nell’insieme. seguono delle funzioni di riduzione della complessità che non conosco e non provo neanche a spiegare (ma sto imparando, piano piano…).
uno strumento che la statistica ha per semplificare una matrice è una funzione che viene chiamata determinante (per me i determinanti erano tutt’altra cosa: articoli e dismostrativi!); il determinante associa a una matrice uno scalare che ne mantenga alcune proprietà (realizza quindi l’omomorfismo della trasformazione lineare).
poiché la mia non è una matrice quadrata (e non lo sarà che quando ci sarà lo stesso numero di etichette e di testi etichettati), suppongo che il determinante venga applicato per piccoli pezzi della mia matrice che poi vengono moltiplicati (a quanto pare le matrici possono essere moltiplicate. dio salvi wikipedia italiana).
allora, il problema è che se la funzione determinante è uguale a zero (ma matrice viene in questi casi detta singolare) allora non è invertibile, non può essere moltiplicata. quindi va tutto a puttane (d’alto bordo. qui siamo sempre contro la prostituzione coatta).
ivan, che per l’impresona mi ha passato il programma python (che usa per lavoro, da quello che ho capito), stamattina mi ha chiamato e mi ha detto: io sono incasinato col lavoro, però forse puoi risolvere tu il problema: se il determinante è nullo probabilmente ci sono delle colonne identiche, ti basta inserire del rumore, in quantità tali da non influire sulla rappresentazione finale, ed è fatta.
abbiamo discusso sulla quantità di rumore (la mia scala va da +3 a -3, lui sostiene che un rumore casuale per ogni valore di ±0.5 non dovrebbe influire troppo) e adesso mi ci metto.
vediamo come va a finire.
aggiornamento.
non funziona un cazzo, ho provato anche con un rumore di ±10 ee continua a darmi errore. non riuscendo a rintracciare ivan sono andato a cercarmi informazionia partire dagli errori e ho scoperto che praticament ho degli autovalori (quindi gli scalari per i quali vengono moltiplicati i vettori della matrice ) negativi.
è semplicemente troppo difficile per me.
che fastidio, però, dipendere dagli altri…

~~~ GdR ~~~
bruno said,
Settembre 24, 2008 @ 14:57
Io questi post non riesco a leggerli, ma un giorno, se ti va ovviamente, perché non provi a spiegare in linguaggio terra terra cosa stai cercando di fare assieme a ’sto sig. python? :)
alladr said,
Settembre 25, 2008 @ 10:02
la mia spiegazione sarà parzialmente inefficace, perché non conosco abbastanza bene la materia, ma ci provo. e ti chiedo forfettariamente scusa se ripeto delle cose che potresti aver già letto in altri post qui su afanear ma per una spiegazione decente è opportuno avere anche una visione d’insieme.
uno degli argomenti ricorrenti su afanear è “cosa è il genere fantasy?”
la domanda sembra idiota, ma la risposta non è semplice come si potrebbe immaginare, se infatti la rispostà è qualcosa di simile a: quel genere nel quale ci sono maghi, magie e creature come i draghi e gli elfi e in cui non vengono fornite spiegazioni scientifiche per quello che accade, ci si trova nei guai nel momento in cui ci troviamo di fronte a cose come shadowrun (cyberpunk con la magia), i dragonieri di pern (astronavie draghi), spelljammer (astronavie magia) e, d’altro canto, ci troviamo di fronte ad analoghi problemi quando dobbiamo affrontare i racconti dell’investigatore di randall garrett (la magia è spiegata scientificamente, ma è magia, perdio) o anche solo ubiq (ma raramente dick spiega il funzionamento dei suoi dispositivi tecnologici: non è greg egan). e sono solo i primi esempi che mi vengono in mente (è mezzanotte, anche se pubblicherò domattina il commento).
visto che le mie origini sono di linguista, e i linguisti (computazionali in particolare) amano etichettare e contare, ho pensato di fare questo esperimento: prendere dei testi ed etichettarli sulla base di un certo set di parametri. per ogni parametro posso attribuire un valore, che può essere -3, -2, -1, 1, 2, 3 e alla fine avrò una rappresentazione di un qualsiasi testo per quei parametri. anche se è un argomento piuttostro importante, sorvoliamo sull’identità dei parametri, che dall’inizio dell’impresona sono cambiati e la cui nuova release verrà pubblicata ad impresona funzionante (insieme ai lai e alle implorazioni alle persone che già hanno etichettato per rietichettare con il nuovo tagset gli stessi testi).
il punto è: che me ne faccio di una tabella (matrice) piena di numeri (ogni testo ha oltre trenta parametri!)? non è evidentemente chiara, alla lettura. ho anche fatto esperimenti in questa direzioni, ma dagli esiti non osddisfacenti.
salta fuori che esistono delle tecniche squisitamente matematiche che permettono di semplificare la tabella, di trasformare i trentaepiù numeri che definiscono un testo in due soltanto. e, due numeri, io li posso usare per popolare un piano cartesiano.
la cosa interessante è che i due numeri, con qualche approssimazione, permettono di mantenere gli stessi rapporti reciproci (tra i numeri, ma anche tra i testi) dei trentaepiù che avevo prima. quindi due testi molto diversi rimarranno molto diversi (e molto lontani su un piano cartesiano), mentre due testi molto simili rimarranno molto simili e molto vicini sul piano cartesiano.
quel che voglio è esattamente questo: vedere se testi che ho sempre pensato come afferenti al genere fantasy stanno effettivamente vicini, e quanto.
12 e 34. adesso sono troppo stanco, nel dettaglio matematico entrerò più avanti.
buonanotte
bruno said,
Settembre 28, 2008 @ 16:03
Beh, io sono molto rudimentale, e penso semplicemente che se sembra fantasy, è fantasy…
admin said,
Settembre 29, 2008 @ 23:56
può andar bene, ma non è una definizione e non serve a niente. beninteso, anche per me è così, ma qusto modus operandi non può avere ovviamente un valore generale.
quel che mi chiedo io è invece non quale sia la definizione di fantasy ma proprio se sia possibile averne una. non una per me ma una per chiunque, una definizione in base alla quale si possa dire “in base a questo e a quest’altro parametro il tale testo è fantasy”. e per rispondermi, l’impresona è uno dei test che faccio. magari funziona, magari no.
ma se non vengo a capo dei problemi tecnici non lo saprò mai.
Federico Russo "Taotor" said,
Settembre 30, 2008 @ 21:17
Questo tuo metodo è identico a quello kantiano. :D