Skip to content

oliv11111/NLP-NLG-Chatbot-Project

Repository files navigation

General Knowledge Q&A Chatbot [S.A.M]

Table of Contents

Description

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.

Installation

To run the chatbot, follow these installation steps:

  1. Clone the repository to your local machine.
    git clone https://github.com/oliv11111/NLP-NLG-Chatbot-Project.git
  2. Navigate to the project directory.
    cd NLP-NLG-Chatbot-Project
  3. Run the chatbot script.
    python main.py

Usage

Once the chatbot is installed, follow these instructions to interact with it:

  1. Run the chatbot script as mentioned in the installation instructions.
  2. Follow the on-screen instructions.

File Structure

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.

Evaluation

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.

Discussion

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.

Conclusion

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.

Future Development

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.

About

University NLP, NLG, NLU, chatbot python project from my final year at university, University of Nottingham Computer Science

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages