我正在尝试使用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时间。
答案 0 :(得分:1)
是的,this is an known issue right now是a_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值。