Skip to content

MohdSarar/DeepLearning-Chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 ChatBot IA en Français avec Interface Graphique

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é.


✨ Fonctionnalités

  • ✅ 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 avec CountVectorizer (scikit-learn)
  • 🇫🇷 Compatible UTF-8 : gestion correcte des accents français
  • 🌐 Facilement adaptable à d'autres langues

⚙️ Installation

1. Cloner le projet

git clone https://github.com/ton-nom/chatbot-deeplearning.git
cd chatbot-deeplearning

2. Installer les dépendances

pip install numpy nltk scikit-learn tensorflow

3. Télécharger les ressources NLTK

Les packages nécessaires sont automatiquement téléchargés au premier lancement :

  • punkt
  • wordnet
  • punkt_tab

▶️ Utilisation

🧠 Entraîner le chatbot

python training.py

Cela génère :

  • chatbot_model.h5 : modèle entraîné
  • training_data : données encodées (Pickle)

💬 Lancer l’interface

python chatbot_gui.py

Deux onglets sont disponibles :

  • Madel Data Bot : chat avec le bot
  • Train Bot : interface d’ajout de nouvelles intentions

➕ Ajout des intentions (depuis l'interface)

  1. Onglet Train Bot
  2. Remplir les champs :
    • Tag : nom de l’intention (ex : salutation)
    • Pattern1, Pattern2 : exemples de phrases
    • Response1, Response2 : réponses possibles
  3. Cliquer sur Train Bot
  4. ✅ Le modèle est automatiquement réentraîné avec la nouvelle donnée 🎉

📝 Format du fichier intents.json

Voici un exemple :

{
  "tag": "salutation",
  "patterns": ["bonjour", "salut", "hello"],
  "responses": ["Bonjour ! Comment puis-je vous aider ?"],
  "set": ""
}

Clés possibles

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

🧠 Détails du modèle

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

🌍 Adaptabilité multilingue

Le bot fonctionne actuellement en français.
Cependant, il est entièrement adaptable à d'autres langues, simplement en :

  • Ajoutant de nouveaux patterns et responses dans intents.json
  • Relançant l'entraînement via l’interface ou le script Python

📦 Unicode (UTF-8) est pleinement supporté : arabe, espagnol, anglais, allemand, etc.


💬 Exemple de dialogue

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.

🧪 À venir (améliorations possibles)

  • 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)

📄 Licence

Ce projet est open-source sous licence MIT.
Créé pour l'apprentissage, la recherche et l’expérimentation d’un chatbot conversationnel intelligent.


👤 Auteur

M. Abusarar
Data Analyst & Développeur NLP
🔗 linkedin.com/in/Madel Data

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages