Day n: Planning the Masterpiece (Part 0.5)

(Note: I meant to post this yesterday 15. Jan but forgot to set the draft tag to false. But also I updated it a bit…)

This is day n because I’ve completely lost count of the days and am not too keen on going back to count them.

As I wrote about at some point in December I had started thinking of what I could do for my final project as an apprentice, aka the masterpiece. This week is all about planning it out completely and coming up with some sort of timeline for the following six weeks.

My plan so far, which will be fine-tuned throughout the week as I speak to the relevant persons about it including the data team and the head of data intelligence, involves some kind of neural network model that outputs data that I can then pass over into a user-facing application.

I’ll be using a MEAN stack, i.e. Mongo (database), Express (web framework), Angular (front-end framework), and Node (server). I have quite a bit of experience with all of those except Angular, which is fairly new to me and I’ve only started during my holidays. However, that’s not the main hinderance of my project but rather the neural network model.

I’ve been told that there are talks of a chatbot that could ease the load of the department that deals with complaints and etc. (I forgot the name of that department…). I had an idea a few months ago about a chatbot but to help customers decide on a holiday but a chatbot dealing with common issues feels a lot more necessary.

The plausibility of creating a model to learn from reviews and complaints (as well as responses) in the next few weeks is a bit of a question mark. The problem is that it’s been quite difficult to get a hold of the emails regarding complaints so that’s, of course, a huge hurdle and I can’t depend on this idea… But at the same time I know a model exists that takes the reviews from hotels and such and uses them to answer questions. Developing that into a chatbot would be quite great, though it would be a bit different from the previous idea.

There’s also recommendations based on images, which I like as well, because it involves more visualisation (because its images…). Though, as I was told, it would be best to scope this to, say, photos of beaches, which are the most popular amongst customers. That’s also one of the reasons why I’m leaning towards this idea. It’s not easier, but easier to scope into a smaller level. It’s both interesting and doable in the next two months, unlike the previous idea. I’ve rarely worked with images before (other than EMNIST) so it’ll be a bit of a challenge but I know I can do it. Apparently this could also be quite useful for the data team, as they are working on image-based models.

The ideas seem a bit abstract right now but I will get this sorted by the end of this week, with the help of the data team of course.

Meanwhile, I’ll be setting up the web application, because no matter what my model will look like it will be a similar structure. But, of course, I’ll make it adaptable because the two ideas diverge in UI. So… I guess this will be a top down approach. I mean, this week I’ve figuring out how to create the components that I want in Angular. Somehow I have a handy book in my library for that.

My main goal is to create something that could be useful for the company in the future (after much more work on it). I don’t even need a full-fledged application, as even just one or two functionalities of the eventual application would be an accomplishment.

80% of the Plan

As I said, I’ve planned out most of this project besides the actual neural network because that depends on the data that I can receive from the, uh, people in charge of that stuff (which is not the data team for some reason). But I promise I will explain that all this week (i.e. by Friday).

That’s the data analysis stuff. But at least I can talk about the development aspect of this project. So, uh, MEAN.

Source: Nwanko

Just ignore the “js” part of the Angular one because I’ll be using TypeScript (i.e. conveniently just called Angular).

Anyway, the model that I will work on with the data team will probably output a JSON of the model’s response, for example a piece of text as a response to the question. Why the database? Because we don’t want to run the model every single time. This is probably where the scoping starts because I doubt that I can encompass, for example, questions about all hotels, especially in the database. Maybe the x most popular ones would be the best bet because that is more plausible.

Luckily, I spoke with the head of data intelligence today and will be revisiting the data team again tomorrow so I can finally figure out the model that we can develop, i.e. get the necessary data that I need and go go go. Therefore I can finally complete my planning in the next day or two (should this lung infection finally pass and I don’t have to visit the doctor again), just as planned…

Here’s a rough sketch:

  • 14 - 18 Jan: Fine-tuning of the overall plan, including speaking with relevant people.
  • 21 - 25 Jan: Application development (REST API & front-end) + model creation
  • 28 Jan - 1 Feb: Deployment of first prototype + model training
  • 4 - 8 Feb: Application development (integrate Mongo) + model training
  • 11 - 15 Feb: Deployment of second prototype + TBD
  • 18 - 22 Feb: TBD
  • 25 - 28 Feb: TBD

A concrete software design is coming up soon. Possibly with diagrams and mock-ups because I do love those… I drew some ugly ones on paper but those should never see the light of day.

TL;DR

Just some blurbs about what to do with my masterpiece. I still have some fine-tuning to do but please bear with me.

Deirdre Bringas Written by:

Deirdre is a self-proclaimed canine specialist by day and software engineer by night. She is a Boston Celtics fan despite living in San Diego most of her life, and listens to Earth, Wind, and Fire and Bruce Springsteen every day.