能否在Watson Assistant中配置规则区分context variable distance的单复数?
Watson Assistant距离单位单复数识别配置方案
可行性说明
完全可以通过实体配置+对话节点表达式逻辑实现distance上下文变量的单复数区分,不需要额外编写复杂代码,完全依托Watson Assistant原生功能即可实现。
具体配置步骤
- 第一步:启用系统内置实体
@sys-number
进入实体管理面板的「系统实体」分类,找到@sys-number并开启,该实体可以自动识别用户输入中的所有数字内容。 - 第二步:创建自定义距离单位实体
@unit-distance
新建自定义实体,按单复数映射添加对应值和同义词即可:- 实体值设为
mile,同义词添加miles - 实体值设为
kilometer,同义词添加kilometers、km - 其他不规则单位也可按此规则配置,比如实体值
foot,同义词添加feet
- 实体值设为
- 第三步:在对应对话节点中配置
distance上下文变量
打开需要识别距离的对话节点,在「上下文变量」区域新增赋值规则:- 变量名:
distance - 变量值:
<? @sys-number ?> <? @sys-number == 1 ? @unit-distance[0].value : (@unit-distance[0].value == 'foot' ? 'feet' : @unit-distance[0].value + 's') ?>
该表达式会自动判断识别到的数字,数字为1时用单位单数,大于1时自动匹配对应复数形式。
- 变量名:
效果验证
配置完成后可以直接在测试面板输入用例验证:
- 输入
I need to walk 1 mile:$distance返回值为1 mile - 输入
The destination is 3 miles away:$distance返回值为3 miles - 输入
It is 2 kilometers from here:$distance返回值为2 kilometers
内容的提问来源于stack exchange,提问作者Rosebud
相关产品推荐
相关产品推荐

