1
Fork 0
mirror of https://github.com/Steffo99/unimore-bda-6.git synced 2024-11-21 23:44:19 +00:00

Make more progress

This commit is contained in:
Steffo 2023-02-03 03:24:23 +01:00
parent 32cd81bca6
commit f7ef9b5ac2
Signed by: steffo
GPG key ID: 2A24051445686895
3 changed files with 76 additions and 9 deletions

View file

@ -17,5 +17,10 @@
</list>
</option>
</inspection_tool>
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>
</component>

View file

@ -1,18 +1,18 @@
[ Stefano Pigozzi | Tema Text Analytics | Big Data Analytics | A.A. 2022/2023 | Unimore ]
[ Stefano Pigozzi | Traccia #3 | Tema Text Analytics | Big Data Analytics | A.A. 2022/2023 | Unimore ]
# WIP
# Confronto tra modelli di sentiment analysis per recensioni Amazon
> ### Sentiment analysis su recensioni Amazon
>
> Modificare lesercizio di sentiment analysis sulle review Amazon svolto in classe e verificare lefficacia del metodo effettuando queste varianti:
>
>
> Modificare lesercizio di sentiment analysis sulle review Amazon svolto in classe e verificare lefficacia del metodo effettuando queste varianti:
>
> 1. Utilizzare come tokenizer il “sentiment tokenizer” di Christopher Potts (link disponibile nelle slide del corso);
> 2. Modificare il dataset recuperando anche recensioni a 2, 3 e 4 stelle ed effettuare una classificazione a più classi (es. 5 classi di sentiment corrispondenti al numero di stelle delle recensioni).
> 2. Modificare il dataset recuperando anche recensioni a 2, 3 e 4 stelle ed effettuare una classificazione a più classi (es. 5 classi di sentiment corrispondenti al numero di stelle delle recensioni).
>
> Effettuare quindi un confronto di efficacia tra queste varianti e la versione originale vista in classe.
>
>
> Valutare anche linclusione di altre feature estratte dai dati, con lobiettivo di aumentare lefficacia.
>
>
> * E necessario effettuare tutti i test su un numero significativo di run (es., almeno 50), scegliendo ogni volta in maniera casuale la composizione di test-set e training-set a partire dallinsieme di post estratti (è possibile utilizzare le feature automatiche di cross validation viste per scikit-learn)
> * E possibile (e gradito) estendere in ampiezza la propria analisi:
> * utilizzare e confrontare una o più delle librerie di ML viste a lezione (NLTK/scikitlearn/XGBoost/Tensorflow) (NOTA: per le tracce 2 e 3 è necessario sperimentare anche almeno una libreria diversa da NLTK)
@ -21,7 +21,69 @@
> * in generale: studiare, riassumere brevemente e applicare eventuali altre tecniche o strumenti ritenuti utili allobiettivo (cioè, migliorare lefficacia del modello proposto).
>
> Consegna: PDF commentato con discussione e codice Python (includere dati e codice anche in un file .txt per facilitarne il testing)
>
>
> Per quanto riguarda il codice Python, è possibile (e gradito) produrre e consegnare un notebook jupyter .ipynb
> (https://jupyter.org/) invece di codice .py e relativi commenti separati su PDF (per comodità di consultazione,
> consegnare comunque anche una stampa PDF del notebook oltre al notebook stesso).
## Premessa
### Codice
Il codice dell'attività è incluso come package Python compatibile con PEP518.
Per installare il package, è sufficiente eseguire i seguenti comandi dall'interno della directory del progetto:
```console
$ python -m venv .venv
$ source venv/bin/activate
$ pip install .
```
#### NLTK
NLTK richiede dipendenze aggiuntive per funzionare, che possono essere scaricate eseguendo il seguente comando su console:
```console
$ ./scripts/download-nltk.sh
```
### Dataset
Il codice dell'attività richiede la connessione a un server MongoDB 6 contenente il dataset di recensioni Amazon fornito a lezione.
Si forniscono alcuni script nella cartella `./data/scripts` per facilitare la configurazione e l'esecuzione di quest'ultimo.
Per eseguire il database MongoDB come processo utente, salvando i dati nella cartella `./data/db`:
```console
$ ./data/scripts/run-db.sh
```
Per importare il dataset `./data/raw/reviewsexport.json` fornito a lezione nel database MongoDB:
```console
$ ./data/scripts/import-db.sh
```
Per creare indici MongoDB utili al funzionamento efficiente del codice:
```console
$ mongosh < ./data/scripts/index-db.js
```
## Introduzione
<!-- TODO -->
## `base`: Costruzione dell'impalcatura necessaria al confronto
<!-- TODO -->
## `vanilla`: Ricostruzione e ottimizzazione del modello basato su `nltk.sentiment` realizzato a lezione
Per avere un modello baseline con cui effettuare un confronto, si è ricostruito un modello basato su `nltk.sentiment` ispirato a quello realizzato a lezione.
<!-- TODO -->
## TODO