我们如何组合用户输入中的实体和sys-number来创建所需的输出(响应)?

时间:2017-07-24 14:01:04

标签: ibm-watson watson-conversation watson watson-dialog watson-discovery

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

我们希望用户向购物篮添加多个商品。我们的示例用户输入:"我想添加2个苹果和1箱啤酒"这将返回响应:"当然,我们在您的列表中添加了apple,crate,Beer,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 Conversation,加入购物篮:

enter image description here

1 个答案:

答案 0 :(得分:1)

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

可以使用embedded expressions using the Spring Expression Language (SpEL)完成处理。这些是通过<? ?>嵌入的表达式。我可以在"conversation variables" repository on GitHub找到一些扩展样本。另一种选择是在应用程序中执行驱动STT和对话集成的处理。