【问题标题】:Natural Language date and time parser for java [closed]java的自然语言日期和时间解析器[关闭]
【发布时间】:2010-11-27 11:31:29
【问题描述】:

我正在开发一个自然语言解析器,它检查英文句子并提取一些信息,如姓名、日期等。

例如:“我们下周二下午 5 点在海滩见面。

所以输出将类似于:“让我们在 2009 年 9 月 15 日下午 1700 点在海滩见面

所以基本上,我想知道的是是否有任何框架或库可用于 JAVA 来执行此类操作,例如从句子中解析日期并以某种指定格式给出输出。

问候, 普拉纳夫


感谢您的回复。我看过一些 NLP,例如 LingPipe、OpenPL、Stanford NLP。我想问他们有什么东西可以用于java的日期解析。

【问题讨论】:

标签: java datetime parsing nlp


【解决方案1】:

我认为没有任何框架可以开箱即用。您可以做的是创建一组正则表达式来匹配这些模式。

【讨论】:

    【解决方案2】:

    您可以使用JChronicChronic 的 Java 端口。

    【讨论】:

      【解决方案3】:

      你试过jchronic吗?但是,我怀疑任何库都可以直接处理句子:您必须自己提取句子片段并将它们提供给 NLP 日期解析框架,也许是在试错的基础上(越来越大的片段,直到框架抛出一个错误)。

      【讨论】:

        【解决方案4】:

        Natty 是 JChronic 的一个非常好的替代品。

        【讨论】:

        • 我发誓 Natty 几乎可以处理所有事情。例如,2 wednesdays from now 无法被我找到的任何其他解决方案解析。 +1
        • 我有一个系统,我正在接收字符串,我需要(根据最佳猜测)从中删除 URL、任何可能是 HTML 的内容和任何可能是日期的内容 - 我已经发现 Natty 非常适合后者,但我已经为 4 月、5 月和 6 月建立了例外,这些都是有效的女孩名字。
        • 似乎 Natty 遇到了格式冲突的问题。试试15/12/2004。它认为它是today 15th hour
        • 很好,您甚至可以在这里在线演示中试用解析器:natty.joestelmach.com/try.jsp#
        【解决方案5】:

        我建议将UIMAOpenNLP 连接器和相同的手工正则表达式规则一起使用。

        【讨论】:

          【解决方案6】:

          我在 Python 的 NLTK 中编写了一个 NLP 脚本,并将结果提供给 Ruby 的chronic

          【讨论】:

            【解决方案7】:

            对于我的用例,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
            

            【讨论】:

              【解决方案8】:

              相当老的问题 bur PrettyTime::NLP 是另一种尝试

              【讨论】:

                猜你喜欢
                • 2010-09-06
                • 1970-01-01
                • 2012-07-05
                • 2010-10-10
                • 1970-01-01
                • 2010-12-02
                • 1970-01-01
                相关资源
                最近更新 更多