This project implements a chatbot using Natural Language Processing (NLP) techniques. The chatbot is designed to understand user intents and provide appropriate responses based on predefined patterns and responses. It utilizes the nltk
library for natural language processing, scikit-learn
for machine learning, and streamlit
for creating an interactive web interface.
- Understands various user intents such as greetings, farewells, gratitude, and more.
- Provides relevant responses based on user input.
- Maintains a conversation history that can be viewed by the user.
- Built using Python and leverages popular libraries for NLP and machine learning.
- Python
- NLTK
- Scikit-learn
- Streamlit
- JSON for intents data
git clone <repository-url>
cd <repository-directory>
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
import nltk
nltk.download('punkt')
To run the chatbot application, execute the following command:
streamlit run app.py
Once the application is running, you can interact with the chatbot through the web interface. Type your message in the input box and press Enter to see the chatbot's response.
The chatbot's behavior is defined by the intents.json
file, which contains various tags, patterns, and responses. You can modify this file to add new intents or change existing ones.
The chatbot saves the conversation history in a CSV file (chat_log.csv
). You can view past interactions by selecting the "Conversation History" option in the sidebar.
Contributions to this project are welcome! If you have suggestions for improvements or features, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
- NLTK for natural language processing.
- Scikit-learn for machine learning algorithms.
- Streamlit for building the web interface.
Replace <repository-url>
and <repository-directory>
with the actual URL of your repository and the name of the directory where the project is located. Adjust any sections as necessary to better fit your project's specifics.