如何让 Watson 捕获数字序列 (input.text.extract)

2023-12-05

在我的示例中,我要求提供个人文档编号,该编号有 11 位数字,并且我需要,如果用户正确输入 11 个数字,watson 就会继续对话,如果没有,watson 将通知由我。这个怎么做?

我的情况: 沃森 说: 好的,我会检查一下。您的协议号是多少?

我说: 例如:35158811233

沃森 说: 您想完成服务吗?

沃森不认识这个号码,我的谈话就这样结束了。请问有人知道如何解决这个问题吗?

沃森明白:

  "intents": [
    {
      "intent": "goodbye",
      "confidence": 0.24506947419646477
    }
  ],
  "entities": [],
  "input": {
    "text": "35158811233"
  },
  "output": {
    "log_messages": [],
    "text": [
      "Would you like to finish the service? \n \n <button id=\"button-yes\" onclick=\"yesBye();\">Yes</button> <button id=\"button-no\" onclick=\"noBye();\">No</button>"
    ],

要将号码与 Watson 对话服务匹配,您可以使用实体sys-number可以在实体选项卡中打开 - 但这将匹配所有数字,而您的数字是特定的。

对于此用例,您可以添加对文本用户输入的额外检查。 Watson 对话支持正则表达式检查。如果您以这种方式创建对话节点的条件:input.text.matches('^[^\d]*[\d]{11}[^\d]*$')那么这个节点只有在以下情况下才会匹配input.text这是用户提交的确切文本字符串的访问器,将与定义为的正则表达式 (regexp) 匹配^[^\d]*[\d]{11}[^\d]*$.

仅当输入中有 11 位数字且其他地方没有其他数字时,此特定表达式才会匹配,但允许在数字前后添加其他文本。

现在要将这个数字捕获到变量中,您可以将以下内容添加到context与该编号匹配的对话节点的:

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

请注意,有不同的转义\\d由于 JSON 的性质,在上下文中context field.

在对话节点的输出文本中,您可以编写类似的内容"Ok, number $number was matched."在聊天窗口中显示号码。

另一件事 - 提供有关正则表达式信息的好地方,您还可以尝试各种类型的正则表达式以及它们匹配的内容正则表达式 101 网页.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 Watson 捕获数字序列 (input.text.extract) 的相关文章

随机推荐

  • 变量/词汇环境

    正如中所述10 4 3 节 当控制进入执行时执行以下步骤 函数对象 F 调用者 中包含的函数代码的上下文 提供了 thisArg 并且调用者提供了argumentsList 如果函数代码是严格代码 则将ThisBinding设置为thisA
  • Spring Batch 中具有不同实体的多个编写器

    初始代码 Tasklet 类定义有 3 个方法 class Tasklet doBeforeStep Records a retrieved from the table doExecute It opens the file and re
  • 为什么我的 Lambda 无法访问互联网?

    我有一个 Lambda 函数 可以从 API 网关或 ALB 请求触发 我还有一个 RDS Aurora PostgreSQL 实例 它们都在 VPC 中运行 我可以从 Lambda 很好地连接到 RDS 实例 但是我无法访问互联网 例如试
  • 在新线程上运行Python程序

    我有两个程序 program1 py 就像命令行界面 它接受用户的命令 program2 py 具有根据命令运行相关程序的程序 程序 1 还有一个 quit program 模块 在我们简单的宇宙中 假设我只有一个命令和一个程序 那么我们可
  • 如何将 UIActivityIndi​​catorView 放入 UIAlertController 中?

    我们正在放弃 MBProgressHUD 因为它在我们的应用程序中故障太多 并且没有阻止用户输入或提供 取消 按钮等功能 所以 我尝试实施滑动瞄准器如何在 UIAlertController 的中心显示活动指示器 我遇到了指标定位不当的情况
  • ng-repeat 和 ui-if

    当我想将 ui if anguluarUi 与 ng repeat 一起使用时 我认为它在那里最有用 我收到错误 Error Multiple directives uiIf ngRepeat asking for transclusion
  • Firebase HTTP 函数 CORS

    使用 Firebase HTTP 函数时 我仍然遇到 CORS 问题 这是我的网络控制台错误 Response to preflight request doesn t pass access control check No Access
  • 将图像的左侧拉伸到容器外到页面边缘

    通常我很擅长 CSS 但我不知道如何进行这个特定的布局 我有一个最大宽度为 1 400 像素的容器 左边距和右边距设置为auto因此 当视口高于 1 400 像素时 容器会居中 然后 我在容器外部有一个图像 旁边有一个 div 图像占据了视
  • 获取所选元素的位置,而不是 DOM 中元素的索引

    div h3 Heading one h3 h3 Heading two h3 h4 heading caption h4 h3 Heading three h3 div 我想获取 jQuery 选择中元素的位置 而不是它在 DOM 中的索
  • 如果表单字段为空,则阻止使用 ajax 提交表单

    我在简单的表格上遇到了一些麻烦 如果字段为空 我似乎无法阻止表单提交 有没有一种简单的方法来检查字段是否为空 然后阻止表单提交 这是我的 html 表单
  • 将 WordPress 身份验证与现有用户数据库集成

    我有一个包含用户表的数据库 其中包含以下字段 id name email password status 我的用户通过提供电子邮件和密码登录 我安装了一个博客 其路径为 mysite com news 我想要的是 如果某个用户在我的网站上注
  • 尝试获取 iPhone 屏幕尺寸时的 EXC_BAD_ACCESS

    当界面方向发生变化时 我试图使某些元素根据屏幕尺寸调整大小 我在不同的地方 包括这里的一些答案 读到 获取屏幕边界的方法是使用 UIScreen mainScreen bounds 所以我添加了这段代码来看看它的行为方式 void will
  • 将特殊字符转换为常规 C#

    C 中是否有命令可以转换字符串 例如 https 3A 2F 2Fwww google com回到https www google com 也许某种 解密 方法 你需要使用System Web HttpUtility UrlDecode为了
  • 如何从 ImageView 将图像设置为壁纸?

    我有一个活动 其中有两个按钮和一个 ImageView 一个按钮是从手机的相机应用程序中获取图像并将其设置到 ImageView 另一个按钮是将该图像设置为主屏幕壁纸 所以我想要代码如何将该图像从 ImageView 设置到壁纸 Step
  • 如何使字符串比较不区分大小写?

    我正在尝试为其中一个根据您的答案做出响应的程序编写代码 我想让一些变量不区分大小写 例如如果我的变量x等于 Me 我希望它也等于 me 那可能吗 到目前为止 这是我的代码 import java util Scanner class Tut
  • 注册自动登录禁用

    我在我的项目中使用 keycloak 4 8 3 Final 我需要在注册后禁用自动登录 我已经阅读 keycloak 文档 5 天了 找不到答案 不知道是否可行 任何指南都会对我有用 谢谢 如果注册后想再次显示Keycloak登录表单 可
  • 使用按钮调整简单的表单字段值

    首先 我对反应管理非常陌生 我有一个 SimpleForm 它通过 API 调用填充一堆字段
  • 在 WooCommerce Checkout 中为特定类别启用百分比折扣的复选框

    以下修改后的代码基于添加一个结账复选框字段 在 Woocommerce 中启用百分比费用 我已经进行了调整 但希望只针对特定类别 因此当学生在结账时勾选方框并定义他们是学生时 系统会扣除总金额的 15 但仅限于特定类别范围 即 在线研讨会
  • 如何测量管道系统调用时间(以毫秒为单位)?

    我想查看我的管道程序系统调用的时间 我需要测量它来分析结果 如何测量系统调用的时间 以毫秒为单位 例如 这是简单的管道程序 include
  • 如何让 Watson 捕获数字序列 (input.text.extract)

    在我的示例中 我要求提供个人文档编号 该编号有 11 位数字 并且我需要 如果用户正确输入 11 个数字 watson 就会继续对话 如果没有 watson 将通知由我 这个怎么做 我的情况 沃森 说 好的 我会检查一下 您的协议号是多少