【发布时间】:2020-05-06 16:10:18
【问题描述】:
您好。
我需要 Watson 识别代表客户已下订单的公司分支机构的实体。我们目前在 customer_branch 实体上使用以下模式:
\d{1,5}-[xX\d]{1}
对话节点询问客户的分公司,并带有以下消息:“请输入您下订单的分公司编号,格式为 XXXXX-X:”,期望类似:
12345-6
虽然我们的大多数客户都正确输入了分行编号,但也有一些客户做到了:
分支 12345-6
编号 12345-6
nr。 12345-6
号码 12345-6
这导致 Watson 无法识别实体 customer_branch,让他们感到沮丧。为了解决这个问题,我们考虑在模式中使用以下正则表达式:
(?:(br[ae]{1}nch|n[umbe]{0,4}r))?(?:[\s.]*)?(\d{1,5}-[xX\d]{1})
我们认为的逻辑如下:
-
一个正则表达式组,用于忽略“branch”、“number”、“nr”等任何单词。和 等等,可以或不可以存在;
-
另一个忽略句点和 任何数量的空间,可以存在也可以不存在;
-
最后 一个来捕获分支号。
但是,在我们进行了一些测试之后,Watson 仍然无法正确识别实体,如下例所示:
"customer_branch": "nr 12345-6"
我们假设问题出在正则表达式中,但我们无法识别它;因为它在 regex101.com 上正常工作。 Watson 是否正确识别排除正则表达式组,例如 (?: Something_here)?我们感谢任何提示。谢谢大家。
【问题讨论】:
-
如果您使用英语,则可以转到带注释的实体。正则表达式引擎松散地基于 Java 引擎:cloud.ibm.com/docs/services/…
-
亲爱的 data_henrik,您好。我的母语是葡萄牙语-BR。谢谢。
标签: regex ibm-cloud ibm-watson regex-group watson-assistant