I am planning to build a chatbot which can get the user input and analyze and call different web service in Java. For example,
Get customers who bought books between 01/MAR/2019 and 10/MAR/2019.
Get books published by ABC Publications.
Create customer with name ABC and address 12, Hill View Street, London.
For the first one, it has to identify it is a retrieve request as it is "Get" call and it is about the book and also date. In second text need to extract keywords "books" and publication name "ABC". The third one is different, it's a create customer request call with name and address.
As I am more comfortable with Java, I am looking for NLP which can achieve above. On the internet, I find more on OpenNLP and CoreNLP. Examples and samples are available widely for OpenNLP.
So I want to check whether am I in the right direction? I see a lot of other things like Apache Ruta UIMA but not sure it is applicable for my use case, as I don't find much information in net.
Yes I'd say those two NLP libraries are widely used for Java. However, if you are going to make small project that doesn't really need to scale out or have to deal with big data, then NLTK or spaCy ( and probably with scikit-learn) can be a good alternative. Those are all Python based but it's not that difficult to use.