sentiment analysis

Post on 16-Jan-2017

65 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Twitter Sentimental Analysis

Pagliaro Alessandro

Elezioni Comunali Napoli 2016

Sentiment Analysis Workflow

Per scaricare i tweet in maniera “legale” è possibile utilizzare 3 tipologie di API, attraverso chiavi generate durante la registazione a Twitter secondo il protocollo OAuth.Rest API : permettono di ricavare informazioni sul proprio profilo (tweets, followers, info account ) senza alcuna limitazione temporale.Search API : permettono di cercare qualsiasi tweet con limiti nell’indicizzazione (circa 7 giorni).Streaming API : mi permettono di collezionare tutti i tweet che vengono postati in tempo reale.

About Twitter

Tweepy è una liberia Python appositamente per le API di Twitter

Sorgente 1 : Search API

Le Twitter API ufficiali non permettono di accedere a tweets più vecchi di circa una settimana. Alcuni tools forniti da terze parti permettono di accedere all’indicizzazione completa di Twitter (Gnip) ma richiedono dei costi proporzionati al numero di tweets da scaricare. Per evitare tutte queste limitazioni è stato usato un crawler. Questo programma si basa sulla normale ricerca che è possibile fare attraverso la Twitter Search da browser, infatti, specificando una ricerca e facendo lo scroll della pagine un JSON provider genera tutti i tweet secondo il loro ordine di pubblicazione senza alcuna limitazione temporale.

Sorgente 2 : Twitter Crawler

Query per hashtag e mentions (anche per emoticon) sui candidati

Recupero solo determinati campi (tweetid, username, tetx, date, etc…) dagli oggetti JSON relativi ai tweets

Memorizzazione in un CSV definendo il Dataset

Tweets

JSON Tweets

Dataset : 1 Maggio/ 9Giugno

Hbase è un database distribuito column-oriented usato sulla sommità di HDFS.

Il suo data model colonnare è simile a Google Big Table ed è progettato per fornire un acceso rapido in lettura/scrittura ad un enorme quanità di dati memorizzati in HDFS (Hadoop File System).

HBase fornisce una scalabilità orizzontale lineare. Possiede meccanismi di failover automatico (reliability, availability) Garantisce letture e scritture consistenti. (timestamp) E’ scritto in Java ed è possibile sfruttarlo attraverso API client

Java. Fornisce meccanismi di replicazione dei dati. (HDFS – fattore 3 ) Nasce perchè HDFS consente un accesso solo sequenziale ai dati.

HBase

HBase on HDFS Pseudo-Distribuited Mode

Simuliamo l’architettura HBase-HDFS di un sistema distribuito su un unico nodo.

Master-Slave : è costruito sulla sommità di HDFS, si adatta alla sua architettura e ne sfrutta I benefici di scale out e affidabilità. (HMaster-Namenode e HRegionServer-Datanode).

Random access: usa meccanismi in-memory (MemStore) e di log per garantire letture e scritture performanti e affidabili.

Column–Oriented data model: memorizza le tabelle per column family in ogni HStore, perciò è possibile definire un data model che sfrutti I vantaggi di queste tecniche di memorizzazione.

Auto-Sharding: all’interno di ogni HRegionServer vengono memorizzate le tabelle per column family in range di row_id ordinati all’interno delle HRegion, man mano che queste si riempiono ne vengono definite di nuove su cui ridistribuire I dati.

HBase: Pro

Hbase : Data Model

HBase fornisce 5 operazioni di base sui dati: Put, Get, Delete, Scan e Increment.

HBase fornisce sia delle API Java sia altre API di tipo Thrift, Avro, REST e la Shell. (No SQL-like)

API Java: Per l’inserimento dei dati è stata usata la classe Put dopo aver creato la HTable, mentre per la lettura la Scan (a cui è stato settato un filter sulla data, per poter ottenere i tweet giornalieri su cui ciclare).

HBase client interface

Hbase : Put

Hbase: Scan(Filter)

Il vocabolario è stato ricavato dalla repository GitHub del progetto openNER (Open Polarity Enhanced Name Entity Recognition) che punta al supporto dei tool di natural processing language.

https://github.com/opener-project/public-sentiment-lexicons/tree/master/propagation_lexicons/it

Attraverso il WordCount in MapReduce sul Dataset contente i tweets sono state recuperati gli hashtag e le emoticon più utilizzate ed aggiunte al Vocabolario.

Sentiment: VocabolarioIta

Sentiment: VocabolarioIta

Apache OpenNLP è una libreria open-source di machine learning che permette di elaborare testi in linguaggio naturale.

Alcuni delle funzionalità che supporta sono: Tokenization Sentence segmentation Part-of-speech tagging Named entity extraction Document categorizer

Sentiment: OpenNLP

Questa funzionalità permette di classificare del testo in categorie predefinite, questo è possibile attraverso un algoritmo di massima entropia (MaxEnt).

1.L’entropia viene usata nel contesto della teoria dell’informazione per misurare l’incertezza del contenuto informativo, più ho incertezza più ho informazione

2.L’algoritmo prevede quindi di addestrare il nostro modello con un training set etichettato (VocabolarioIta) con un buon livello di entropia.

3.Nella fase di addestramento del modello possiamo regolare alcuni paramenti (cutoff, iterations).

4.Alla fine dell’addestramento, il modello analizzando il singolo tweet è capace di classificarlo (positive, negative).

openNLP – Document Categorizer

openNLP – Document Categorizer

Sentiment: Algoritmo Selezionando i tweet per ogni candidato e per ogni giorno, è stato determinato:

Un sentimento non normalizzato e pesato per retweets

Un sentimento normalizzato e pesato per retweets

Se non ci sono retweets la formula si riduce a

Sentiment: Algoritmo

MicroStrategy

MicroStrategy è un provider di soluzioni di BI, mobile software e cloud-based services.

Nel Magic Quadrant di Gartnet è collocato tra i Visionaries.

Fornisce solo soluzioni di BI “puro”. Si basa su un sistema di OLAP relazionale (ROLAP)

che permette agli utenti di analizzare l’intero database relazionale a tutti i livelli di granularità.

La sua piattaforma di BI permette di ottenere dashboard interattive, scorecard, report altamente formattati, query ad hoc, soglie e alert.

Risultati : Eventi influenti

Per analizzare i risultati è possibile fare riferimento ad una serie di eventi che possono aver condizionato il sentimento in uno dei due modi

9 maggio - DeMagistris: “Mi hanno strappato la toga ma non possono strapparmi l'anima. Renzi, vattene a casa! Devi avere paura! Ti devi cagare sotto”.

25/30 maggio - http://www.liberiamonapoli.it/pure-de-magistris-tiene-famiglia/

27 maggio - Berlusconi a Napoli per Lettieri 3 Giugno - Renzi a Napoli per Valeria Valente

Risultati

Risultati

Risultati

Costi

TwitterCrawler

top related