Setup Menus in Admin Panel

School.Dataninja.it

Trasformare l’homepage di un sito di news in una mappa interattiva

Da quando esistono i giornali, i toponimi sono un elemento molto caratterizzante di (quasi) qualsiasi articolo. Facciamone una mappa!

Introduzione

Da quando esistono i giornali, il toponimo è un elemento molto caratterizzante di (quasi) qualsiasi articolo. Quante volte la prima parola è proprio il nome della città in cui si svolgono i fatti narrati. Lo stesso si può dire per tutti gli altri mezzi di comunicazione di massa: il world wide web, la radio e ovviamente la televisione (“Qui Nuova York, vi parla Ruggero Orlando”).

Copenhagen, due attentati in poche ore”, “Sicilia. La Procura: fatte le valutazioni, domani si conoscerà il numero degli indagati”, “Balene, a centinaia, come ogni anno, tornano nella penisola di Samanà

Sapere dove si svolgono i fatti narrati in un articolo ne rafforza di molto la comprensione, perché ne definisce meglio il contesto. Leggere di un terremoto poco profondo nel deserto del Sahara, è cosa diversa da leggerne di uno a Città del Messico, così come un’invenzione tecnologica di successo a Carrapipi è per certi aspetti più “grande” di una omologa realizzata a Mountain View.

Ed ecco allora una ricetta per trasformare una pagina web di un giornale online in una mappa che illustri dove avvengono i fatti descritti, tramite un’analisi automatica del testo.

La pagina web

La pagina a cui applicare questa “trasformazione” potrebbe essere una qualunque. Si otterranno però risultati più efficaci e l’elaborazione sarà più semplice, con quelle pagine che fanno comunemente uso di nomi di luogo nei testi; ancora meglio se questi toponimi sono inseriti nella struttura della pagina, con uno schema predefinito (a inizio articolo, nel titolo, alla fine, ecc.).

Oggi (28-02-2015) l’homepage di Internazionale.it, ha entrambe queste caratteristiche: è composta da un elenco di notizie in cui è (quasi) sempre presente un toponimo (o più di 1), che è posizionato come tag sotto il testo di ogni notizia (vedi sotto).

01_intenazionale.png

L’analisi del testo verrà applicata proprio a questi tag, perché sono facilmente individuabili in termini di struttura, e perché (vedremo in seguito come) è facile filtrare soltanto quelle etichette che sono con certezza nomi di luogo. L’analisi automatica del testo “Trapani” potrebbe ad esempio produrre delle sorprese… 🙂

05_trapani.jpg

Analisi del testo ed estrazione coordinate con Yahoo! Pipes

Yahoo! Pipes è una “vecchia” (del 2007) e celebre web application per costruire mashup, a partire da analisi e aggregazione di pagine web, feed RSS, file, servizi, ecc..

È caratterizzata da un’interfaccia visuale per connettere sorgenti di dati, funzioni e output, tramite dei connettori, anzi tramite dei “tubi” (Pipes in inglese). Per utilizzarla è necessario registrarsi sul sito.

Nell’immagine di sotto c’è il cuore del processo che verrà realizzato: dà l’idea sia della semplicità d’uso, che della “forza” di questo prodotto.

06_pipes.png

Tre elementi principali:

  • una sorgente di dati – la pagina di internazionale – da cui estrarre i blocchi relativi alle notizie;
  • l’analisi delle etichette dei toponimi, per estrarre le informazioni geografiche;
  • l’assegnazione di queste informazioni a delle proprietà del nostro set di dati.

Se nel browser (nell’immagine di sotto Google Chrome) si fa click con il destro sul testo di una delle notizie e si sceglie “Ispeziona elemento”, si potrà definire l’espressione XPath, da usare per estrarre i soli blocchi di testo relativi alle notizie. Su XPath si rimanda a questo altro testo della dataninja school.

07_internazionale.png

Per estrarre tutti questi blocchi un’espressione che si può utilizzare è questa:

Si inizia dal creare un nuovo Pipe, e trascinare il modulo XPATH Fetch Page (un modulo è l’elemento funzionale minimo di Yahoo! Pipes) all’interno del pannello principale di Pipes. Come URL si dovrà inserire http://www.internazionale.it/ e come espressione XPath quella soprastante. Questo modulo è all’interno della raccolta “Sources”, visibile in alto nel pannello di sinistra.

Poi si trascina il modulo Loop, che si trova all’interno del gruppo denominato “Operators”. Una volta fatto, al suo interno si dovrà trascinare il modulo Location Builder presente nel gruppo “Location”. Questo modulo esaminerà il testo alla ricerca di “Location” (luoghi) a cui associare coordinate geografiche, e lo fare ciclicamente – in Loop – su tutte i blocchi di notizie estratti.

I moduli inseriti devono essere connessi tramite un “tubo” (vedi sotto).

08_pipes.png

Per il modulo Location Builder è necessario soltanto definire su quale parte di testo fare l’analisi. Per farlo 1) fare click prima sul modulo XPATH Fetch Page, visualizzare nel pannello sottostante gli elementi (ognuno è un item) di output del modulo, fare click sulla freccia grigia alla sinistra del primo (numerato con “0”), e 2) esplorarne la gerarchia interna, sino a individuare l’oggetto che contiene la stringa di testo con il nome del luogo.

09_pipes.png

In questo caso quindi sarà, in modo gerarchicamente decrescente da sinistra verso destra, item.div.div.1.ul.li.0.a.content e si dovrà inserire questa stringa nel campo del modulo Location Builder. L’elemento gerarchico iniziale è sempre “item”, e il carattere . è il separatore gerarchico.

Il modulo Loop farà questa operazione ciclicamente su tutti gli elementi filtrati e assegnerà l’output alla proprietà item.loop:locationbuilder. Se si fa click su questo modulo nel pannello centrale, e poi si esplora la gerarchia degli elementi, sarà visibile questa proprietà e sarà possibile apprezzare il risultato dell’analisi automatica eseguita: una coppia di coordinate associata al testo analizzato (“Russia” nell’immagine di sotto).

10_pipes

La parte realmente importante di tutto il processo descritto in questo  articola è questa di sopra. A seguire, in modo più sintetico, alcuni elementi più di rifinitura che si consiglia di applicare.

In ordine:

  • aggiungere il modulo Rename, e connetterlo a Loop, per rinominare semplicemente in “latitude” e “longitude” i nomi delle proprietà geografiche estratte (per esteso infatti hanno come nome cose come “item.item.loop:locationbuilder.lat”);
  • aggiungere il modulo Location Extractor, e connetterlo al precedente, per fare in modo che l’output finale di questo Pipe sia un GeoRSS;
  • aggiungere il modulo Create RSS, e connetterlo al precedente, per definire Titolo e URL degli elementi del GeoRSS che verrà creato;

11_pipes.png

  • aggiungere il modulo Filter, e connetterlo al precedente, per filtrare soltanto gli elementi che sono correlati a nomi di luogo, quelle per cui la proprietà item.div.div.1.ul.li.0.a.href contiene la stringa “paesi”;

12_pipes.png

  • e infine connettere al modulo di output il modulo precedente.

Il Pipe è stato così creato, definito e completato. Per visualizzarne l’output, il feed GeoRSS, bisognerà far click in alto a destra sul tasto “Save” e poi su “Run Pipe” in alto al centro. Qui una versione funzionante che è possibile clonare.

13_pipes.png

Per creare la mappa finale di output non resta che fare click con il destro su “Get as RSS” e poi su “Copia indirizzo link”.

Creare la mappa delle notizie con uMap

uMap è un’altra web application per creare mappe online. Si possono popolare disegnando elementi a schermo, o a partire da una sorgente esterna di dati. Tra quelle utilizzabili anche i feed GeoRSS. Nel filmato di sotto è illustrato come creare la mappa a partire da questi dati.

Da Palermo, Andrea Borruso 🙂

Letture: 204