我正在构建Alexa技能并使用AMAZON.DATE插槽类型来获取日期 .
我的问题是,当用户说出没有一年的日期时,Alexa会处理它并返回带有未来日期的日期字符串 .
示例 - 今天是 2017-09-20
,用户询问Alexa关于日期 'Sixth June'
,Alexa返回 2018-06-06
.
我想使用最接近的过去日期而不是最接近的未来日期,对于用户未在话语中指定年份的情况 . 如果用户指定年份,我不想更改日期年份 .
我无法使用Python在AWS Lambda上处理此问题,因为Alexa在JSON正文中发送完整的日期字符串,无论用户是否提供年份 .
我不知道是否有可能用Alexa处理这样的用户输入 . 有什么我可以做的关于AMAZON.DATE插槽或其他方式来处理这样的用户话语?
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日,反之亦然 . 为了更准确,您可以计算数天而不是数月