我正在研究一种自然语言解析器,它用英语检查一个句子,并提取一些信息,如姓名,日期等。
例如:“让我们下周二下午5点在海滩见面。”
所以输出将是这样的:“让我们在海滩1700小时迎接15/09/2009 ”
基本上,我想知道的是是否有任何框架或库可用于JAVA执行这些操作,例如从句子中解析日期并提供具有某种指定格式的输出。
此致 Pranav
感谢您的回复。我查看过几个NLP,例如LingPipe,OpenPL,Stanford NLP。我想问他们为java的日期解析做了什么。
答案 0 :(得分:23)
Natty是JChronic的一个非常好的替代品。
答案 1 :(得分:3)
答案 2 :(得分:1)
你试过jchronic吗?但是,我怀疑任何库都可以直接使用句子:你必须自己提取句子片段并将它们提供给NLP日期解析框架,也许是基于试验n错误(更大和更大的片段,直到框架抛出一个错误)。
答案 3 :(得分:0)
我认为没有任何框架能够开箱即用。你可以做的是创建一组正则表达式来匹配这些模式。
答案 4 :(得分:0)
答案 5 :(得分:0)
我在Python的NLTK中编写了一个NLP脚本,并将结果提供给了Ruby的chronic。
答案 6 :(得分:0)
对于我的用例,我对chrono-java感到更幸运-不幸的是,它看起来很陈旧,并且在任何Maven存储库中都不可用(由于构建已损坏,因此也无法通过https://jitpack.io/使用),所以您有了自行修复和构建它。
但是,签出代码并修复依赖项(maven-javadoc-plugin
缺少groupId并更新了版本),使我能够成功构建并运行一个简单示例:
List<ParsedResult> results = Chrono.Parse("Datum Freitag, 08.04. bis einschl. Sonntag 10.04.2016");
results.forEach(result -> System.out.println(result));
导致2个提取日期:
ParsedResult: " 08.04" > 04/08/2018 12:00
ParsedResult: "10.04.2016" > 04/10/2016 12:00
答案 7 :(得分:0)
相当古老的问题bur PrettyTime::NLP是另一个尝试