有没有适用于Java的现代自然语言日期解析器,支持部分日期?

4
我有两个问题,想知道能否一次解决。我正试图在Java(或Scala)中进行自然语言日期解析,并一直使用JChronic,这是出色的RubyGem Chronic 的端口。

但是存在两个问题:

  1. JChronic 使用 java.util.Calendar 而不是 Joda-Time,而我认为可以非常合理地说,Joda-Time 是 JDK 日期库的替代品,或者应该成为其替代品。如果 Joda-Time 没有取代现有日期库,那么在 Oracle 完成诉讼并开始维护 Java 之后,JSR 310 肯定会这样做。

  2. JChronic 不能处理“一般”的日期时间解析。如果我告诉它要解析“下周四下午4点”之类的内容,它会优雅地处理并给出正确时间的 Calendar 对象。但是如果我只说“2011年”或“1963年1月”之类的内容,它就无法处理 Joda-Time 中的一般日期范围或 Partials

第二个问题比第一个更加令人担忧。我正在尝试从网页中提取与文档(如书籍、报纸文章、网页等)有关的日期,其中发表日期和版权日期很重要。
我目前感觉只能编写自己的代码,或者可能将老旧的JChronic转换为使用Joda-Time并添加对部分支持的支持。是否有任何替代解决方案可以满足至少(2),甚至也许是(1)的要求?

1
Natty可能是答案 - http://natty.joestelmach.com/ - Tom Morris
1个回答

0

你可能想要查看SUTime,这是一个时间解析器。他们的示例代码和在线演示显示支持部分。 SUTime.Temporal对象应该能够为您提供相应的Joda-Time对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接