【问题标题】:In watson conversation how to extract multiple values entered in input text在沃森对话中如何提取输入文本中输入的多个值
【发布时间】:2017-06-14 08:39:33
【问题描述】:

我正在开发一个应用程序,根据用户的“价格范围”在我的库存中显示产品..

我需要知道如何提取输入文本中输入的值(价格)。

我尝试使用系统实体@sys-currency & @sys-number 但我只能提取一个值(第一个值)..

示例:

用户要求“展示 200 美元到 500 美元之间的产品”

如何提取要与单个产品价格进行比较的值并显示相关产品..

建议赞赏..

【问题讨论】:

  • 请分享您迄今为止尝试过的代码,以向我们展示您在 SO 上发布问题之前所做的一些努力(您做对了吗?)

标签: json node.js sails.js ibm-watson watson-conversation


【解决方案1】:

在 watson 对话的节点中,您可以将实体作为数组访问。在您的情况下,它将是:

Currency 1: <? entities['sys-currency'] != null && entities['sys-currency'].size()> 0 ? entities['sys-currency'][0].value : "---" ?>; Currency 2: <? entities['sys-currency'] != null && entities['sys-currency'].size()> 1 ? entities['sys-currency'][1].value : "---" ?>

您需要添加适当的空检查并检查数组是否有多个输入的货币

【讨论】:

    【解决方案2】:

    如果您使用的是 nodejs,基于 IBM Developers 的简单对话示例,您可以执行以下操作:

    还有节点:

    访问此值的代码:

    function updateMessage(input, data, req, res) {
    
     console.log("Entties: "+JSON.stringify(data.entities));
      //200 and 500 do something
      if (data.entities[0].value == '200' && data.entities[1].value == '500') {
            console.log("User choice value:" + data.entities)
        //  showProducts(data, req, res); do something inside this function
        // or paste your code for do something here
      }
    

    调试:

    Obs.:如果用户只输入一个值 (@sys-currency),您需要在一个条件下创建一个值,并获取此值以便在您的应用程序中使用我的示例:

    data.entities //if have one value
    data.entities[i] //Watson return some array if have more than 1 value
    

    一个好主意是使用上下文变量并加入来获取所有值,例如:

    { "context": {
        "result": "<? @sys-currency ?>"
       }
    },
    

    如果您在上下文中传递所有库存商品并且您希望输出像我们有 X、Y、Z 库存,那么您可以在 Watson 中创建输出

     <? context.results.join(', ') ?> //all values return
    

    重要提示:您需要访问 Watson Conversation 调用 (conversation.message) 的 data 返回值,以访问实体、意图和上下文变量等所有值,其中。喜欢:

    conversation.message(payload, function (err, data) {
        console.log(data)
        if (err) {
          return res.status(err.code || 500).json(err);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-28
      • 2015-06-30
      • 2017-02-23
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 2020-03-09
      • 1970-01-01
      相关资源
      最近更新 更多