解析电子邮件和电话号码实体?

Ste*_*che 5 chatbot ibm-watson watson-conversation

有没有办法训练Watson识别电子邮件实体和电话号码而不诉诸正规表达?

Say*_*chi 8

先前:

史蒂文,几个月前我也有同样的疑问.IBM沃森谈话没有系统实体的电话号码或电子邮件地址,还没有.无论如何,创建新的系统实体是个好主意,对吗?我们可以为IBM提供反馈意见.

但是,一种轮廓解决方案是使用上下文变量并创建新实体.尝试创建一个类似的实体@mail,并添加值 @gmail.com,@hotmail.com@outlook.com,以及您要识别的任何电子邮件.

并且您将使用以下条件:

if @mail, response: Your e-mail is $email
Run Code Online (Sandbox Code Playgroud)

用于识别电子邮件地址,但是为了保存电子邮件,您需要在context变量中创建一个Regex,如:

"email": "<? input.text.extract('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+(\\.[a-zA-Z]+){1,}',0)?>"
Run Code Online (Sandbox Code Playgroud)

现在,对于phone数字:

您可以激活系统实体@sys-number,您将只获得一些数字,例如11个数字,并保存在一个上下文变量中.

创建一个条件,@sys-number AND input.text.find('^[^\\d]*[\\d]{11}[^\\d]*$',0)')用于查找数字并按sys-number用户识别数字.

编辑:(使用新发行说明 - 在BETA版本中):

现在,IBM Watson Conversation拥有实体模式,我们可以使用它来获取电子邮件地址,电话号码等.

现在,当您创建一个新的时@entity,您可以选择通知您要使用PatternSynonymous,因此,您将创建一个新实体,在我的示例中为@contactInfo,以及patterns用于获取邮件电话值的值,例如:

在此输入图像描述

并且,在Watson训练您的更改后,检查在"立即尝试"中完美运行:

在此输入图像描述

  • 邮件模式:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b例如test@gmail.com
  • USPhones的模式:(\d{3})-(\d{3})-(\d{4})例如800-426-4968

查看更多有关创建实体这里.