Extension JChronic peut être votre meilleur pari. Je pense, donné les réponses à this question, il est peu probable qu'une bibliothèque pré-construite pour cela existe (bien qu'il semble qu'une telle chose pourrait être utile ... Je suppose que les cas d'utilisation majeurs pour l'analyse des dates en langage naturel serait être encore plus utile s'ils avaient la possibilité d'extraire des données supplémentaires à partir de chaînes fournies par l'utilisateur). Du point de vue de l'implémentation, le plus simple est d'étendre JChronic, car il supporte une partie importante de votre cas d'utilisation, mais plus de as you can see from the unit test les informations superflues devraient déjà être ignorées par le framework. Heureusement, aussi, si vous regardez the main class, il ne devrait pas être trop difficile d'étendre/modifier/envelopper la méthode parse() pour prendre en charge un scanner personnalisé pour un titre d'événement. (Ma préférence pour ceux-ci serait d'envelopper le cadre plutôt que de le fourchette et de le modifier, car cela vous permet de bénéficier plus facilement de toute amélioration du code sous-jacent). En fin de compte, ce qui peut s'avérer le moyen le plus direct de le faire est de générer un analyseur d'expressions régulières qui ignore la majeure partie de ce que JChronic essaie de capturer (ce qui signifierait de se familiariser avec le code source de JChronic). La clé de la réussite de cette implémentation, comme pour tout projet de type PNL, est d'avoir autant d'exemples que possible, de préférence sous la forme de tests unitaires automatisés (même si les tests de test reproduisent plusieurs fois la même fonctionnalité). , il vaut mieux avoir plus d'exemples que moins). Heureusement, puisque nous parlons de langage naturel, de tels tests devraient être particulièrement faciles à obtenir, car même les amis non-programmeurs, la famille, etc. devraient être en mesure de vous fournir des «descriptions d'événements» (ou ce que vous voulez appeler leur). Vous voudrez aussi vous concentrer sur les cas où le bit d'analyse de date pourrait interférer avec le bit d'analyse de localisation/titre (par exemple dans "sigur rós at 20:00" le "at" fait clairement partie du temps alors que dans "party" au samedi de Phoebe "ce n'est clairement pas). Je sais que j'ai beaucoup parlé de JChronic, mais je pense que c'est un choix naturel pour votre problème car il couvre déjà une grande partie de la «partie difficile» de l'analyse des «rendez-vous» en langage naturel, c'est-à-dire le flou de notre langue que nous utilisons au sujet du temps, et est déjà implémentée dans la langue que vous ciblez.
double possible [date du langage naturel et analyseur de temps pour java] (http://stackoverflow.com/questions/1410408/latural-language-date-and-time-parser-for-java) – nawfal