我正在构建Alexa技能并使用AMAZON.DATE插槽类型来获取日期。
我的问题是当用户说出没有一年的日期时,Alexa会对其进行处理并返回带有未来日期的日期字符串。
示例 - 今天为2017-09-20
,用户向Alexa询问日期'Sixth June'
,Alexa返回2018-06-06
。
我想使用最接近的过去日期而不是最接近的未来日期,用于用户未在话语中指定年份的情况。如果用户指定年份,我不想更改日期年份。
我无法使用Python在AWS Lambda上处理此问题,因为Alexa会在JSON正文中发送完整的日期字符串,无论用户是否提供年份。
我不知道是否可以使用Alexa处理此类用户输入。我可以对AMAZON.DATE插槽或其他方式处理此类用户话语吗?
答案 0 :(得分:1)
内置日期时段
无法做到这一点映射到特定日期(例如“今天”或“十一月二十五”)的话语将转换为完整日期:2015-11-25。 请注意,默认为当前日期或之后的日期。
您可以尝试的一个逻辑是执行自定义逻辑。取当今日期和明年用户输入日期之间的差异。如果它们之间的月份差异大于6个月,那么最接近的将是未来日期。如果差异小于过去6个月的日期。假设用户在7月25日(2017年)提交输入,今天日期是2017年8月25日。现在您可以在7月25日添加1年,然后在2018年7月25日到期。2017年7月25日到2017年8月25日之间的差异大于6个月所以你想要的日期是过去的日期,即2017年7月25日,反之亦然。为了更准确,您可以计算天数而不是几个月