Progetto · Raccomandatore Fuzzy

Mini-Progetto: Sistema di Raccomandazione Fuzzy per le Pagine

Torna all'indice generale

Usare la logica fuzzy per consigliare al lettore quali contenuti esplorare dopo.

1. Scenario

Immagina un visitatore che arriva su fuzzypython.org e legge alcune pagine introduttive. Vogliamo suggerirgli in modo "intelligente" quali contenuti approfondire dopo, combinando:

  • Frequenza d'uso di alcuni concetti (es. ML vs fuzzy),
  • Interesse dichiarato per certi temi (es. filosofia digitale),
  • Livello di esperienza generale (principiante/intermedio/avanzato).

Invece di regole rigide, useremo un piccolo sistema di raccomandazione fuzzy.

2. Variabili linguistiche

Ingresso: InteresseML

  • BASSO
  • MEDIO
  • ALTO

Ingresso: InteresseFuzzy

  • BASSO
  • MEDIO
  • ALTO

Ingresso: LivelloEsperienza

  • PRINCIPIANTE
  • INTERMEDIO
  • AVANZATO

Uscita: PrioritaPagina

  • BASSA
  • MEDIA
  • ALTA

Per ciascuna pagina candidata (es. Intro ML, Funzioni di appartenenza fuzzy, Filosofia digitale e IA, ecc.) possiamo definire una regola fuzzy che assegna una priorità in base alle variabili di ingresso.

3. Regole di raccomandazione

Esempi di regole per qualche pagina chiave del sito:

Pagina: Introduzione al Machine Learning

  • SE InteresseML è ALTO E LivelloEsperienza è PRINCIPIANTE ALLORA PrioritaPagina è ALTA.
  • SE InteresseML è MEDIO E LivelloEsperienza è INTERMEDIO ALLORA PrioritaPagina è MEDIA.

Pagina: Introduzione alla Logica Fuzzy

  • SE InteresseFuzzy è ALTO E LivelloEsperienza è PRINCIPIANTE ALLORA PrioritaPagina è ALTA.
  • SE InteresseFuzzy è MEDIO E LivelloEsperienza è INTERMEDIO ALLORA PrioritaPagina è MEDIA.

Pagina: Filosofia Digitale, IA e Software Libero

  • SE InteresseML è MEDIO E InteresseFuzzy è MEDIO E LivelloEsperienza è BASSO ALLORA PrioritaPagina è ALTA.

4. Output del sistema

Per ogni pagina candidata calcoliamo un grado fuzzy di priorità. Dopo defuzzificazione (o ordinamento basato sui gradi massimi), otteniamo una lista ordinata di suggerimenti, ad esempio:

  • 1️⃣ Introduzione alla Logica Fuzzy
  • 2️⃣ Matematica di base per ML e Fuzzy
  • 3️⃣ Filosofia Digitale, IA e Software Libero

Questa lista può essere mostrata in un box "Consigliati per te" a fine pagina.

5. Scheletro in Python

Un possibile schema (semplificato) per rappresentare pagine e regole:


pages = [
    "intro_ml",
    "intro_fuzzy",
    "matematica_base",
    "filosofia_digitale"
]

rules = [
    {
        "page": "intro_ml",
        "antecedent": [("interesse_ml", "alto"), ("livello", "principiante")],
        "operator": "AND",
        "priority": "alta",
    },
    {
        "page": "intro_fuzzy",
        "antecedent": [("interesse_fuzzy", "alto"), ("livello", "principiante")],
        "operator": "AND",
        "priority": "alta",
    },
]

# Un motore di inferenza calcolerà i gradi di verità di ciascuna regola
# e produrrà un punteggio di priorità per ogni pagina.
          

Da qui puoi costruire un piccolo motore di raccomandazione fuzzy che si integra con il tuo sito o con un prototipo in Jupyter/Streamlit.