Reputation: 19366
I'm building a chatbot and I'm new to NLP.
(api.ai & AlchemyAPI are too expensive for my use case. And wit.ai seems to be buggy and constantly changing at the moment.)
For the NLP experts, how easily can I replicate their services locally?
My vision so far (with node, but open to Python):
Are entities and intents all I'll need for a chatbot? How good will NodeNatural/StanfordNER be compared to NLP-as-a-service? What headaches am I not seeing?
Upvotes: 5
Views: 2754
Reputation: 83
Two things to think about are: How are you planning on handling the generation side of things? Entity extraction and classification are going to be useful for the Natural language understanding (NLU) side of things, but generation can be tricky in itself.
Another thing to think about is that the training and development of the pipeline of these models is often a separate problem form the deployment. The fact that you want to use node suggests that you already know about deploying software, I think. But remember that deploying large machine learning models in a pipeline can be complicated, and I suspect that these API's may offer neatly packaged pipelines for you.
Upvotes: 0
Reputation: 451
You seems to have done your home work. Like you said,following things will help you along the way,
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!
Upvotes: 3
Reputation: 1216
Have a look at Luis.ai (from Microsoft). It will help you build a Natural Langauge model that identifies intents. You can map intents to actions. It allows you to include pre-configured NLP models so that your bot can decipher text and return entities (names, time, geography, etc) and Luis supports many languages. You can of course add your own entities.
And then you train it with utterances. And when users talk to your bot, those utterances are stored online and Luis.ai which will suggest that you add some to further refine your model via its suggest feature (this allows incremental improvements without coding). Now for the coding stuff...
Visit Luis.ai and when you build your model (free) you can test it via the testing console here: https://dev.projectoxford.ai/docs/services and then you could use their Bot Framework; however I am building my own in JQuery/Bootstrap (have a look at this to see what I am building here http://onlinebotbuilder.com) and handling the json from the server via a post to the Cognitive Services API (which you would do in Python). Currently they allow 10k utterances per month; which for testing is plenty. Tip: When creating your model start with 2 intents and train your model to identify those. Keep it simple, and then expand scope as you go. Hope this helps.
Upvotes: 0