我们正在使用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
和Microsoft文章:https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-reference-prebuilt-datetimev2
最佳答案
因此,在C#端的GitHub上的BotBuilder-Samples回购中,有一个示例,自述文件中提供了有关如何处理TIMEX here的解释。
直接访问包含TIMEX表达式库的识别器存储库,您还可以找到有关如何使用regonizers库处理JavaScript here中的TIMEX的示例。
上面链接中给出的示例不会转换为CRON,但允许您执行以下操作(如C#示例自述文件中所指定):
解析TIMEX表达式可为您提供其中包含的属性。
根据设置原始属性生成TIMEX表达式。
从TIMEX表达式生成自然语言。 (从逻辑上讲,这与识别器相反。)
解析TIMEX表达式以产生示例日期时间。 (这产生与识别器(因此产生LUIS)相同的结果)。
根据约束评估TIMEX表达式,以便产生新的更精确的TIMEX表达式。
关于node.js - Timex3日期时间解析和转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54272088/