Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Steam Game Recommender - Content-Based System

Python PyTorch Scikit-Learn Gradle

Questo progetto implementa un sistema di raccomandazione per videogiochi basato sull'analisi del contenuto (Content-Based Filtering). Il sistema analizza il dataset ufficiale di Steam (Kaggle) per suggerire all'utente i 5 titoli più affini ai suoi gusti, calcolando la similarità semantica tra le descrizioni e i tag dei giochi.


🚀 Architettura del Sistema

Il sistema si articola in due componenti principali:

  • Backend (Python/Jupyter): Gestisce l'elaborazione del dataset, la generazione degli embeddings tramite modelli di linguaggio avanzati e la logica di raccomandazione.
  • Frontend (Gradle): Un'interfaccia utente che permette di selezionare i giochi preferiti e visualizzare i suggerimenti con il relativo grado di similarità.

🧠 Core Logico e NLP

Il sistema trasforma le informazioni testuali in vettori numerici (embeddings) per calcolare quanto due giochi siano "vicini" a livello di significato.

1. Elaborazione del Linguaggio Naturale

Utilizziamo il modello all-MiniLM-L6-v2 di SentenceTransformers (basato su PyTorch) per analizzare:

  • Tags: Le categorie definite dalla community.
  • Short Description: La descrizione sintetica del gioco.

2. Bilanciamento dei Pesi e Serendipity

Per ottenere raccomandazioni bilanciate, abbiamo applicato una formula di pesatura per combinare le diverse caratteristiche:

$$Embeddings_{Combined} = 0.7 \cdot Tags + 0.3 \cdot Description$$

Per aggiungere un effetto di Serendipity (scoperta di titoli rilevanti e popolari), abbiamo integrato il numero di recensioni normalizzato:

$$Embeddings_{Final} = [Embeddings_{Combined}, 0.20 \cdot Reviews_{Normalized}]$$


📊 Pipeline di Raccomandazione

graph TD
    A[Dataset Steam - Kaggle] --> B[NLP: SentenceTransformer]
    B --> C[Generazione Embeddings Tags + Desc]
    C --> D[Integrazione Popolarità - Serendipity]
    D --> E[Salvataggio Embeddings su Disco - Cache]
    F[User: Selezione Giochi Preferiti] --> G[Creazione Profilo Utente - Media Vettoriale]
    G --> H[Cosine Similarity vs Catalogo]
    H --> I[Top 5 Raccomandazioni]
Loading

About

Game Recommender

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages