I am currently working on an android app which should make appointments automatically by reading the incoming messages from your mobile phone. I've managed to create a service which monitors the incoming messages, but now I need an Natural Language Processing algorithm in order to find the date for the appointment.

I've tried DialogFlow, but I found out it cannot be used offline and that is not the purpose of the app. It should work offline too!

Does anyone have a suggestion for a library I can use?

  • $\begingroup$ I think you have a better chance of getting an answer on a forum specialized for Android, or stackoverflow. Btw recognizing dates is usually part of the job made by a named entity recognizer (NER). $\endgroup$ – Erwan Jul 6 '19 at 20:28

Maybe too late, but you could have a look at HeidelTime. It is a Java library that can detect dates, times, durations and time sets in texts for many languages. The downside of HeidelTime is that it seems to be not maintained since 2018. Also, you need the TreeTagger tool in order to use it. But the README of HeidelTime explains the necessary steps quite detailed.

Another alternative or addition to HeidelTime would be defining several regular expressions of common date and time formats and find these in your input text.

| improve this answer | |
  • $\begingroup$ It is never too late! Thank you, but I have to mention that I ended using DialogFlow with NodeJS requests. It doesn't work offline, but I did some notifications services which should alert the users that an internet connection is required. $\endgroup$ – David Buzatu Feb 3 at 18:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.