From UBC Wiki

Authors: Ziqing Yuan, Siwei Zhang

What is the problem?

Our system is a meal recommender that aims to support features including suggesting users meals and their recipes with the area/category of meals users search by, and randomly selecting a meal for them.

What is the something extra?

We use NLP to parse users' questions then get keywords in the questions, use prolog build-in http library, and MealDB (which is a free api) for meal/recipe searching.

What did we learn from doing this?

In this project, we try to design a more robust Natural Language Processing(NLP) system, based on the foundation that Prof.Poole offer us in class. We add the verb phrase and verb to the sentence structure to make sure it can understand more complex questions. However, to make the database for NLP more robust, we still needs some further constructions, as English use in real life is very complicated, and it's hard for us to think about all types of questions that people may ask. In practical, this could be improved using machine learning with real human data.

In term of the API part, we found that Prolog is a language that is friendly to HTTP resources, sending http requests is easy since there are many built-in functions, as well as that it get results as an object in Json format so we can quickly retrieve the data we want and don't have to parse the data to specific structures. One thing is not good enough is that the API we are using is a free one, the connection is very unstable that one of our teammates can't connect to it that bring a lot of inconvenience.

Meanwhile, we also tried some ways to make the UI part separated to different parts to make it more like a chatbot which can continuously ask and answer questions.

Links to code etc