Skip to main content

让AI帮你接单 - 使用实体提取用户言语中的数据

分类:  Azure认知服务 标签:  #Azure #人工智能 #LUIS #语言理解(LUIS) 发布于: 2023-06-10 20:50:46

我们前面的文章都介绍了Azure语言理解服务主要是通过意向模型和实体模型来实现对于用于言语的分类以及数据提取的工作,上一篇我们简单的介绍了如何通过LUIS工具定制意向模型,从而在特定的领域里帮助客户应用判断用于实际的意图是什么,例如用户是想订披萨,还是订机票,还是订酒店等等。当我们知道了用户的意图之后,我们还需要做的是,用户提出的具体要求, 例如:客户定几份披萨,什么尺寸的披萨,又或者用户定几晚酒店,入住时间是什么时候,定什么房型等等,要解决这个问题,我们必须使用Azure LUIS提供的实体模型对这些数据进行提取,从而使得自己的应用能够做出正确的回应。

我们先来复习一下基本的概念:
我们提供的实体有几种类型,机器学习实体,列表实体,正则表达式实体,以及模式实体,对于任何一个实体,我都推荐从机器学习实体开始,也就是通过机器学习的实体更容易训练出更灵活的更准确的模型用于提取数据,另外这里还有一个概念,就是模型分解,我们可以循序渐进的对一个实体进行多次的分解,结合父实体和子实体,特性等等更加准确来提取用户言语中的数据。

复制新版本的项目

开始之前我们会用到上一章中创建的预定披萨的应用,为了更加好的管理我们的应用,推荐的做法是克隆已经在用的应用,生成新的版本,在新版本上继续渐进式的开发我们的应用,做法如下:

  • 登录到LUIS Portal之后,进入预定披萨的应用,选择菜单MANAGE, 然后选择左侧的Versions, 如下图:



  • 选择Clone, 在新出现的对话框中输入您的新版本好,例如0.3:



  • 选择左上角菜单进行版本切换

这样你就创建了一个新版本的应用,我们接下来在新版本的应用进行实体制作。

实体模型的定义

我们前面已经新创建了一个新的应用,并且也已经切换到了新版本,我们现在需要制作实体数据,帮助训练实体模型,最为自然的创建实体数据的办法是从我们定义的意向以及意向的示例短语开始的,因此请选择该应用的左侧菜单Intents意向,然后选择预定披萨的意向,进入该意向的实例语句中,如下图:


根据意向实力语句创建实体

让我们选择那一句最长的实例短语:


然后全选这一句,会自动出现一个菜单,在这个菜单里输入预定 即表明我们通过这句短语创建一个新的实体预定


创建一个新的基于机器学习的实体


注意选择Add structure 添加结构,基于机器学习的实体可以添加子实体,用于标识该实体需要提取像大小,多少,样式等等基本的数据。

点击下一步之后,会出现添加子实体的界面,点击预定旁边的+, 添加三个子实体:

  • 披萨尺寸
  • 披萨数量
  • 披萨类型

如下图:


点击创建完成后,我们可以看到预定的实体已经完全创建好了。


配置子实体

我们在创建完基于机器学习的实体了之后,我们需要对于用户创建完成的子实体,添加特性,用于更加精确的提取用户的言语数据,从Entity的菜单进入实体列表之后,选择披萨尺寸子实体,可以看到后面有一个菜单Add Feature, 如下图:


在出现的对话框中添加如下的feature短语列表:


在这个对话框里添加用户言语中可能有关于尺寸的言语:大,小,超大,大尺寸,小尺寸,超大尺寸等等。

添加列表实体进一步优化机器学习实体

在上一个小结我们使用机器学习实体来提取用户言语中的数据,为了更加精确的提取数据,我们可以添加其他类型的实体进一步优化,例如添加一个列表的实体,我们这一节添加一个列表类型的实体,并将该实例和机器学习实体配合起来使用。

回到应用的BUILD菜单,选择实体(Entity), 然后选择Create创建一个新实体:披萨实际尺寸实体, 类型选择List, 然后在可能出现的值里输入下图所示的内容:


注意这个列表中前面一列是用户选择的值,例如:大,小,超大,后面的是同义词。例如9寸是指小,12寸是指超大等等。

应用列表实体到机器学习实体上

回到应用的Portal, 然后选择实体菜单,选择预定实体,进入预定实体之后,可以看到披萨尺寸的子实体,选择后面的Add Feature, 然后选择@披萨实际尺寸, 应用列表实体到机器学习实体


应用数字实体以及使用预定义的实体定义

我们每个实体还有很多其他的特性,微软提供了很多预定义的实体,我们完全可以在我们的应用中使用这些预定义的实体,例如:数字,日期,邮件,年纪等等。

回到应用的首页,选择左侧菜单实体, 然后点击链接Add Prebuild Entity, 如下图:



在出现的对话框中,你可以看到由微软提供的很多预定义的实体:


在搜索框中输入number, 我们需要基于数字的实体。
点击完成后,即创建了一个数字的实体了,用于提取用户言语中的数字。

应用数字实体到机器学习的实体上

回到LUIS app, 选择左侧的实体菜单,选择预定实体, 然后进入子实体,选择预定数量, 如下图添加number实体


至此我们已经将所有实体的数据配置完成了,跟着训练模型,并发布模型,就可以开始测试了: