如何在沃森对话中提取当前日期
Posted
技术标签:
【中文标题】如何在沃森对话中提取当前日期【英文标题】:How to extract current date in watson conversation 【发布时间】:2017-08-28 11:33:30 【问题描述】:我需要在 Watson Conversation 对话模型中创建一个条件,如下所示:
如果“今天的日期”
我不想询问用户当前日期并保存它。
我尝试了很多方法但都不起作用,我也尝试输出日期(不起作用):
"context":
"currdate": "@sys-date:today"
,
"output":
"text":
"values": [
"here it is $currdate"
],
"selection_policy": "sequential"
【问题讨论】:
您的问题令人困惑。但是, @sys-date ?> 输出当前日期 【参考方案1】:对此我不确定,但是在我尝试过的所有测试中,如果用户今天不输入或其他什么,Watson 不会识别,但是,我相信通过代码我们可以做一些事情。使用 IBM Watson 的人可能会正确回答您。
但是,根据我的基本知识:
尝试在条件中使用 now() 并将日期保存在上下文变量中。
返回是:
yyyy-MM-dd HH:mm:ss
使用您的代码获取上下文变量并仅获取日期...在您可以设置条件之后...
JSON 示例:
"context":
"dateHour": "<? now() ?>"
,
"output":
"text":
"values": [
"Now is $dateHour."
],
"selection_policy": "sequential"
我正在研究有关 Watson 中系统实体的所有文档,如果用户不请求,我看不到任何关于提取数据的内容,但是,我怎么说,可能在 IBM 工作的人会回答,我只是想帮助你我的基本知识。
查看有关此实体@sys-date now()
here 的文档。
【讨论】:
【参考方案2】:她是对的,您需要应用程序代码来获取当前日期和时间并将其作为上下文传递。到目前为止,我们所有的系统实体和努力都围绕着理解用户所说的,所以如果他们今天不说,我们就不会知道它的重要性。 从理论上讲,我认为您可以让您的应用程序在用户句子的末尾通过“今天”或其他内容,然后通过处理管道运行它并为您提供今天的日期,但这可能是一种奇怪的用户体验。
【讨论】:
感谢@Mitch 的认可。 +1【参考方案3】:如果您使用now()
,那么您可以重新格式化它以使其正常工作。
我将要比较的日期存储在 $date 中,在您的情况下为 "date": "04-15-2017"
,然后使用以下内容:
要查看日期是否在将来使用:
now().reformatDateTime('dd-MM-yyyy').before($date)
如果过去:
now().reformatDateTime('dd-MM-yyyy').after($date)
您可以阅读 reformatDateTime here。它使用标准的 JAVA 日期字符串格式规则,您可以找到 here。
【讨论】:
有没有办法从 sys-date 中提取月份或年份?以上是关于如何在沃森对话中提取当前日期的主要内容,如果未能解决你的问题,请参考以下文章
我如何能够当前日期输出文件名数据提取 Arcgis Flex