Template Progetto
ATTENZIONE: QUESTO E’ SOLO UN TEMPLATE!
LEGGI ANCHE TUTTA LA PAGINA COME FARE UN PROGETTO
METTERE:
TITOLO
NOME GRUPPO
NOMI / MATRICOLA PARTECIPANTI
DATA
Introduzione
Descrivere
gli obbiettivi che ci si è posti
risultati attesi (i.e. file CSV con dati integrati da mostrare su Umap)
Descrivere brevemente quali attività sono state svolte. Mettere solo una breve sintesi, più avanti nel report vi sarà chiesto di descriverle nel dettaglio. Esempi:
Analisi
Pulizia
Integrazione
Arricchimento
georeferenziazione
semantico
Ricerca
Base
Avanzata
Calcolo similarità
Ranking
Predizione
Presentazione
slides
demo
librerie Python utilizzate per il progetto
Sorgenti dati
Descrivere le sorgenti dati (almeno due), mettendo:
nome origine e possibilmente URL
le licenze
encoding
dimensione in Kb (i file dovrebbero essere max 50 megabyte, se più grandi cercate un modo per ridurli e se avete problemi chiedete come fare)
schemi dei dati
CSV: intestazione colonne, tipi delle colonne (stringa, numero, data …)
JSON: spiegare sommariamente le scheletro del JSON ( se volete strafare scrivete un JSON schema, ma non l’abbiamo visto a lezione)
XML: spiegare sommariamente le scheletro dell’XML (possibilmente guardate se l’XML già fornisce un XML schema, ma non l’abbiamo fatto a lezione, se avete dubbi chiedete)
SQL: mettere schema del DB (molti browser di database possono generare diagrammi per gli schemi)
per altri formati: descrivere a parole
qualche dato di esempio
Se i dati sono da ottenere tramite web API, chiedersi se è possibile ottenere gratuitamente tutti i dati desiderati entro i limiti d’uso dell’API
IMPORTANTE: ricordarsi di includere nella cartella del progetto una copia dei dati! Questa è fondamentale ai fini della riproducibilità del notebook, e vale in particolare per i dati ottenuti da Web API e pagine HTML, che possono variare nel tempo (i.e. dati meteo).
Analisi
ATTIVITA’ OBBLIGATORIA
Cercare di capire bene cosa c’è dentro il dataset. Cercare problemi - se si può in Python o altrimenti con LibreOffice / Excel. Per esempio, in una colonna ‘Categoria’, quanti valori distinti ci sono? Sono sempre scritti allo stesso modo? Se c’è una colonna con gli indirizzi, gli indirizzi sono sempre formattati nello stesso modo?
mostrare raggruppamenti, grafici frequenze. Esempi:
motivare con numeri perchè si sono scelte certe colonne piuttosto che altre
per le colonne usate, quante celle vuote c’erano in proporzione a quelle piene, con grafico percentuali a torta
qual’era la distribuzione dei valori in una data colonna?
quante righe sono state mantenute e quante eliminate?
correlazioni tra valori (potreste usare librerie come Pandas)
mostrare punti su mappa con UMap, notare raggruppamenti
ricavare qualche modello dai dati, con plot su grafico (es: relazione lineare pressione / temperatura)
mettere qualche widget per variare parametri del modello
Pulizia
Elencare eventuali problemi da correggere, e come li si è risolti. Esempi:
dati mal formattati
interpretazione dati mancanti, come li si è convertiti
i valori assenti sono da assumersi uguali a 0, stringa vuota,
None
, lista vuota ? …
Mappe con punti in posti assurdi
Integrazione
Quando si integrano due dataset con contenuti simili, ma che possono avere formati e campi diversi (es. file CSV agritur e file XML delle strutture alberghiere)
Per un esempio di integrazione, vedere tutorial integrazione
Si sono uniti dei dataset ? Come?
Su quali colonne è stata effettuata la join?
Che problemi sono stati sorti?
Come sono stati risolti?
Arricchimento
Si arricchiscono i dati quando si precisa meglio il loro significato. Per esempio, si specifica la posizione geografica aggiungendo le colonne latitudine e longitudine, ottenute passando l’indirizzo testuale a servizi di geocoding. Vedere tutorial integrazione. Altro esempio: si determina il significato preciso delle parole nel testo usando disambiguazione semantica come Dandelion.
Sono stati usati dei metodi, librerie Python o servizi via WEBAPI per precisare il significato dei dati?
Sono state trovate coordinate geografiche ? Come?
Sono state estratte entità / concetti dal testo ? Come ?
Ricerca
L’ information retrieval è l’attività che svolgono i sistemi informatici quando devono recuperare rapidamente delle informazioni rilevanti . Vedere tutorial information retrieval
Si è implementato un sistema di ricerca? Come? Che fattori sono stati considerati ?
Ricerca base
Possiamo categorizzare la ricerca come ‘base’ se permette
matching di parole esatto, es cerco “pavimentazione” e se c’è “pavimentazioni” con la “i” alla fine o “manto stradale” non la trova
ricerca di valori tra due limiti. Es cerco tutti i bandi pubblicati entro due date. I valori da cercare sono già facilmente disponibili in celle separate in formato machine readable e non serve estrarli con tecniche particolari
inserimento query di ricerca come parametro di funzioni python
visualizzazione risultati come semplici print testuali
Ricerca avanzata
Possiamo considerare una ricerca ‘avanzata’ se richiede una elaborazione preventiva dei dati per una maggiore precisione. Per es. si vuole ricercare per importo complessivo di un bando, ma il valore dell’importo è nella descrizione e va preventivamente estratto in una colonna a parte. Vedere regex su softpython
Miglioramento dell’interfaccia grafica (vedere tutorial applicazioni interattive):
inserimento della ricerca in una casella di ricerca widget jupyter
possibilità di impostare qualche parametro della ricerca con dei widget (es checkbox per includere / escludere agritur nella ricerca)
visualizzazione della ricerca in widget
Ricerca semantica
La ricerca ‘semantica’ prende in considerazione il significato delle parole, vedi teoria information retrieval
matching di parole non esatto, es cerco “pavimentazione” e se c’è “pavimentazioni” con la “i” alla fine o ‘‘manto stradale” trova una corrispondenza
ricerca per similarità: Sono stati adottati metodi per calcolare la similarità tra gli elementi da cercare? Quali sono le performance?
Ranking
I risultati della ricerca vengono presentati in un ordine casuale o preciso?
Sono ordinati per rilevanza ?
Quali fattori si usano per calcolarla?
Che formula si è usata per creare il ranking ?
Predizione
Si è implementato un sistema predittivo (es. date n - 1 colonne riesco a prevedere il valore dell’ennesima con una precisione del X %)?
Come è stata calcolata la formula per predire la colonna mancante?
Presentazione
Slides
Sono state create delle slides? Dove si trovano (se online si deve consegnare una copia pdf nello zip) ?
Demo
NOTA: questa parte è per la demo, che è distinta dalla sezione Analisi. Se prima hai usato dei widget per mostrare i parametri dei modelli, quei widget non vanno riportati qui
Se il tuo progetto prevede una parte di demo in Jupyter, includi nel foglio separato demo.ipynb i widget funzionanti
Se invece hai fatto il progetto come sistema esterno a Jupyter, spiega bene qui come eseguirlo, includendo degli screenshot del sistema.
Condividere codice: Se hai codice da condividere tra più fogli, invece del copia-e-incolla considera creare file di codice sorgente Python con estensione .py
come esempio.py
. In entrambi i fogli poi potresti fare
from esempio import *
Problematiche riscontrate
Descrivere i problemi maggiori riscontrati nel progetto
Conclusioni
Descrivere:
se si sono raggiunti gli obbiettivi posti
eventualmente cosa si potrebbe aggiungere di interessante
[ ]: