yabasta Code
Yet Another BAsic Scraper and Text Analysis
Status: Pre-Alpha
Brought to you by:
dicpao
File | Date | Author | Commit |
---|---|---|---|
analisi | 2020-11-27 |
![]() |
[64fe69] Initial commit |
scriptR | 2020-11-27 |
![]() |
[64fe69] Initial commit |
README.txt | 2020-11-27 |
![]() |
[64fe69] Initial commit |
textanalytics.Rmd | 2020-11-27 |
![]() |
[64fe69] Initial commit |
textanalytics.html | 2020-11-27 |
![]() |
[64fe69] Initial commit |
util.py | 2020-11-27 |
![]() |
[64fe69] Initial commit |
yabasta.py | 2020-11-27 |
![]() |
[64fe69] Initial commit |
YA BASTA! YA BASTA! (Yet Another BAsic Scraper and Text Analysis!) è un sw applicativo di tipo desktop grafico per ambiente windows(dovrebbe funzionare anche su altri OS ma non è stato testato!). YA BASTA! permette lo scraping di testi di canzoni di gruppi/cantanti dal sito AZLyrics e la successiva analisi del testo delle canzoni scaricate. Prima di far partire l'applicazione leggere le operazioni di configurazione. Per farlo partire da console dei comandi digitare: python.exe yabasta.py Il software è scritto in Python ed R, in cui i moduli R vengono chiamati come sottoprocessi dal codice R. Sono presenti due sezioni in tale sw: * sezione Web Scraper; * sezione Text Lyrics Analysis. Allo stato attuale nel software è stato precaricato il file scaricato sui rollingstones, su cui è possibile eseguire tutte le analisi sul testo. Se viene usato il web scraper viene sovrascritto il file analisi/LastOne.txt con il gruppo/cantante configurato per lo scraping. Se si vuole ripristinare il gruppo rolling stones già scaricato inserire nel file analisi/LastOne.txt la stringa AzLyricsTheRollingStones.csv senza spazi ne righe vuote. * Web Scraper (Features) ** Possibilità di scelta del sito(al momento disponibile AZLyrics) ** Cantante (RollingStones, Beatles, Who, <campo libero>) ** Numero testi canzoni da scaricare ** Per ogni lyrics scaricato viene inserito in un file csv (AZLyrics<Cantante><NumeroTesti>.csv) il testo, il nome della canzone, l'album, l'anno e hyperlink di scaricamento ** Eliminazione ridondanze: la stessa canzone non viene scaricata due volte ** Rilevazione Captcha: utente viene avvertito della presenza di Captcha ** Rilevazione di IP bannato: utente viene avvertito di cambiare IP (tramite riavvio router) * Text Lyrics Analysis (Features) ** Analisi preliminare: Misure Lessicometriche(Type, Token, TTR, Hapax), Scatterplot parole più frequenti con intervallo ranking di frequenza configurabile, Salvataggio del vocabolario nella directory delle analisi nella forma vocabolario.csv; ** Wordcloud, TextCloud, BarPlot: intervallo ranking di frequenza configurabile, normalizzazione semplice e morfologica (lemming, stemming, both) disponibile; i grafici generati sono disponibili nella directory delle analisi; ** Analisi delle corrispondenze lessicali: acl esguita sul metadato anno; possibilità di configurare fino a quattro periodi nella forma periodo1;..,periodo4 dove periodox è nella forma Label, (da)aaaa--aaaa(a) es: albori, 1960-1970; crea gruppo delle canzoni composte tra il 1960 ed il 1970, gruppo indicato con etichetta albori; è data anche la possibilità di studiare la corrispondenza lessicale tra i gruppi e le parole aventi una minima frequenza totale nel corpus; i grafici generati sono disponibili nella directory delle analisi così come il file delle specificità(quanto è specifica una parola rispetto ad un periodo); se non vengono configurati i periodi vengono configurati il default valido per i RollingStones: Albori,1960-1970;SuccessoRock,1970-1980;NuoveTendenze,1980-1995;Today,1995-2020; ** Analisi latente semantica: vengono generati due grafici feature e docs, nel primo viene mostrata la ASL delle parole nel secondo viene mostrata la ASL dei periodi analizzati; è possibile configurare sia il numero di parole da analizzare in ASL fissando il ranking massimo delle parole da analizzare sia i periodi da analizzare; possibilità di configurare fino a quattro periodi nella forma periodo1;..,periodo4 dove periodox è nella forma Label, (da)aaaa--aaaa(a);i grafici generati sono disponibili nella directory delle analisi; se non vengono configurati i periodi vengono configurati il default valido per i RollingStones: Albori,1960-1970;SuccessoRock,1970-1980;NuoveTendenze,1980-1995;Today,1995-2020; ** Cluster: possibilità di configurare fino a quattro periodi nella forma periodo1;..,periodo4 dove periodox è nella forma Label, (da)aaaa--aaaa(a) su cui basare la acl da clusterizzare; vengono clusterizzate le parole del corpus che hanno una frequenza maggiore di min frequenza configurabile; sono disponibili tre tipi di grafici: dendogramma, clusterizzazione e word cluster; word cluster riporta in una word cloud le parole relative ad un periodo configurato dove il periodo è riportato all'interno della nuvola come parola a massima frequenza; i grafici generati sono disponibili nella directory delle analisi; all'interno della directory analisi vengono inoltre riportati il file della percentuale di composizione del cluster rispetto ai periodi configurati ed il file contenente le parole che appartengono ai cluster formati; se non vengono configurati i periodi vengono configurati il default valido per i RollingStones: Albori,1960-1970;SuccessoRock,1970-1980;NuoveTendenze,1980-1995;Today,1995-2020; ** Serie storica dell'analisi della Sentiment del testo delle canzoni: viene calcolata la sentiment delle singole canzoni, i valori per anno vengono raggruppati eseguendo la media; Sul grafico viene disegnata la retta di regressione e la LOESS per andamenti locali;i grafici generati sono disponibili nella directory delle analisi; * Operazione di configurazione (Windows Only): ** Inserire path di Rscript in analisi/Command.txt ** Inserire path librerie R in analisi/RLibrary.txt ** stringa di default per i periodi ACL, ASL e Cluster quando non vengono configurati: Albori,1960-1970;SuccessoRock,1970-1980;NuoveTendenze,1980-1995;Today,1995-2020; * Descrizione dei file del sw YA BASTA!: ** README.txt: questo file ** analisi/Command.txt: contiene il path di Rscript ** analisi/RLibrary.txt: contiene il path alle librerie R ** analisi/LastOne.txt: contiene l'ultimo cantante/gruppo scaricato oggetto della text analysis seguente ** analisi/AzLyricsTheBeatles.csv: contiene lo scraping delle canzoni(112) dei RollingStones; per ogni canzone viene riportato il titolo, l'album, l'anno di produzione, il testo ed il link da cui sono state ottenute le precedenti informazioni ** webscraping.py: è il modulo principale del sw in cui viene definita l'interfaccia grafica, il web scraper e l'interfaccia verso le funzioni wrapper per i comandi di analisi del testo scritti in R; ** util.py: wrapper per i comandi di analisi del testo scritti in R; ** analisi/createDBandPlot.R: codice per la creazione di un db di parole, misure lessicometriche, ed il vocabolario delle parole del corpus ** analisi/createWordCloud.R: codice per la creazione di una text word cloud ** analisi/createTextWordCloud.R: codice per la creazione di una text word cloud ** analisi/createBarPlot.R: codice per la creazione di un barplot parole/frequenza del corpus ** analisi/createACL.R: analisi delle corrispondenze lessicali ** analisi/createASL.R: analisi semantica lesssicale ** analisi/createCluster.R: cluster analysis ** analisi/createSentimentTS.R: contiene la sentiment analysis