Le parole della Costituzione Italiana

Alcuni giorni fa mi sono dilettato nel creare una word cloud con dei testi scritti in alcune e-mail da miei colleghi. In pratica si tratta di rappresentare graficamente la frequenza delle parole contenute in un testo, in modo che le parole più presenti (e quindi probabilmente più importanti) vengano rappresentate più “grandi”.

Alcuni colleghi si sono dimostrati interessati alla modalità di creazione della word cloud, così mi sono preso un po’ di tempo per creare questo piccolo esempio con un testo fondamentale per tutti noi: la Costituzione Italiana.

Word cloud Italia

Provo qui di seguito a spiegare nel dettaglio quanto fatto per ottenere il risultato visibile nell’immagine.

In rete ho trovato un paio di altri esempi simili:

 

Entrambi però non permettono di riprodurre pienamente i passi effettuati per creare l’immagine finale, nel primo caso perché non ci sono assolutamente informazioni a riguardo, nel secondo perché è stato utilizzato uno strumento web proprietario.

Per i curiosi, ma non interessati troppo ai “retroscena”, sul web sono presenti vari strumenti che permettono di creare cose simili, semplicemente copiando un testo nella pagina web, ad es. Wordle; oppure digitate “word cloud” su google e sbizzarritevi…

Per i più curiosi, continuo con il dietro le quinte…

Innanzitutto ho scaricato una versione ufficiale aggiornata della costituzione dal sito del Quirinale (http://www.quirinale.it/qrnw/statico/costituzione/pdf/costituzione.pdf).

Il file è un pdf, quindi ho dovuto convertirlo in formato testo e per questo scopo ho utilizzato il comando pdf2txt dal pacchetto PDFminer (per approfondire: https://github.com/euske/pdfminer/).

Per chi potesse interessare, ho caricato nel mio repository GitHub il file costituzione.txt per eventuali altri riusi.

Lo strumento principale usato è word_cloud, un generatore di word cloud creato da Andreas Mueller e scritto in linguaggio Python (l’unico che onestamente conosco un po’…).

Nella sua modalità più semplice, richiede un testo in input, alcuni parametri opzionali, e permette di creare un’immagine come la seguente:

Word cloud semplice

Per dare invece la forma dell’Italia, bisogna utilizzare un’immagine maschera, nella quale “inserire” le parole, che in questo caso ho scaricato da qui http://ita24.it/wp-content/uploads/2012/03/cartina-muta.jpg e poi mofificato in un’immagine con l’Italia “nera” ed il resto trasparente:

 cartina-muta1Il risultato utilizzando il file di testo della costituzione così com’è sarebbe però stato assai meno interessante:

costituzione_bad

Nell’immagine infatti le parole più rappresentate sono articoli, congiunzioni e altre parole non “interessanti”.

Ho dovuto dunque ripulire il file di testo da queste parole prima di poter produrre il risultato finale.

Per l’elaborazione del tutto ho utilizzato Jupyter, un altro strumento scritto in Python, che permette non solo di scrivere e testare codice in modo semplice e interattivo, ma anche di condividerlo facilmente.

Al seguente link potete infatti vedere il notebook python completo che contiene tutto il codice usato: https://github.com/alesarrett/CostituzioneItaliana/blob/master/WordCloud_Costituzione.ipynb

Il codice non è sicuramente scritto e commentato bene né ottimizzato, né la “pulitura” del testo fatta con attenzione, ma se vi è utile o avete consigli o voglia di migliorarlo o riutilizzarlo, non fatevi scrupoli e andate sul repository GitHub dove ho caricato tutto il necessario: https://github.com/alesarrett/CostituzioneItaliana

Annunci

4 pensieri su “Le parole della Costituzione Italiana

    • Grazie Andrea, era stata la prima scelta, ma mi sembrava non andasse, quindi avevo optato per una soluzione alternativa. Ora vedo che va, quindi ho aggiornato! 🙂

    • Ebbbravo il Napo! 🙂
      Ero sicuro dovesse esserci qualcosa del genere in Python ma non l’avevo trovato!
      Testato, mi ha tolto un altro centinaio di parole.
      Poi aggiornerò codice e testo del blog, grazie!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...