Web Scraping & Text Mining

In questo articolo introduciamo due parole chiave della ricerca 2.0: web scraping e text mining.

Che cos’è il web scraping? Con “web scraping (detto anche web harvesting o web data extraction) si intende una tecnica informatica di estrazione dati da un sito web per mezzo di programmi software”.

E il text mining? Text mining rinvia ad “una forma particolare di data mining nella quale i dati consistono in testi in lingua naturale, in altre parole, documenti destrutturati”. Mediante text mining i documenti testuali vengono processati con algoritmi di data mining per estrarre, analizzare e sintetizzare l’informazione contenuta. Chiaramente, i documenti analizzati possono essere quelli individuati sul web e scaricati mediante procedure informatizzate di web scraping.

Applicazioni

Le concrete applicazioni di queste tecniche nel campo della ricerca sociale, di mercato e della business intelligence sono moltissime. Una delle più note al grande pubblico riguarda probabilmente l’individuazione e download di grandi quantità di commenti da sottoporre a sentiment analysis, di cui abbiamo visto un esempio nel precedente post (in cui abbiamo analizzato il sentiment di 15.000 commenti in inglese al video YouTube del celebre discorso tenuto da Steve Jobs a Stanford).

Altre applicazioni possono essere legate al monitoraggio dei prezzi della concorrenza.

Variazioni nel sentiment medio annuale nei commenti al video del discorso tenuto da Steve Jobs a Stanford (guarda qui per approfondire)

Tool

Esistono molti servizi a pagamento che si occupano di web scraping, ma è anche possibile farlo da sé tramite svariati linguaggi di programmazione, tra cui R. In R esistono library molto interessanti progettate a questo scopo, come per esempio rvestUn tool interessante in versione freemium, invece, è import.io.

Questioni legali

Occorre fare attenzione a quanto si va scaricando. In effetti, la questione della legalità del web scraping è da tenere presente. I termini di servizio di numerosi siti proibiscono esplicitamente l’uso di procedure automatizzate di estrazione dati che, qualora attuate, possono portare al ban del proprio indirizzo IP o addirittura ad azioni legali. Fondamentale quindi leggere i ToS dei siti e adottare tutte le precauzioni, sia tecniche, atte a non sovraccaricare i server, sia etiche, volte a non violare le norme e a rispettare la privacy e la proprietà intellettuale.

I siti più grandi possono disporre di apposite API per accedere ai loro dati entro limiti consentiti e possono impiegare sistemi più e meno complessi per prevenire lo scaricamento di grandi quantità di dati con mezzi automatici. Per esempio, con R è possibile scaricare i tweet da Twitter accedendo all’API che mette a disposizione. Tra i mezzi per prevenire lo scaricamento automatico di dati, tutti avranno fatto conoscenza dei captcha che chiedono di svolgere alcune azioni per “dimostrare di non essere un robot”. Come spiegato su Wikipedia, Captcha significa completely automated public Turing test to tell computers and humans apart” (Test di Turing pubblico e completamente automatico per distinguere computer e umani) e riproduce foneticamente l’espressione colloquiale “Caught you!” (Ti ho beccato!).

I programmatori più esperti possono riuscire ad aggirare le limitazioni poste dai siti web, ma in questo caso i ToS non sono effettivamente rispettati, con tutte le possibili conseguenze del caso.

Web scraping e text mining degli annunci di lavoro

Mostriamo queste due tecniche all’opera in un piccolo ed elementare esempio. Il tutto viene svolto mediante linguaggio R. Chi volesse conoscere meglio le tecniche di web scraping e text mining tramite R può anche dare un’occhiata a questo libro: Automated Data Collection with R: A Practical Guide to Web Scraping and Text Mining. In rete si possono trovare numerosi titoli interessanti sul tema.

Scarichiamo e analizziamo gli annunci di lavoro relativi ad alcune figure professionali che nella moderna economia tecnologica e della conoscenza dovrebbero rappresentare dei capisaldi:  Web Analyst, Digital Analyst, Data Analyst ovvero esperti nell’analisi dei dati che, per esempio, si possono interfacciare con il reparto digital marketing per analizzare le performance delle campagne promozionali, dei siti web, dei negozi e-commerce, delle applicazioni, oppure analizzano i dati presenti nei database aziendali e così via. Per esplorare il mercato italiano relativo a queste figure professionali e le competenze richieste ho analizzato gli annunci pubblicati su un noto aggregatore di offerte di lavoro.

Nonostante l’importanza di queste figure professionali, gli annunci individuati sono soltanto una cinquantina, e questo forse ci dice qualcosa sul livello di sviluppo tecnologico del nostro paese. 

Gli annunci analizzati in via esplorativa sono annunci in lingua italiana che riportano le keywords Web Analyst, Digital Analyst e Data Analyst nel titolo. Per analizzare gli annunci ho adottato un semplice approccio basato sui dizionari. Ho compilato un dizionario di categorie composto da parole chiave rilevanti per questi settori professionali e quindi “misurato” per ogni annuncio la presenza di parole rientranti nelle diverse categorie del dizionario. Si tratta dello stesso approccio seguito in software noti, come per esempio LIWC.

Le competenze dell’analista

Tra le competenze più richieste emergono l’uso di software per l’analisi dei dati e di piattaforme per la Web Analytics (come Google Analytics e Adobe Marketing Cloud). Altra competenza ricorrente concerne i database relazionali.

Tra i software di data analysis più richiesti primeggia Excel, sfruttato nelle sue potenzialità più avanzate.

Tra i linguaggi informatici, ricorrono SQL e Java.

Considerata la dimestichezza richiesta con i numeri in questi lavori, le lauree più richieste sono di tipo tecnico-scientifico, come statistica e ingegneria.

Per alcuni profili la competenza analitica si interseca con la conoscenza di altri aspetti tecnici del marketing digitale come la SEO. L’esperienza richiesta, infine, varia anche a seconda delle responsabilità, ma è generalmente importante un qualche esperienza pregressa.

Per concludere, con R possiamo geolocalizzare gli annunci sulle mappe di Google e possiamo così constatare che la maggior parte delle offerte di lavoro è localizzata nel Nord Italia, Milano in particolare, con l’eccezione significativa di Roma. In altre parole, nelle capitali economiche della penisola.

Per concludere

Questo è solo un semplice esempio di come il web scraping e il text mining possano aiutare a sintetizzare ed estrarre informazione da grandi quantità di documenti che non sarebbero umanamente gestibili. Qui abbiamo trovato solo una cinquantina di annunci (che volendo avremmo potuto anche leggere… ma il tempo è poco e abbiamo anche altre cose da fare! 🙂 ) ma con le stesse tecniche si possono tranquillamente analizzare migliaia e migliaia di testi. Nel post dedicato alla sentiment analysis, per esempio, abbiamo avuto a che fare con circa 15.000 commenti. Leggerli tutti sarebbe stato impossibile. Le tecniche di text mining permettono di analizzare tutti questi testi. Qui abbiamo impiegato tecniche elementari ma esistono algoritmi molto più sofisticati che permettono la classificazione dei testi, l’estrazione dei loro temi, l’individuazione di parole chiave e di associazioni linguistiche. Se le tecniche di text mining permettono l’analisi dei testi, le tecniche di web scraping permettono di raccoglierli dal web. Si tratta di tool imprescindibili per la ricerca in un mondo 2.0.

CONDIVIDI :