Is there a way to train Watson to recognize email entities and phone numbers without resorting to regular expresses?
Previously:
Steven, I had the same doubt a few months ago. IBM Watson Conversation doesn't have System entities for phone numbers or e-mail address, not yet. Anyway, it is a good idea for creating new System entities, right? We can give ideas with feedback for IBM.
But, one contour solution is to use context variables and create new entities. Try to create one entity like
@gmail.com
,@hotmail.com
,@outlook.com
, and any e-mail that you want to recognize.And you will use with the condition like:
if @mail, response: Your e-mail is $email
for recognizing the e-mail address, but for saving the e-mail you will need to create one Regex inside the
context
variable like:"email": "<? input.text.extract('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+(\\.[a-zA-Z]+){1,}',0)?>"
Now, for
phone
numbers:You can activate the System Entity
@sys-number
, and you will get just a few numbers, like 11 numbers and save inside one context variable too.Create one condition with
@sys-number AND input.text.find('^[^\\d]*[\\d]{11}[^\\d]*$',0)')
for find the number andsys-number
for recognize the numbers by user.
EDIT: (With new release notes - In BETA version):
Now, IBM Watson Conversation have Patterns for Entities and we can use for getting email address, phone numbers, etc.
Now, when you create one new @entity
, you can optionally inform that you want to use Pattern
or Synonymous
, so, you will create one new entity, in my example, @contactInfo, and the values with patterns
for getting the mail or phone values, for example:
And, after the Watson training your changes, check works perfectly in Try it Now:
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b
, e.g [email protected](\d{3})-(\d{3})-(\d{4})
, e.g. 800-426-4968
See more about Creating entities here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With