首页 文章

Alexa插槽AMAZON.DATE处理日期没有年数

提问于
浏览
0

我正在构建Alexa技能并使用AMAZON.DATE插槽类型来获取日期 .

我的问题是,当用户说出没有一年的日期时,Alexa会处理它并返回带有未来日期的日期字符串 .

示例 - 今天是 2017-09-20 ,用户询问Alexa关于日期 'Sixth June' ,Alexa返回 2018-06-06 .

我想使用最接近的过去日期而不是最接近的未来日期,对于用户未在话语中指定年份的情况 . 如果用户指定年份,我不想更改日期年份 .

我无法使用Python在AWS Lambda上处理此问题,因为Alexa在JSON正文中发送完整的日期字符串,无论用户是否提供年份 .

我不知道是否有可能用Alexa处理这样的用户输入 . 有什么我可以做的关于AMAZON.DATE插槽或其他方式来处理这样的用户话语?

1 回答

  • 1

    你不能用内置的日期插槽做到这一点,

    映射到特定日期(例如“今天”或“十一月二十五”)的话语将转换为完整日期:2015-11-25 . Note that this defaults to dates on or after the current date.

    资料来源: - https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference#date

    你可以尝试的一个逻辑是做一个自定义逻辑 . 取当今日期和明年用户输入日期之间的差异 . 如果它们之间的月份差异大于6个月,那么最接近的将是未来日期 . 如果差异小于过去6个月的日期 . 假设用户在7月25日(2017年)提交输入,今天日期是2017年8月25日 . 现在您可以在7月25日添加1年,然后在2018年7月25日到期 . 2017年7月25日到2017年8月25日之间的差异大于6个月所以你想要的日期是过去的日期,即2017年7月25日,反之亦然 . 为了更准确,您可以计算数天而不是数月

相关问题