代码之家  ›  专栏  ›  技术社区  ›  Karim Alaa

如何使用ibm watson检测聊天机器人中的纯文本或自由格式

  •  -1
  • Karim Alaa  · 技术社区  · 8 年前

    以IBM Watson为例,当用户说“获取id为KMN849SDA的票据”时,我如何在聊天机器人中检测纯文本或自由文本,机器人将识别“KMN849SDA”是票据id,如果有可能的方法,如果没有,我如何通过编码处理

    1 回复  |  直到 5 年前
        1
  •  1
  •   Sayuri Mizuguchi    8 年前

    在这种情况下,如果您的id有一些默认值,例如:每个id都以KMN开头,那么您可以使用一些 REGEX context Watson对话服务内的变量。

    input.text.find('^[^\d]*[\d]{11}[^\d]*$')
    

    "context": {
        "ticketID": "<?input.text.extract('^[^\\d]*[\\d]{11}[^\\d]*$',0)?>"
    }
    

    要在应用程序中使用,您需要访问从对话返回的消息调用方法,例如:

    //add inside your call, like:
    conversation.message(payload, function (err, data) {
        console.log(data.context.ticketID); //your ticketID here
        if (err) {
          return res.status(err.code || 500).json(err);
        }
        updateMessage(payload, data, req, res);
    
      });
    }); 
    

    为了在应用程序中使用,与用户验证此协议是否正确,您可以使用:

    if bot recognizes input.text.find('^[^\d]*[\d]{11}[^\d]*$') response "Your ticket is is $tickedID?"
    
    推荐文章