Building your own NLP API

You seems to have done your home work. Like you said,following things will help you along the way,

  • any classification algorithm for identifying the intent such as sklearn's LinearSVC or LogisticRegression Classifier
  • Any good NER tool such as StanfordNER or CRFsuite. CRFsuite has easy to use pthon wrapping called pycrfsuite.
  • A sentiment analysis tool for more human like conversations. its better if you go with python because python has lot of free libraries for the same.

Only benefit of services such as wit.ai or api.ai is their heavily trained ready to use intents and models.You too will be able to achive similar accuracy if you are able to provide decent amount of training to your bot.

It's better if you build on some existing opensource libraries rather than building everything from scratch. Please check my opensource project on github for wit.ai/api.ai similar interface. Happy coding!