【问题标题】:Printing watson entity found in text (input)打印文本中找到的 Watson 实体(输入)
【发布时间】:2025-12-19 18:10:07
【问题描述】:

我有一种情况,用户要求“我想给我们买美元”。我已经定义了“我想购买”这个问题的意图。我需要的是确定哪个货币用户正在谈论(购买)。 为此,我创建了一个实体“money”,其值为“currency”及其同义词(美元、欧元、enes、....)。 问题是,该节点识别@items:buying 和@money:currency。如何获取找到的货币,并将其用于上下文/输出?

我尝试使用 and 也 但它总是返回一个空值。

entities[0] 只返回我购买的东西,第一个被识别的东西。我需要第二个,特别是名称,以便自定义我的对话流程。

非常感谢。

【问题讨论】:

  • 好的,让我重写一下。当我使用 entity['currency']?.toString() ?>,我得到了我的实体的第一个值。我需要知道匹配了哪个同义词。希望现在更容易了。

标签: input output response watson-conversation


【解决方案1】:

要解决此问题,首先打开@sys-currency 系统实体。

之后,一旦训练完成,此示例应该可以运行。

条件:@sys-currency

回复:Currency: <? @sys-currency.unit ?>. Total: <? @sys-currency ?>

但是,它假定您正确书写货币。例如:

  • 20 美元
  • 20 美元
  • 20 美元

更多细节在这里:

https://www.ibm.com/watson/developercloud/doc/conversation/system-entities.html#sys-currency-entity


要解决查找实体的已识别文本值的另一点,您可以使用:

<? entities[0].literal ?> 

【讨论】:

  • 抱歉,这不是系统货币问题。货币只是我的价值的名称,在货币实体中,我用于提示用户购买货币。无论如何,谢谢你的回答。请指教。
  • @sys-currency 比标准实体具有更好的识别能力。
  • 好的,西蒙,让我再解释一下。我不能使用系统货币。我不是在处理客户默认货币,我收到一个输入问题,说“我想购买欧元”。用户可能在巴西,在美国,甚至在日本。通过了,我需要获取该同义词的数组位置,这是一个大货币实体的一部分。你明白了吗?
最近更新 更多