0

我们正在为一家零售公司开展 Watson Conversation 项目,并希望该公司应用程序的用户能够通过语音将产品添加到他们的购物清单中。

我们希望用户将多个项目添加到购物篮中。我们的示例用户输入:“我想添加 2 个苹果和 1 箱啤酒”这将返回响应:“当然,我们已将苹果、箱、啤酒、2、1 添加到您的列表中。”但是,我们希望回复是:“当然,我们在您的清单中添加了 2 个苹果和 1 箱啤酒”。

我们已经尝试提取用户输入(input.text),但这会抓住整个句子而不是我们想要的实体。我们也尝试了我们想要的响应,但是实体的顺序与用户输入的顺序不同。这为我们提供了上面示例中提到的输出。

附件是我们示例输入的屏幕截图(荷兰语):“我想添加 2 个苹果和 1 箱啤酒”是“Ik wil graag 2 appels en 1 krat bier toevoegen” 意图是“添加到购物篮” - “#toevoegen_aan_boodschappenlijst”

问题:我们如何从用户输入中获取实体,并以正确的顺序响应它们并使它们与数量“sys-number”对齐?我们也有一个“数量”实体(@Kwantiteit),其值为荷兰语,例如“krat”-“crate”,我们希望将其结合起来,以便将所需的用户输入以正确的顺序添加到购物篮中.

Watson 对话,添加到购物篮:

在此处输入图像描述

4

1 回答 1

1

通常,可以将编号分配给相关项目。每个实体的元数据都有关于其在输入字符串中出现的位置信息。这样可以关联附近的项目。

可以使用 Spring 表达式语言 (SpEL) 使用嵌入式表达式来完成处理。这些是通过嵌入的表达式<? ?>。一些扩展示例可以在我在 GitHub 上的“对话变量”存储库中找到。另一种选择是在推动 STT 和对话集成的应用程序中执行处理。

于 2017-07-24T14:20:54.960 回答