我正在训练我的机器人吗?

时间:2016-08-06 03:15:40

标签: wit.ai

我试图训练我的Wit.ai机器人以识别某人的名字。我不太清楚我是否理解NLP是如何运作的,所以我会给你一个例子。

  1. 我定义了许多表达式,例如"我的名字是XXXX","每个人都叫我XXXX"
  2. 在"理解"表我添加了一个名为" contact_name"的实体。我添加了近50个关键词,比如" Michel,John,Mary ......"。
  3. 我把这个特性作为"自由文本"和"关键字"。
  4. 我不确定这个过程是否正确。所以,我问你:

    1. 是否与#34相关;我的名字是......"对于NLP?我的意思是......它会帮助机器人预测,在这个表达之后可能会出现一个名字吗?
    2. 是否有权向实体添加50个值,或者它是完全错误的?
    3. 为了获得某人的名字,您建议将其作为培训流程?

2 个答案:

答案 0 :(得分:6)

通过将实体的搜索策略保持为“自由文本”和“关键字”,您已经做到了。但是,向实体添加关键字示例没有任何意义,因为某个人的姓名不是关键字。

所以,我建议采用以下培训策略:

  • 创建消息的各种模板,例如“我的名字是XYZ”“我是XYZ”“这是XYZ”等等(你能想到的所有可能的介绍信息)
  • 删除您创建的实体的所有关键字和表达式,并添加以下两个关键字:
    1. “a b c d e f g h i j k l m n o p q r s t u v w x y z”
    2. “XYZ”(可以提供任何名称,但保持此名称相同以验证模板)
  • 在“了解”标签中输入消息并将名称提取到实体中(在您的案例中为“contact_name”)并验证它们
  • 同样,验证所有消息模板,将名称保留为“XYZ”
  • 为所有模板完成此操作后,您的机器人将能够识别消息的给定模板中的任何名称

这背后的逻辑是你的实体是一个自由文本和关键字,这意味着它首先尝试匹配关键字,如果不匹配,它试图在模板的相同位置找到该单词。保持名称相同以进行验证有助于使用模板训练机器人并了解通常可以找到名称的位置。

希望这有效。我试过这个并为我工作过。我不确定机器人是如何在后台训练的。我建议你开始一个新的应用程序并进行此练习。 评论是否有任何问题。

答案 1 :(得分:2)

wit.ai有一个名为wit/contact的预训练实体提取方法,

  

捕获自由文本,该文本是名称或对a的明确引用   人,像“保罗”,“保罗史密斯”,“我的丈夫”,“牙医”。

即使没有任何训练数据,它也能很好地工作。 要了解该方法,请参阅duckling