We wanted a script, which, on getting a query could return a perfect answer. We constructed a database using the posts of the discuss forum of ERPNext and the documentation for frappe. Whenever a user searches for a query, the bot should return a list of best suited posts from this database ranked in order of their suitability. This suitability (or fitness) should depend on various factors like the amount of matches, length of the post, number of likes, reads, incoming links, average length of sentence, average length of word, is it a documentation or a post, is it a reply or a question et al.
Core of the thought was that the top 10 or 15 answers will be selected from the database based upon full text search, and then they will be ranked according to fitness values which are to be predicted by the bot.
We used the concept of artificial neural networks to design a self learning bot. We have referred the neural network implementation given in the this github repository. And this is our attempt of plugging the above stated neural network into the problem of a support bot.
As described here, we are currently working with a 3 layer neural network :