LuisRecognizer结果在DateTimeV2分辨率Json中不显示“ Value”字段

时间:2019-02-07 11:54:24

标签: c# .net botframework luis

我正在尝试使用LUIS提取dateTime。

环境:BotFramework V4 郎:c#/ .NET

我正在使用内置的识别器来提取用户提供的日期/时间。

var recognizerResult = await_services.LuisServices[LuisKey].RecognizeAsync(turnContext, cancellationToken);
Newtonsoft.Json.Linq.JObject Entities1 = recognizerResult?.Entities;

现在,当我打印此JSON文件时,在“分辨率”部分中没有得到“ Value”字段。这是提取实体时得到的JSON响应。

Query String : fly on 20 mar return on 24 mar Entities Returned { "$instance": { “datetime”: [ { “startIndex”: 7, “endIndex”: 13, “text”: “20 mar”, “type”: “builtin.datetimeV2.date” }, { “startIndex”: 24, “endIndex”: 30, “text”: “24 mar”, “type”: “builtin.datetimeV2.date” } ] }, “datetime”: [ { “type”: “date”, “timex”: [ “XXXX-03-20” ] }, { “type”: “date”, “timex”: [ “XXXX-03-24” ] } ] }

我在创建识别器时尝试使用includeAPIResult : true参数。结果还是一样。请指出我在做什么错。 以及如何从json响应中提取正确的Date时间。

2 个答案:

答案 0 :(得分:1)

是的,this is an known issue right nowa_list = [1, 2, 3] b_list = ["a", "b", "c"] d = [{"key1": a, "key2": b} for (a, b) in zip(a_list, b_list)] print(d) # [{'key1': 1, 'key2': 'a'}, {'key1': 2, 'key2': 'b'}, {'key1': 3, 'key2': 'c'}] 软件包。本质上,它“吞噬”了原始LUIS响应的重要细节。

我的专业建议是避免使用LuisRecognizer,而直接使用LuisRecognizer上的全部内容。使用LuisClient的唯一真正原因是,如果您想要允许您与其他识别器实现一起使用的额外抽象级别。如果您“全神贯注”于LUIS,那么您可能还是想获得LUIS的全部保真度。

答案 1 :(得分:-1)

我做这样的事情:

pass2

然后将其转换为我解析为dateTime的字符串。鉴于luis成功设置了MyDateEntity值。