To run the project:
- Clone the repository to your local repository/dowload the entire folder to your local machine
- Open the project in your desired IDE
- Run only the NottVerySmart_main.py file and the chatbot will be ready to go
All the files used to build this project:
- Food List.xlsx (added a new column is_beverage to indicate whether the item is a beverage)
- NottVerySmart_check_quit.py (detects the word "quit" and exit the program if detected)
- NottVerySmart_display_menu.py (displays menu based on stall preference)
- NottVerySmart_functions.py (consists several common functions used among the files)
- NottVerySmart_information.py (provides details of the items)
- NottVerySmart_intents.json (json file consists of data that includes tags, patterns and responses used to train the model)
- NottVerySmart_main.py (handles the model training and linking the all functionalities of the chatbot together)
- NottVerySmart_model.tflearn.data-00000-of-00001 (to store trained model data)
- NottVerySmart_model.tflearn.index (to store trained model data)
- NottVerySmart_model.tflearn.meta (to store trained model data)
- NottVerySmart_order.py (handles the food ordering process)
- NottVerySmart_recommendation.py (provides food and beverage recommendations based on stall preference)
- NottVerySmart_spelling.txt (text file that consists of 5 words that can be detected if spelling error is present)
- NottVerySmart_spelling_error_detector.py (detects spelling errors and performs spelling correction)
Moving forward/scalability:
- Shortcomings and improvements that can be made on the chatbot
- Spelling error detector: (a)Shortcomings: can only detect single words and not a string of words, can only detect spelling errors to a certain extent, words that are able to be detected are limited (b)Improvements: add more words to the dictionary, generate another function to accommodate more variants of the words to increase sensitivity
- Data in the json file: (a)Shortcomings: might not be sufficient to train a highly accurate model, however if more data is fed into the json file, greater noise may also be introduced (b)Improvements: include more but important keywords under each tag
- Cleanliness of the codes: (a)Shortcomings: codes may not be clean enough due to time constraints (b)Improvements: do more refactoring on the codes and reduce repetitive codes as much as possible
- Print receipt function: (a)Shortcomings: unable to save receipts automatically (b)Improvements: add functions to allow the users to save the receipts in the form of a txt file for reference
- Strategies to upscale the chatbot
- Build a GUI interface for the chatbot to elevate user experience
- Embed the chatbot to web applications or mobile applications so that it can be exposed to a wider range of users
- Develop a dedicated application to the chatbot to enable more functionalities and interactions
- Add more advanced functionalities to the chatbot to accommodate greater humanized services
- Market potential of the chatbot
- Can be expanded and used in wide variety of restaurants and cafeterias within Malaysia to provide a speedy and humanized food ordering service
- Able to bring convenience to customers when ordering food especially during these trying times where human and human interactions are encouraged to be reduced
- Able to increase customer experience and customer loyalty by providing personalized services accompanied by an one-on-one chat experience
- Provide high availabilty and fast responses to satisfy the customer's requests and at the same time reducing costs for customer service as the need for employees is reduced
- Help understand the customers' needs by collecting and storing data and analyzing queries to understand the market demand and enhance productivity