This project is General Knowledge NLP chatbot, developed as for the Human AI Interaction module at the University of Nottingham. The project is entirely implemented in Python The report covers the project background, system structure, intent matching, small talk, general knowledge Q&A, evaluation, discussion, and conclusions regarding the achievements and future capabilities of the final system.
To run the chatbot, follow these installation steps:
- Clone the repository to your local machine.
git clone https://github.com/oliv11111/NLP-NLG-Chatbot-Project.git
- Navigate to the project directory.
cd NLP-NLG-Chatbot-Project - Run the chatbot script.
python main.py
Once the chatbot is installed, follow these instructions to interact with it:
- Run the chatbot script as mentioned in the installation instructions.
- Follow the on-screen instructions.
The project follows a clean file structure:
main.py: Implementation of the main chatbot loop.pre_processing.py: Functions for text preprocessing.intent_matching.py: Implementation of intent matching using logistic regression.small_talk.py: Functionality for small talk responses.question_answering.py: Implementation of general knowledge Q&A responses.readMe: Documentation file for the project.
User testing instances revealed strengths and areas for improvement. The chatbot handled small talk well but showed confusion when faced with combined small talk and question queries. Overall, positive feedback was received for its question and answering capabilities.
Instances of user testing demonstrated success in maintaining natural conversation through small talk and accurate question answering. Areas for improvement include handling mixed small talk and question queries. The system effectively stopped on user signals.
The chatbot has the ability to understand the intent of the user's input and respond appropriately, thanks to its use of text classification for intent matching. This allows the users to provide relevant answers to the user's questions and engage in meaningful/natural conversation. Additionally, the chatbot is able to handle small talk and provide appropriate responses through the use of cosine similarity. An area where this could be improved is better handling of queries that contain both a reply to small talk and a question. However, overall, the combination of the two techniques allows the chatbot to provide a natural and effective conversational experience while also being able to answer general knowledge questions.
To enhance the effectiveness of the chatbot, future development could focus on incorporating additional data sources. Expanding the general knowledge dataset with more diverse and extensive information would enable the chatbot to provide more accurate and comprehensive answers. Additionally, including data on specific topics, recent events, or trending subjects would keep the chatbot's knowledge up-to-date and relevant. Continuous improvement and enrichment of the dataset will contribute to a more robust and knowledgeable chatbot for users.