| Current Path : /home/deltalab/PMS/recommendations/recommender-system-batch/ |
| Current File : //home/deltalab/PMS/recommendations/recommender-system-batch/README.md |
# Recommender system batch
Versione batch e minimal del sistema di raccomandazione ibrido
## Istruzione
1) *Aggiungere* il file **credentials.env**
2) *Eseguire* il file **run.but**
## Metodi di raccomandazione disponibili
1) **enhanced_assRules**
2) **collectionBased**
3) **simple_assRules**
4) enhanced_assRules_cat [Variante di (1)]
5) collectionBased_cat [Variante di (2)]
6) simple_assRules_cat [Variante di (3)]
7) **vendorBased**
8) **typeBased**
9) semiRandom [tappabuchi attivo di default]
### SETTINGS & PARAMS --> **settings.json**
- ESEMPIO: Come attivarli o ordinarli?
- "*rs_priority*" [list]
- "*add_categoryBased_variants" [boolean]*
## INPUTS (due sorgenti)
1) **Collezioni di *MongoDB*** [server: 10.99.xx.xx]
- "categories,
- "seller"
- "warehouses"
- "orders"*
- "products"
2) ***Regole di associazione* basate sul prodotto/categoria** [server: 172.29.xx.xx]
- PATH: */home/indaco/inTrentino/data/co-purchases/...*
- FILES (.xlsx)
- *indaco_coPurchases_bySKU_xx_xx*
- *indaco_coPurchases_byProductType_xx_xx*
## OUTPUTS [MongoDB]
Collezione "*productbased***recommendations**"
- *product_id*: object id
- *all_linkedProducts*: list of linked products
- *linkedProducts_permutations*: permutation of the linked products
- Generic_user (product_permutation & explaination)
- email user 1 (product_permutation & explaination)
- ...
- email user n (product_permutation & explaination)
-----------------------------
### *[LEGACY] Nuovi attributi nella collection "products" [MongoDB]*
1) *linkedProducts*: Lista di prodotti collegati
2) *recomExplanation*: Spiegazione del bundle
-----------
## Architettura
**_library**: Varie utils
- **data_utils**: utils collegate ad operazioni I/O e dati
- **recom_utils**: utils collegate ai vari metodi di raccomandazione
- *INDACO_collectionCodes.json*: file contenente la mappatura codice-nome per gli attributi prodotto
- ...
**components**: Componenti e classi ad alto livello
1) *collectionBased_RS*: Approccio di raccomandazione basato sulle collezioni
2) *coPurchase_RS*: Approccio di raccomandazione basato sulle regole di associazione e co-acquisti
3) *typeBased_RS*: Approccio di raccomandazione basato sul tipo di prodotto
4) *vendorBased_RS*: Approccio di raccomandazione basato sul marchio del prodotto
5) *simiRandom_RS*: Ultimo approccio di raccomandazione basato su raccomandazione semi-randomiche
6) *indaco_db*: Classe per lettera e scrittura sul database di indaco (MongoDB)
7) *profiling_users*: Classe per analizzare e creare i profili utenti
**recommendations**: raccomandazione generate e salvate localmente come JSON, suddivise in sottocartelle in base alla versione del programma corrente (settings.json)
**hybrid_RS**: file che raggruppa le principali chiamate dei vari componenti
**app.py**: script principale del programma
**run.bat** file eseguibile che esegue *app.py*
**settings.json**: file contenente i vari parametri del sistema di raccomandazione