Your IP : 216.73.217.13


Current Path : /home/deltalab/PMS/recommendations/recommender-system-batch/
Upload File :
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