微软语意识别功能(LUIS)-译

为应用增加语言理解功能

LUIS 为你提供一种简单的模型创建方式,使你的应用程序能够理解诸如“开灯”或“订购去巴黎的机票”等用户命令。创建后,只需单击一次即可将模型发布成HTTP服务,并返回易于使用的 JSON。

使用LUIS的好处

人 - 计算机交互中的关键问题之一是计算机能够理解人们想要什么,并且找到与他们的意图相关的信息片段的能力。例如,在旅行社应用程序中,你可以说“帮我预订一张票到巴黎”,在这种情况下有意图“订票”,而“巴黎”是位置实体。意图可以被定义为期望的动作,并且通常包含动词,在这种情况下是“预订”,并且实体是动作要处理的主要和次要目标,在这种情况下是“巴黎”。

一旦应用程序上线,接收到真实的数据,LUIS会使用主动学习来提高自身。在主动学习过程中,LUIS将模棱两可的文本识别出来,并要求你根据意图和实体标记它们。其次,通过专门的样本,LUIS可以快速地学习,短时间内达到特定领域较高的智能水平。

本地化支持

LUIS UI始终为英语,但在理解语音时,支持英语,法语,意大利语,西班牙语和中文等多种语言。

以编程方式访问LUIS

LUIS提供了一个可编程的REST API,可用于自动化创建和发布特定语意模型。

首次使用LUIS

要使用LUIS,请确保你有最新版本的Microsoft Edge,Internet Explorer或Google Chrome。 转到主页www.luis.ai并登录。您将看到如下所示的屏幕。

创建你的第一个LUIS应用程序

所有LUIS应用程序都围绕特定领域的主题,例如预订机票,航班,酒店,租车等或与锻炼有关的内容,跟踪健身努力和设置目标。在创建LUIS应用程序之前,你需要确定特定领域的主题。在这种情况下,让我们以虚拟旅行预订代理应用程序为例。在应用程序中,你将捆绑对您的任务很重要的意图和实体。与旅行预订相关的两个意图是“预定飞机票”和“了解天气情况”。两个重要的实体是“位置”和“日期”。一旦你确定了意图和实体,当用户与你的应用程序交互时,LUIS可以采取适当的行动。

步骤1:创建应用程序

单击“My Applications”,然后单击“New App”按钮创建一个新的应用程序。在对话框中,将其命名为“TravelAgent”。然后单击“Add App”。

步骤2:添加意图,实体和标签

接下来,我们将向应用程序添加两个意图。 在菜单面板的左上角,你将看到一个意图区域。 所有应用程序都有一个预定义的意图,“None”。 这将识别与应用程序无关的用户语句,例如,如果有人说“给我一个很棒的甜点食谱”。

然后点击水平栏上的意图旁边的+。 你将看到一个对话框,以添加新的意图。 输入“BookFlight”的意图名称,以及触发意图为“Book flight to Paris”的示例命令。 这将看起来像下面的屏幕截图。

单击“Save”、单击“Submit”完成操作。

接下来,添加第二个名为“了解天气情况”的意图,使用触发意图的示例命令为“伦敦的天气怎么样”。单击保存、单击提交。

定义实体

在左侧面板上,你将看到一个添加实体的选项。我们希望能够说出我们感兴趣的旅行方式,并且规划目的地,了解旅行目的地的天气情况。为了捕获“位置”的主题,让我们创建实体类型:“位置”。为此,请单击实体栏上的“+”按钮,然后在文本输入框中键入“位置”。你现在已创建一个名为“位置”的简单通用实体,通常是你可能需要的,但有更多的高级选项。

分层实体

你还可以定义实体之间的继承关系。通用实体用作父级,子级是父级下的特定类型或子组,但两者具有相同的特性。例如,通用实体可以称为“位置”,并且该父实体的特定自级可以称为“目的地”和“出发地”。 LUIS服务可以在解析语音,构建模型和训练它们时识别这种类型的实体及其子实体。

定义分层实体

使用上述“位置”示例,请按照下列步骤操作。

在“应用程序编辑器”工作区中,在左侧菜单面板中查找“Entities”,然后单击+号。

在“Add a new Entity”对话框中,键入“位置”作为实体名称。

单击“Entity Children”旁边的加号。

在出现的文本框中,键入第一个子实体的名称“目的地”。

再次单击加号以添加第二个子实体“出发地”,依此类推。

如果要删除子实体,请点击子实体旁边的垃圾桶标志。

完成后,单击“保存”。

使用必应的预定义实体

假如你的应用程序要发出一组旅行预订请求,你可能会想说一些像“帮我预订5月4日飞往波士顿的机票”。这需要能听懂日期类型的话,包括月份、年份的名字。例如“五月”,“六月”,“下个月”和“明年”等。我们可以使用一个必应的预定义实体模型“DateTime”。点击+号从预定义实体下拉菜单中选择“DateTime”。

实体限制的重要注意事项

在一个LUIS应用程序中每个意图最多可以使用10个实体。

每个父实体最多可使用10个子实体。

添加子实体时,请确保在创建父实体的同时添加子实体。

要删除带有子实体的父实体,请单击左侧面板中的实体名称,然后单击对话框中的“删除”。

步骤3:为了让系统理解语意,对文本内容做特定标记

现在我们有了定义好的一组意图和实体,下一步是输入更多例子来建立话术体系。单击屏幕顶部的“新建工具”选项卡。在输入框中输入“将航班预订到伦敦”,然后按Enter键。你将看到一个下拉框,显示可能的意图。通过突出显示选择“BookFlight”。点击“london”,然后从下拉框中选择“位置”,你会看到以黄色突出显示的“london”字样,表示你已将“london”一词标记为“位置”。选择它是“ToLocation”还是“FromLocation”,然后单击提交以提交此标签。

每个意图和每个实体都需要输入的几个示例。另外,不要忘记添加一个或两个不在预定义意图范围内的例子,例如,输入“我喜欢冰淇淋”。

系统现在已经获得足够的数据来部署初始应用程序。这是通过培训和发布模型完成的。

步骤4:训练模型

当你“训练”一个模型的时候,LUIS会分析所有已经标记过的例子,进行抽象,并在将来开发代码来识别相关的意图和实体。LUIS使用逻辑回归分类器来确定意图,以及条件随机字段(CRF)来确定实体。训练过程产生优化的分类器和CRF,称为模型。要开始一个训练,只需点击页面左下角的Train按钮即可。训练也会定期自动进行。

步骤5:发布模型

下一步是将模型发布成HTTP服务,它将解释我们发送的句子。单击左上角的“发布”按钮,然后在生成的窗口中发布Web服务。几分钟后,你将看到一个网址,使你的模型可用作Web服务。 LUIS将如下面的截图所示。

了解JSON格式的返回值

下面展示了一个意图和分层实体的示例,语意分析结果采用JSON格式返回给调用者。

现在,你已经学会了怎么使用LUIS为自己的应用添加智能了。

教学视频

原文链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,638评论 25 709
  • 1 三八节前的一个讲座后,接到了一位女士的电话,想要到工作室来给她的妈妈测色。我们如约见面,她的妈妈...
    斐米形象阅读 1,184评论 0 7
  • 夏夜 无月 风起 树影婆娑 扬手阔步 风月在胸 自在无边 哪管人间黑手 只寻清净莲池!
    空若灵阅读 163评论 0 0
  • 今天,更年期综合征又发作了,看到孩子的作业,看着他的作业。 感觉自已像个疯子一样,对着孩子哭不停的敲打着自己的脑袋...
    随手写心阅读 147评论 1 0