【问题标题】:Timex3 datetime parsing and conversionTimex3 日期时间解析和转换
【发布时间】:2019-01-19 22:59:11
【问题描述】:

我们正在使用 Microsoft (LUIS) 的语言理解服务,它允许我们从用户输入中提取日期和时间。

示例字符串

"my vacation is on 2019-10-01 at 3pm"

提取到 Timex3 对象:2019-10-01T03:00pm,这很好,但如果不能完全识别 datetime,那么 timex 有它自己的格式,我不确定如何解析。

Timex 支持模糊数据,如:

XXXX-05-02 - May 2nd, any year
XXXX-05-02,XXXX-05-05,P3D - May 2nd to 5th

这种格式很棒,但我不确定如何解析所有可能的组合。我正在尝试获取用户输入来安排提醒。因此,对于 XXXX-05-02,我想在每年的 5 月 2 日向他们发送一次提醒。大多数调度程序都支持 CRON 格式,所以理想情况下我希望能够将 TIMEX 转换为 CRON,但我找不到任何有关如何执行此操作的信息。唯一可用的文件是: Timex3规格:
http://www.timeml.org/tempeval2/tempeval2-trial/guidelines/timex3guidelines-072009.pdf 和微软文章:https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-reference-prebuilt-datetimev2

【问题讨论】:

    标签: node.js datetime parsing microsoft-cognitive azure-language-understanding


    【解决方案1】:

    因此,在 GitHub 上的 BotBuilder-Samples 存储库中,在 C# 端,有一个示例,在自述文件中给出了有关如何处理 TIMEX here 的一些解释。

    直接访问识别器存储库,其中包含 TIMEX 表达式库,您还可以找到如何使用 regonizers 库在 JavaScript 中处理 TIMEX 的示例,here

    以上链接中给出的示例不会转换为 CRON,但允许您执行以下操作(如 C# 示例自述文件中所述):

    • 解析 TIMEX 表达式,为您提供其中包含的属性。
    • 根据设置的原始属性生成 TIMEX 表达式。
    • 从 TIMEX 表达式生成自然语言。 (这在逻辑上与识别器相反。)
    • 解析 TIMEX 表达式以生成示例日期时间。 (这会产生与识别器(以及因此 LUIS)相同的结果)。
    • 对照约束评估 TIMEX 表达式,以便生成新的更精确的 TIMEX 表达式。

    【讨论】:

      【解决方案2】:

      如果我理解正确,您想将标准化的 timex 值转换为您的 cron 格式吗?

      理想的情况是找到规范化的值模式并提取信息以按照您的格式进行解析。在 TIMEX3 指南中,提到了四种类型的 TIMEX 类型,它们具有其特定的标准化值模式。

      • 如果匹配日期类型,则可以从日期值中提取年/月/日
      • 如果匹配了 time 类型,您还可以按小时/分钟的方式提取时间
      • 如果匹配了duration类型,则还可以找到事件的开始和结束时间点。

      在某些情况下,它们的值低于指定值,例如“XXXX”,而不是一整年。然后根据上下文或至少从当前参考日期,这个值可以转换为某个绝对值。

      【讨论】:

        猜你喜欢
        • 2017-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-09
        • 2018-03-05
        相关资源
        最近更新 更多