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:
parent
32cd81bca6
commit
f7ef9b5ac2
3 changed files with 76 additions and 9 deletions
|
@ -17,5 +17,10 @@
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</inspection_tool>
|
</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>
|
</profile>
|
||||||
</component>
|
</component>
|
80
README.md
80
README.md
|
@ -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
|
> ### Sentiment analysis su recensioni Amazon
|
||||||
>
|
>
|
||||||
> Modificare l’esercizio di sentiment analysis sulle review Amazon svolto in classe e verificare l’efficacia del metodo effettuando queste varianti:
|
> Modificare l’esercizio di sentiment analysis sulle review Amazon svolto in classe e verificare l’efficacia del metodo effettuando queste varianti:
|
||||||
>
|
>
|
||||||
> 1. Utilizzare come tokenizer il “sentiment tokenizer” di Christopher Potts (link disponibile nelle slide del corso);
|
> 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.
|
> Effettuare quindi un confronto di efficacia tra queste varianti e la versione originale vista in classe.
|
||||||
>
|
>
|
||||||
> Valutare anche l’inclusione di altre feature estratte dai dati, con l’obiettivo di aumentare l’efficacia.
|
> Valutare anche l’inclusione di altre feature estratte dai dati, con l’obiettivo di aumentare l’efficacia.
|
||||||
>
|
>
|
||||||
> * 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 dall’insieme di post estratti (è possibile utilizzare le feature automatiche di cross validation viste per scikit-learn)
|
> * 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 dall’insieme 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:
|
> * 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)
|
> * 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 all’obiettivo (cioè, migliorare l’efficacia del modello proposto).
|
> * in generale: studiare, riassumere brevemente e applicare eventuali altre tecniche o strumenti ritenuti utili all’obiettivo (cioè, migliorare l’efficacia del modello proposto).
|
||||||
>
|
>
|
||||||
> Consegna: PDF commentato con discussione e codice Python (includere dati e codice anche in un file .txt per facilitarne il testing)
|
> 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
|
> 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,
|
> (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).
|
> 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
|
||||||
|
|
Loading…
Reference in a new issue