![]()
Un’App Desktop in un Giorno
Dai Proverbi all’Analisi Dati: Un Viaggio in Python tra Desktop, Web e Machine Learning
🎯 L’Inizio:
Tutto è iniziato con un’idea semplice: creare un’applicazione per raccogliere e consultare proverbi italiani e frasi latine. Quello che non sapevo è che questo progetto mi avrebbe portato a esplorare Python a 360 gradi, dal desktop al web, fino all’analisi dati e al machine learning.
L’App Desktop
# Un assaggio dell'interfaccia Tkinter
class AppProverbi:
def __init__(self, root):
self.root = root
self.setup_ui()
self.carica_database()
In solo un giorno, l’applicazione aveva:
- ✅ Interfaccia grafica con Tkinter
- ✅ Database SQLite con due tabelle (italiano/latino)
- ✅ Ricerca per tema
- ✅ Aggiunta di nuovi proverbi
- ✅ Menu e barra di stato professionali
- ✅ Eseguibile Windows pronto
Il codice, inizialmente un unico file di 650 righe, è stato presto organizzato in moduli separati seguendo le best practice:
ProverbiItaliani/
├── main.py
├── gui/
│ ├── base_window.py
│ ├── app_proverbi.py
│ └── tab_*.py
└── db/
├── proverbi_db.py
└── latino_db.py
|__ greco_db.py

📊 L’Evoluzione: Analisi Dati con Jupyter
Una volta che l’app ha iniziato a raccogliere dati, è nata spontanea la domanda: cosa possiamo imparare da questi proverbi?
Il Passaggio a Jupyter Notebook
# Carichiamo i dati dal database
import pandas as pd
import sqlite3
conn = sqlite3.connect('archivio.db')
df_proverbi = pd.read_sql_query("SELECT * FROM proverbi", conn)
print(f"📖 Caricati {len(df_proverbi)} proverbi")
Cosa abbiamo scoperto?
Statistiche di base:
- 65 proverbi italiani
- 11 temi diversi
- 9 autori (tra noti e anonimi)
I temi più frequenti:
• amore: 15 proverbi
• lavoro: 12 proverbi
• vita: 8 proverbi
• tempo: 7 proverbi
• amicizia: 6 proverbi
Visualizzazioni
import matplotlib.pyplot as plt
import seaborn as sns
temi_counts = df_proverbi['tema'].value_counts().head(10)
sns.barplot(x=temi_counts.values, y=temi_counts.index)
plt.title('Temi più frequenti nei proverbi')
https://github.com/Seconet/Proverbi_Italiani/blob/main/assets/screen02.png
Analisi della lunghezza:
- Proverbio medio: 65 caratteri
- Proverbio più lungo: 158 caratteri
- Proverbio più corto: 18 caratteri
Word Cloud delle parole più frequenti
from wordcloud import WordCloud
testo_completo = ' '.join(df_proverbi['proverbio'].tolist())
wordcloud = WordCloud().generate(testo_completo)

Machine Learning: Classificazione Automatica
La parte più affascinante: insegnare a un algoritmo a riconoscere il tema di un proverbio basandosi sul testo.
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_extraction.text import TfidfVectorizer
# Convertiamo il testo in numeri
vectorizer = TfidfVectorizer(max_features=100)
X = vectorizer.fit_transform(df_proverbi['proverbio'])
# Addestriamo il modello
clf = RandomForestClassifier()
clf.fit(X, df_proverbi['tema'])
# Proviamo con un nuovo proverbio
nuovo = "Chi trova un amico trova un tesoro"
print(f"Tema predetto: {clf.predict(vectorizer.transform([nuovo]))[0]}")
# Output: 'amicizia' ✓
Risultato: Il modello raggiunge l’80% di accuratezza nel classificare i proverbi!
📈 Cosa ho Imparato
1. Python è Versatile
Dallo stesso codice base, possiamo creare:
- App desktop (Tkinter)
- Report interattivi (Jupyter)
- Modelli ML (scikit-learn)
- (Prossimamente) API REST (FastAPI)
- (Prossimamente) App mobile (Flet/Kivy)
2. I Dati Sono un Tesoro
L’app dei proverbi, nata come semplice raccoglitore, si è rivelata una miniera di informazioni. I 65 proverbi hanno generato:
- Analisi statistiche
- Visualizzazioni
- Un modello ML funzionante
- Spunti di riflessione culturale
3. L’Open Source Funziona
Pubblicare su GitHub ha permesso:
- Tracciamento delle versioni
- Condivisione immediata
- Feedback dalla community
- Portfolio professionale
🚀 Prossimi Passi
- API REST con FastAPI per servire i dati
- App mobile con Flet (o React Native)
- Dashboard interattiva con Plotly Dash
- Analisi più profonda del latino (declinazioni, autori, periodi storici)
- Collaborazione – Se qualcuno vuole contribuire, il repository è aperto!
📝 Codice e Risorse
Tutto il codice è disponibile su GitHub:
🔗 https://github.com/Seconet/Proverbi_Italiani
💭 Riflessioni Finali
Questo progetto mi ha insegnato che non serve un’idea rivoluzionaria per imparare cose nuove. A volte, basta un semplice raccoglitore di proverbi per esplorare:
- Interfacce grafiche
- Database
- Analisi dati
- Machine Learning
- Condivisione open source
Il tutto in meno di due giorni
“Chi ben comincia è a metà dell’opera” (proverbio italiano)
“Dimidium facti, qui coepit, habet” (Orazio)
🙏 Ringraziamenti
- Alla comunità Python, per le librerie straordinarie
- A GitHub, per l’hosting gratuito
- A NBViewer, per la visualizzazione dei notebook
- A tutti coloro che vorranno contribuire o semplicemente usare l’app
Questo post è pubblicato sotto licenza MIT. Sentiti libero di condividere, modificare e utilizzare il codice per i tuoi progetti.
📖 Letto da: 29








