Api.ai上的实体过度泛化

时间:2017-08-30 17:56:43

标签: nlp dialogflow

对于在Api.ai上过度推广的聊天机构实体,我们遇到了很大困难,即在自定义实体上使用“定义同义词”功能时,返回尚未为该实体指定的值,即使“允许自动扩展”标志已关闭。

我们的关键示例是我们用于确认名为confirm_accept的用户选择的实体。我们有一个条目:“就是这样”,带有同义词:“就是这样”,“就是它”,“就是它的感谢”,“这就是它的感谢”,“就是它的感谢”。这个实体值在表达式中出乎意料地返回,只是出现了一个迷失的“它”。

一般来说,我们已经看到很多不恰当的实体概括,这似乎表明在实体识别过程中会出现某种形式的停用词移除和词干/词形还原......并且不能被关闭。

这会返回较差的实体分类,从而难以创建非常精确的值很重要的实体,例如一个单词或一个字符可以在意义上产生很大的不同。我们的关键用例涉及大量的地址处理,因此重要的是我们只返回我们指定的值。

我们见过的过度概括的类型包括:

  • 不恰当地识别确定者(a,an,the,this,that等)作为实体的一部分:如“it”返回“那就是它”
  • 词干:如在“驾驶”的流浪提及中,返回“驾驶”(有效的街道型实体)
  • 不恰当的复数词干:流浪提及“孩子”归还“孩子”,或流浪“遗嘱”归还“遗嘱”(在我们的案例中,“孩子”和“遗嘱”是街道名称实体,所以我们不要想要“孩子”或“将”被退回)

目前,使用Api.ai服务创建生产质量的聊天机器人很困难。

任何人都有更好的运气来获得Api.ai的回复或解决过度泛化问题?

1 个答案:

答案 0 :(得分:0)

实体旨在从会话中提取信息: API.AI的实体旨在用于从会话输入中提取数据而不是解析不同的短语和词性。对于您的示例(that’s itthats itthat is itthat’s it thanksthats it thanksthat is it thanks),所有似乎都表示用户'的目的是表明来自API.AI代理的最后一条消息是正确的。对于像这样的实例,最好将这些短语用作意图或现有意图的示例,其他响应表明用户想要指出最后一个响应是正确的。

API.AI会自动捕获实体时态和复数:要解决您的其他问题(driving实体,返回drive值,children返回{{1 }}或child返回wills):API.AI故意捕获不同时态和复数实体,以便为那些不知道您输入的确切实体的用户提供更好的体验数据库。这样,您的会话应用的用户就可以与您的用户进行自然对话,而不需要精确的措辞或