ruggsea / llm_italian_poll_scraper

Archiving and transforming official Italian General Election text-only polls into machine readable data using Large Language Models
Creative Commons Attribution 4.0 International
13 stars 1 forks source link

Se vuoi più informazioni su questo progetto, ne ho parlato su datiBeneComune in questo numero.

Media di oggi

Fratelli d'Italia: 29.68%
Partito Democratico: 22.86%
Movimento 5 Stelle: 11.31%
Forza Italia: 9.63%
Lega: 8.78%
Alleanza Verdi Sinistra: 6.57%
Altri: 4.19%
Azione: 2.67%
Italia Viva: 2.32%
+Europa: 1.99%

Grafico

Latest Moving Average

Archiving Italian Political Polls

Questo progetto si occupa di archiviare tutti i sondaggi mai caricati sul sito ufficiale sondaggipoliticoelettorali.it, cercando quelli che riguardano l'intenzione di voto nazionale utilizzando il confronto di stringhe e l'estrazione delle risposte al sondaggio utilizzando un Large Language Model (LLM). Per a chi interessano solo i dati dei sondaggi aggiornati giornalieramente, sono disponibili in formato JSONL nel file italian_polls.jsonl e in formato CSV nel file italian_polls.csv. Se invece si desiderano i dati in formato long e ulteriormente puliti, sono disponibili alla sequente repo di onData: italian_polls

Requisiti

Avere un'installazione di Python con un setup di Selenium funzionante e le librerie openai e bs4 installate. Avere nel proprio environment la variabile d'ambiente OPENAI_API_KEY settata con la propria chiave API di OpenAI. Per esserne sicuri, basta installare i requisiti con il seguente comando:

pip install -r requirements.txt

Installazione

  1. Clona il repository sul tuo computer:
git clone https://github.com/ruggsea/llm_italian_poll_scraper.git
  1. Entra nella directory del progetto:
cd llm_italian_poll_scraper

Utilizzo

I sondaggi dovrebbero essere archiviati nel file italian_polls.jsonl in formato JSONL. Per aggiornare il file con i nuovi sondaggi, esegui il seguente comando:

python3 llm_poll_parser/archiving_polls.py

Note

La media si basa sui sondaggi archiviati nel file italian_polls.jsonl e viene calcolata tramite media mobile a peso esponenziale (EWMA). Il grafico non riporta Azione, +Europa e Italia Viva poiché le loro unioni e divisioni rendono difficile rappresentarne una serie storica (sono tuttavia presenti nei dati raccolti).

Mentre il dataset è molto affidabile per i sondaggi odierni, potrebbero esserci errori nei sondaggi più vecchi. In particolare, alcuni sondaggi risultano sfasati o vuoti per via di errori di parsing o di mancato filtraggio. Varie correzioni nel parsing sono state apportate: per vederne i frutti, saltuariamente conduco uno scrape completo per ricostruire il dataset da zero usando la versione più aggiornata dello scraper.

Partiti considerati

Sono considerati in maniera abbastanza esaustiva tutti i partiti sondati nei sondaggi archiviati sul sito (2013-presente). I partiti considerati sono:

Sono incoraggiati consigli e suggerimenti su partiti da aggiungere, altri miglioramenti e correzione dei dati: in caso aprire una issue. Grazie!

Per domande, chiarificazione o contatti media contattemi su fu twitter at ruggsea o al seguente profilo LinkedIn.

Se usi questi dati

I dati sono rilasciati con licenza CC BY 4.0, quindi sei libero di utilizzarli per qualsiasi scopo, a patto di citare questa fonte.

Quando li usi includi per favore la dicitura "dati estratti da Ruggero Marino Lazzaroni", mettendo il link a questo repository (il link è https://github.com/ruggsea/llm_italian_poll_scraper).