Date post: | 16-Jan-2017 |
Category: |
Engineering |
Upload: | alessandro-pagliaro |
View: | 63 times |
Download: | 2 times |
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