As today, I am supporting a startup in the education market as an AI advisor. The main product is a chat bot to guide students in the development of projects. We started using DialogFlow for the online chat bot, however, since the project require offline support, we decided to implement our own chat bot technology.

The theory behind chat bots is not difficult, in their most basic form is just a function that receives a string as a request and returns a string as a response. However, because natural languages are ambiguous and requires a lot of contexts, just having a map from strings to strings is not recommended.

We are now implementing TensorFlow for the natural language processing. Now we will have a classifier, that receives a string as a request and check to which class it belongs and returns a response in function of the class. And since we know Python and the theory behind classifiers we tought that implementing TensorFlow could be a trip to the park. We could not have been more wrong.

We tried some examples from blog posts but there were several lines that we had no idea what they were doing. So I decided to start learning more about TensorFlow. First of all, we need to learn the TensorFlow API, but first we needed to learn how TensorFlow works internally. I'm yet in the fourth chapter of Machine Learning with TensorFlow and I still have a lot of questions, but little by little I am understanding some lines of the examples.

It is similar to what I need to learn a new programming language, framework of even a new natural language. I need to put in practice the new knowledge, in the form of a new project, a conversation, or at least writing. TensorFlow is just one of the new frameworks I want to learn this year and fortunaly I have this little project to test my new knowledge. I still need to find where to put in practice more Scala, Haskell, Rust, and maybe a little of Elixir.