gpt4 book ai didi

c# - 在 .NET Core 中解析 Timex 表达式

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:24 24 4
gpt4 key购买 nike

使用 LUIS 引擎,我收到 XXXX-10-28 作为实体值中的日期。

我尝试使用 Chronic 进行解析,但 Chronic 不适用于 timex 库/格式。

我期待以下字符串作为输入

  • XXXX-10-28 应等于 2018-10-28( future )
  • 2018-10-02TMO 应等同于 2018-10-02明天

请注意 XXXX-XX 代表 YYYY-MM 但它没有 numeric

ASP.NET Core 中是否有任何库或方法可以将此类字符串解析为有效的 datetime 格式?

最佳答案

您可以使用 Microsoft.Recognizers.Text.DataTypes.TimexExpression 包 from NuGet .它是 Microsoft Recognizers Text 项目的一部分 here on github

我发现了两种使用这个库的方法:

使用 TimexProperty 解析表达式并自己猜测年份:

var parsed = new Microsoft.Recognizers.Text.DataTypes.TimexExpression.TimexProperty("XXXX-10-28");
Console.WriteLine(parsed.Year); // = null
Console.WriteLine(parsed.Month); // = 28
Console.WriteLine(parsed.DayOfMonth); // = 10

使用 TimexResolver 解析时间

var resolution = Microsoft.Recognizers.Text.DataTypes.TimexExpression.TimexResolver.Resolve(new [] { "XXXX-10-28" }, System.DateTime.Today)

resolution.Values 将包含一个包含两个解析条目的数组,一个用于该日期的前一次出现,一个用于该日期的下一次出现(基于您传递到 Resolve 的 DateTime方法。

请注意,根据个人经验和我在 github 上看到的内容,在撰写本文时,这个包可能相当 buggy使用更高级的表达式。

关于c# - 在 .NET Core 中解析 Timex 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52593835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com