0

I am developing an apps that use wit ai as a service. Right now, I am having problems training it. In my apps I have 3 intents:

  • to call
  • to text
  • to send picture

Here are my example training:

Call this number 072839485 and text this number 0623744758 and send picture to this number 0834952849.

Call this number 072839485, 0834952849 and 0623744758

In my first training I labeled that sentence with all 3 intents, and 072839485 as phone_number with role to_call_phone_number, 0623744758 as phone_number with role to_text_phone_number and 0834952849 as phone_number with role to_send_pic_phone_number.

In my second training I labeled all the 3 numbers as phone_number with to_call_phone_number role.

After many training, the wit still output the wrong labelled. When the sentence like this:

Call this number 072637464, 07263485 and 0273847584

The wit says 072637464 is to_call_phone_number but 07263485 and 0273847584 are to_send_pic_phone_number.

Am I not correctly training it? Can some one give me some suggestions about the best practice to train wit?

Gregorius Edwadr
  • 399
  • 1
  • 3
  • 14

1 Answers1

2

There aren't many best practices out there for wit.ai training at the moment, but with this particular example in mind I would recommend the following:

  • Pay attention to the type of entity in addition to just the value. If you choose free-text or keyword, you'll get different responses from the wit engine. For example: in your training if the number is a keyword, it'll associate the particular number with the intent/role rather than the position. This is probably the reason your training isn't working correctly.

  • One good practice would be to train your bot with specific examples first which will provide the bot with more information (such as user providing keyword 'photograph' and number) and then general examples which will apply to more cases (such as your second example).

  • Think about the user's perspective and what would seem natural to them. Work with those training examples first. Generate a list of possible training examples labelling them from general to specific and then train intents/roles/entities based on those examples rather than thinking about intents and roles first.