How Do I Add NLP to a Mobile Application?
Before getting into an actual discussion about NLP, I want to take a second in order to reflect on my writings on Medium. I know that this is not the engaging type of content that makes people come to this site, but because I have used this platform as something more akin to a blog, I feel that I am allowed to ramble.
Writing for Medium is something that I do for myself in order to document my projects throughout the year, and II don’t really take it too seriously. I generally whip out an article in the few remaining hours of a Sunday night, writing down whatever thoughts I have on the week; it doesn’t really matter to me if it is about a project that I have been working on, or if it is simply about the fact that I haven’t been working on anything. While I don’t think that there is anything wrong with my current approach to writing on Medium, I would like to try and take it a bit more seriously. I would really like to move my writings from just being a way to briefly document personal projects to being stories that might be able to help people in some way. In the end, I don’t know if I am going to shift my writing strategy so I can enhance my communication skills or if I am simply going to continue doing the same thing that I have been doing. Only time will tell.
On another note, while I didn’t get anything of note done this week, I am starting to get back into the world of NLP for an app that I worked on called Sentiment. The idea was to create a journaling app that would use machine learning in order to determine the emotions of each of the entries into the application. However, while my team and I were able to get the basic journaling portion of our app completed, we were unable to actually integrate the model into the app.
After the project was put on hold by the group, I did research into different methods that could be used in order to create an NLP algorithm for the application. While surfing the internet for possible solutions, I stumbled across an architecture that used word vectors and attention layers in order to derive meaning from a text; this architecture that I found was the transformer. I personally thought that the method used in transformers to analyze language was super cool, and after doing a bit more reading I came to a basic understanding of how a transformer functioned from beginning to end. However, life soon got in the way and I was never actually able to start writing the transformer that was going to end up in Sentiment.
Now that a couple of weeks have gone by and life has loosened up a bit, my goal is to start actually writing the transformer. While I may understand how the architecture works, I don’t know what integrating the model into the application is going to look like. A lot of the issues that I am going to run into are unknown as of now, which means that I am going to have to educate myself along the way. The only issue that I know is going to come up against is RAM, as the word vectors that are going to be needed in order to quantify the journal entries can be up to 2GB. For now, my goal is to see if I can find a way to store those locally, but I don’t know if that will be possible. I know I will find a way to do it, but as of now, I am at a loss of what that will be.
Overall, this was a rambling article that didn’t really live up to the title, but I think that is okay. I’ll get better at writing and maybe one day, people will actually read what I write. In the end, it all depends on what I choose to do. As for this next week, I choose to work on NLP (and a little AWS). Hopefully, I’ll have something a bit more interesting to share.