Un chatbot intelligent développé en Python, utilisant l'apprentissage profond pour reconnaître les intentions des utilisateurs, avec une interface conviviale en Tkinter. Il fonctionne en français par défaut et peut être enrichi à volonté.
- ✅ Interface graphique simple et fonctionnelle (Tkinter)
- 🧠 Entraînement sur des données personnalisées (intents)
- 📤 Ajout dynamique de nouvelles intentions via l'interface
- 🔁 Gestion de contexte conversationnel (
set/filter) - 🧠 Modèle entraîné avec TensorFlow Keras
- 📚 NLP via
nltk+ vectorisation avecCountVectorizer(scikit-learn) - 🇫🇷 Compatible UTF-8 : gestion correcte des accents français
- 🌐 Facilement adaptable à d'autres langues
git clone https://github.com/ton-nom/chatbot-deeplearning.git
cd chatbot-deeplearningpip install numpy nltk scikit-learn tensorflowLes packages nécessaires sont automatiquement téléchargés au premier lancement :
punktwordnetpunkt_tab
python training.pyCela génère :
chatbot_model.h5: modèle entraînétraining_data: données encodées (Pickle)
python chatbot_gui.pyDeux onglets sont disponibles :
- Madel Data Bot : chat avec le bot
- Train Bot : interface d’ajout de nouvelles intentions
- Onglet Train Bot
- Remplir les champs :
Tag: nom de l’intention (ex :salutation)Pattern1,Pattern2: exemples de phrasesResponse1,Response2: réponses possibles
- Cliquer sur Train Bot
- ✅ Le modèle est automatiquement réentraîné avec la nouvelle donnée 🎉
Voici un exemple :
{
"tag": "salutation",
"patterns": ["bonjour", "salut", "hello"],
"responses": ["Bonjour ! Comment puis-je vous aider ?"],
"set": ""
}| Clé | Description |
|---|---|
tag |
Nom de l’intention |
patterns |
Expressions d’utilisateur associées |
responses |
Réponses possibles du chatbot |
set |
Définit un contexte (ex : "commande_en_cours") |
filter |
Nécessite que le contexte soit actif pour déclencher la réponse |
Modèle Sequential (TensorFlow/Keras) :
| Couche | Détails |
|---|---|
| Couche d’entrée | 128 neurones, activation ReLU |
| Cachée | 64 neurones, activation ReLU |
| Sortie | softmax sur le nombre de classes (tags) |
| Optimiseur | SGD (learning_rate=0.01, momentum=0.9) |
| Fonction de perte | categorical_crossentropy |
| Époques | 200 |
| Batch size | 10 |
Le bot fonctionne actuellement en français.
Cependant, il est entièrement adaptable à d'autres langues, simplement en :
- Ajoutant de nouveaux
patternsetresponsesdansintents.json - Relançant l'entraînement via l’interface ou le script Python
📦 Unicode (UTF-8) est pleinement supporté : arabe, espagnol, anglais, allemand, etc.
Utilisateur : Bonjour
Bot : Bonjour, merci de visiter ce chatbot.
Utilisateur : Je suis triste
Bot : Pas de souci. Tout ira bien.
Utilisateur : merci
Bot : Avec plaisir.
- Ajout de synthèse vocale (Text-to-Speech)
- Passage aux embeddings (
Word2Vec,BERT, etc.) - Interface web (Flask, Streamlit ou FastAPI)
- Intégration avec une base vectorielle (RAG)
- Stockage et historisation des conversations
- Traduction automatique (multilingue dynamique)
Ce projet est open-source sous licence MIT.
Créé pour l'apprentissage, la recherche et l’expérimentation d’un chatbot conversationnel intelligent.
M. Abusarar
Data Analyst & Développeur NLP
🔗 linkedin.com/in/Madel Data