I am currently trying to understand and implement a conversational agent, seeing in the network there are many apis to do something similar, but what they generate are "intelligent" bots, not intelligent conversational agents (wit.ai, recast.ai, Api.ai, etc.), however I have seen Watson virtual agent which paints very well and seems to cover my needs.
However I am a developer and I would like to ask those with more experience, which would be the way to go to implement my objective, an agent similar to what the video of watson virtual agent, with thematic ones that I can train in the agent, and That he can learn from it.
Take a language course, but focused on the generation of programming languages, lexical analysis, syntactic, semantic, etc., however I know that the natural language can not be compared to the language of the machines, reading some thesis vi to make a Conversational agent could do a great grammar (I can not imagine its syntactic tree), using probabilities with ngrams, or using neural networks or expert systems.
As for the expert systems I understand that for these "learn" needs their knowledge base be modified, and as for the neural networks these fit, "learn", so I think that it is best to use neural networks.
Summarizing which way should I go? , I'm currently taking stanford's natural language processing course, and a deep learning course from google, I thought I'd use Natural Language Tool Kit(ntlk) for that important or natural part.