2017-04-18 188 views
0

在google的api.ai中,处理这样的句子:Bot框架名称实体

“什么是John Doe的电子邮件?”

我创建一个名为“给定名称”和“最后的名字”预建的实体来获得命名为“李四”

如何做到与微软博特框架/路易斯一样吗?

回答

0

你不要直接用Bot框架来做。 Bot Framework可以帮助你建立你的对话流,但不会内置NLU。您可能会使用LUIS(也luis.ai),它可以在那里执行您的意图检测和实体提取。如果你喜欢,你也可以从Bot框架中使用你的api.ai代理。我这样做是为了支持语言LUIS不说话,但(更多详情 - http://www.pveller.com/integrating-bot-framework-with-api-ai/

UPDATE

扩展在我的意见。以下是我在一个bot机器人原型中提取contact实体的方法。这是从出口LUIS模型JSON片段:

"entities": [ 
    { 
     "name": "Contact" 
    } 
], 
"model_features": [ 
    { 
     "name": "Contact", 
     "mode": true, 
     "words": "John Smith,John Doe,Mary Jay,Robin Smith", 
     "activated": true 
    } 
], 
"utterances": [ 
    { 
     "text": "please email to john smith and robin smith", 
     "intent": "Email", 
     "entities": [ 
     { 
      "entity": "Contact", 
      "startPos": 16, 
      "endPos": 25 
     }, 
     { 
      "entity": "Contact", 
      "startPos": 31, 
      "endPos": 41 
     } 
     ] 
    } 
] 
+0

感谢您的回答,但如何与Luis.ai做到这一点?我一直在试图创建一个实体,但我找不到解决方案。预构建实体似乎是要走的路,但它缺少名称类型 – Ateik

+0

我相信,预构建实体集中没有名称。您需要训练一组问题,每个问题以不同的方式询问某人的电子邮件,并将名称部分标记为实体。你自己的自定义实体。如果你知道用户可能会询问的人(例如,它是你的企业目录或其他东西),你可以使用“短语列表”。这将教LUIS将所有这些名称视为*相同*实体。它承认一个,它会基本上承认所有其他人。我相信我在我的一个机器人原型中曾经这样做过。我可以挖掘出LUIS模型。让我知道 –