你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

LUIS 应用中的模式

重要

LUIS 将于 2025 年 10 月 1 日停用,从 2023 年 4 月 1 日开始,你将无法创建新的 LUIS 资源。 我们建议迁移 LUIS 应用程序对话语言理解,以便获得持续的产品支持和多语言功能并从中受益。

模式旨在多条言语非常类似的情况下提升准确性。 使用模式可在不提供更多语句的情况下获得更高的意向准确度。

模式解决了意向置信度低的问题

设想一个人力资源应用,它在组织结构图上报告某员工的相关信息。 如果具有员工的姓名和组织关系,LUIS 就能反馈所涉及的员工。 设想一名员工叫孔西明,经理叫柏隼,下属员工有翁捷生、康霓和尹锋。

显示模式使用的屏幕截图

陈述 预测的意向 意向得分
孔西明的下属员工有谁? 获取组织结构组 0.30
谁归孔西明管辖? 获取组织结构组 0.30

如果应用具有 10 到 20 条句子长度不同、字词顺序不同,甚至用词不同(“下属员工”、“经理”和“报告”的近义词)的话语,则 LUIS 返回的置信度得分可能较低。 创建一个模式来帮助 LUIS 理解字词顺序的重要性。

模式可处理以下情况:

  • 意向得分较低
  • 正确的意向得分不是最高得分但太接近最高得分。

模式不保证提取意向

模式使用多种预测技术。 在模式中设置模板语句的意向并不保证得出意向预测,但这是一个明显的信号。

模式不会提升机器学习实体检测

模式的主要用途是帮助预测意向和角色。 pattern.any 实体用于提取自由格式实体。 当模式使用实体时,模式不会帮助检测机器学习实体。

若将多个话语合并到单个模式,则无法提升实体预测。 对于你的应用使用的简单实体,你需要添加语句或使用列表实体。

模式使用实体角色

如果模式中的两个或多个实体具有相关的上下文,模式会使用实体角色来提取关于实体的上下文信息。

使用和不使用模式的情况下的预测得分

假定有足够多的示例语句,则 LUIS 不使用模式即能提高预测的置信度。 无需提供尽量多的话语,模式就能增加置信度得分。

模式匹配

模式的匹配顺序是先检测模式内的实体,再验证模式的其余字词和字词顺序。 要匹配模式,需要在模式中包含实体。 模式在标记级别应用,而不在字符级别应用。

Pattern.any 实体

通过 pattern.any 实体,可找到自由格式数据,其中实体的用语方式比较晦涩,难以从话语的其余部分来确定实体的结尾。

例如,假设有一个人力资源应用可帮助员工查找公司文档。 此应用可能需要了解下面的示例语句。

  • HRF-123456 在哪里?
  • HRF-123234 的作者是谁?
  • HRF-456098 是以法语发布的吗?

但是,每个文档都具有格式化名称(在上述列表中使用的)和用户可读名称,如“Request relocation from employee new to the company 2018 version 5”。

具有用户可读名称的语句可能如下所示:

  • “Request relocation from employee new to the company 2018 version 5”在哪里
  • “Request relocation from employee new to the company 2018 version 5”的作者是谁?
  • “Request relocation from employee new to the company 2018 version 5”是以法语发布的吗?

此语句包含可能导致 LUIS 无法正确识别实体结尾位置的字词。 在模式中使用 Pattern.any 实体,可指定文档名称的开头和结尾,以便 LUIS 正确提取表单名称。 例如以下模板语句:

  • {FormName} 在哪里[?]
  • {FormName} 的作者是谁[?]
  • {FormName} 是以法语发布的吗[?]

模式的最佳做法:

在后续的迭代中添加模式

在添加模式之前,应该了解应用的行为方式,因为模式比示例言语的权重更大,会影响置信度。

了解应用的行为方式后,添加要应用于应用的模式。 不需要在每次循环访问应用设计时添加它们。

在设计模型之初就添加它们并没有什么坏处,但如果在使用语句测试模型之后再添加,则可以更容易地看出每个模式如何改变模型。

请勿添加许多模式

请勿添加过多模式。 LUIS 旨在通过少量示例快速学习。 请勿在不必要的情况下重载系统。

功能

在机器学习中,特征是系统观察到的以及习得的数据的判别特征或属性。

机器学习特征为 LUIS 提供了重要提示,指示在何处查找可判别概念的事项。 它们是 LUIS 可以使用的提示,但并不是硬规则。 LUIS 结合使用这些提示与标签来查找数据。

特征可以描述为一个函数,如 f(x) = y。 在示例言语中,特征会告诉你在何处寻找判别特征。 使用此信息来帮助创建架构。

特征类型

特征是架构设计的必要组成部分。 LUIS 支持同时使用短语列表和模型作为特征:

  • 短语列表特征
  • 以模型(意向或实体)作为特征

查找示例言语中的特征

由于 LUIS 是基于语言的应用程序,因此特征是基于文本的。 选择指示要判别的特征的文本。 对于 LUIS,最小单位是标记。 对于英语,标记是一组连续的字母和数字,不包含空格或标点。

由于空格和标点不是标记,因此请专注于可用作特征的文本线索。 请记住单词的变体也包括在内,例如:

  • 复数形式
  • 动词时态
  • 缩写词
  • 拼写和拼写错误

因为它可以区分特征,请确定文本是否需要以下内容:

  • 匹配精确的单词或短语:考虑将正则表达式实体或列表实体作为特征添加到实体或意向。
  • 匹配熟知的概念,例如日期、时间或人名:使用预生成的实体作为实体或意向的特征。
  • 随时间推移不断通过新示例学习:使用部分概念示例的短语列表作为实体或意向的特征。

为概念创建短语列表

短语列表是描述概念的单词或短语列表。 短语列表作为不区分大小写的匹配项应用于标记级别。

添加短语列表时,可以将特征设置为全局。 全局特征适用于整个应用。

何时使用短语列表

如果需要 LUIS 应用来归纳和识别概念的新项,请使用短语列表。 短语列表类似于域特定词汇。 它们提高了意向和实体的理解质量。

如何使用短语列表

使用短语列表时,LUIS 会考虑上下文并归纳内容,以识别类似的但不完全匹配文本的项。 请遵循以下步骤使用短语列表:

  1. 开始使用机器学习实体:
  2. 添加示例言语。
  3. 使用机器学习实体进行标记。
  4. 添加短语列表:
  5. 添加具有相似含义的单词。 不要添加每个可能的单词或短语。 应该每次添加几个单词或短语。 然后重新训练并发布。
  6. 查看并添加建议的单词。

短语列表的典型方案

短语列表的典型方案是强化与特定想法相关的单词。

医学术语是很好的示例,这些词可能需要短语列表来提高其显著性。 这些术语可以具有特定的物理、化学、治疗或抽象含义。 如果没有短语列表,LUIS 将不知道这些术语对你的主题领域很重要。

例如,要提取医学术语:

  1. 创建示例言语并在这些言语中标记医学术语。
  2. 通过主题领域中的术语示例创建短语列表。 此短语列表应包含你标记的实际术语以及描述相同概念的其他术语。
  3. 将短语列表添加到用于提取短语列表中使用的概念的实体或子实体中。 最常见的方案是机器学习实体的组件(子级)。 如果短语列表应该应用于所有意向或实体,请将短语列表标记为全局短语列表。 enabledForAllModels 标志控制 API 中的此模型范围。

短语列表的标记匹配

短语列表始终应用于标记级别。 下表显示具有 Ann 一词的短语列表如何以同样的顺序应用于相同字符的变体。

Ann 的标记变体 找到标记时的短语列表匹配
ANN
aNN
是 - 标记是 Ann
Ann's 是 - 标记是 Ann
Anne 否 - 标记是 Anne

作为特征的模型可帮助另一模型

你可将模型(意向或实体)作为特征添加到另一个模型(意向或实体)。 通过将现有意向或实体添加为特征,你将添加一个已有标记示例的定义明确的概念。

添加模型作为特征时,可以将特征设置为:

  • 必需 。 要从预测终结点返回模型,必须找到所需特征。
  • 全局 。 全局特征适用于整个应用。

何时将实体用作意向特征

如果该实体的检测对于意向非常重要,请将实体作为特征添加到意向。

例如,如果意向是预订航班(如 BookFlight),实体是机票信息(例如座位数量、出发地和目的地),则查找机票信息实体应会将重要权重添加到 BookFlight 意向的预测中。

何时将实体用作另一个实体的特征

如果实体 (A) 的检测对于另一个实体 (B) 的预测非常重要,则应将实体 (A) 作为特征添加到实体 (B)。

例如,如果“邮寄地址”实体包含在“街道地址”子实体中,则查找“街道地址”子实体会将较大权重添加到“邮寄地址”实体的预测。

  • 邮寄地址(机器学习实体):
    • 街道编号(子实体)
    • 街道地址(子实体)
    • 城市(子实体)
    • 州或省/自治区/直辖市(子实体)
    • 国家/地区(子实体)
    • 邮政编码(子实体)

带特征的嵌套子实体

机器学习子实体指示向父实体呈现了一个概念。 父实体可以是另一个子实体或顶层实体。 子实体的值充当其父实体的特征。

子实体可以同时包含短语列表和模型(另一实体)作为特征。

当子实体包含短语列表时,它会增加概念的词汇,但不会将任何信息添加到预测的 JSON 响应。

当子实体具有另一实体的特征时,JSON 响应将包含该另一实体的提取数据。

所需功能

若要将模型从预测终结点返回,必须找到所需特征。 如果你知道传入数据必须与特征匹配,请使用所需特征。

如果言语文本与所需特征不匹配,则不会提取该文本。

所需特征使用非机器学习实体:

  • 正则表达式实体
  • 列表实体
  • 预生成实体

如果你确信将在数据中发现模型,请将特征设置为“所需”。 如果未发现模型,则所需特征不会返回任何内容。

仍以邮寄地址为例:

邮寄地址(机器学习实体)

  • 街道编号(子实体)
  • 街道地址(子实体)
  • 街道名称(子实体)
  • 城市(子实体)
  • 州或省/自治区/直辖市(子实体)
  • 国家/地区(子实体)
  • 邮政编码(子实体)

使用预生成实体的所需特征

预生成实体(如城市、省/市/自治区和国家/地区)通常是一组封闭列表,这意味着它们不会随着时间的推移而变化。 这些实体可能具有相关的建议特征,可以将这些特征标记为“所需”。 但是,isRequired 标志只与分配给它的实体相关,不影响层次结构。 如果未找到预生成的子实体特征,则不会影响父实体的检测和返回。

作为必需特征的一个示例,请考虑要检测地址。 你可以考虑将街道号码作为一项要求。 这将允许用户输入“1 Microsoft Way”或“One Microsoft Way”,并且两者都将解析为街道号码子实体的数字“1”。 有关详细信息,请参阅预生成实体一文。

使用列表实体的所需特征

列表实体用作规范名称及其同义词的列表。 作为所需特征,如果言语既不包括规范名称也不包括同义词,则不会将该实体作为预测终结点的一部分返回。

假设你的公司仅向部分国家/地区发货。 你可以创建一个列表实体,其中包含多种供客户参考国家/地区的方式。 如果 LUIS 在言语的文本中找不到完全匹配项,则不会在预测中返回(具有列表实体的所需特征)实体。

规范名称** 同义词
美国 美国
U.S.A
US
USA
0

客户端应用程序(如聊天机器人)可以询问后续问题来提供帮助。 这可帮助客户了解国家/地区选择是有限制的和必需的。

使用正则表达式实体的所需特征

充当所需特征的正则表达式实体可提供丰富的文本匹配功能。

在邮寄地址示例中,可以创建一个正则表达式来捕获国家/地区邮政编码的语法规则。

全局特征

尽管最常见的用法是将特征应用到特定模型,但也可以将特征配置为全局特征,将其应用到整个应用程序。

全局特征最常见的用途是向应用添加其他词汇。 例如,如果你的客户使用的是主要语言,但希望能够在同一言语中使用其他语言,则你可添加一项特征来包含辅助语言的单词。

由于用户希望跨任何意向或实体使用辅助语言,因此请将辅助语言中的单词添加到短语列表。 将短语列表配置为全局特征。

组合特征以增加效益

可使用多个特征来描述特征或概念。 常见的配对是使用:

示例:旅游应用的订票实体特征

作为基本示例,请考虑这样一个应用:该应用通过一个“航班预订”意向和一个订票实体来预订航班 。 订票实体将捕获信息以在预订系统中预订机票。

用于订票的机器学习实体提供两个子实体来捕获源和目标。 需要将这些特征添加到每个子实体,而不是顶级实体。

显示票务预订应用程序示例实体的屏幕截图。

该订票实体是一个机器学习实体,其子实体包括“源”和“目标”。 这些子实体都表示地理位置。 为了帮助提取位置并在“源”和“目标”之间进行区分,每个子实体都应具有特征。

类型 “源”子实体 “目标”子实体
作为特征的模型 geographyV2 预生成实体 geographyV2 预生成实体
短语列表 始发地一词:出发自、开始于、离开 目的地一词:到达、抵达、落地、前往、出发、停留、着陆
短语列表 机场代码 - 对源和目标而言均相同的列表 机场代码 - 对源和目标而言均相同的列表
短语列表 机场名称 - 对源和目标而言均相同的列表 机场代码 - 对源和目标而言均相同的列表

如果预计用户使用机场代码和机场名称,则 LUIS 应包含使用这两种短语类型的短语列表。 机场代码可能在输入到聊天机器人的文本中更常见,而机场名称可能在语音对话(如启用语音的聊天机器人)中更常见。

只会为模型(而不会为短语列表)返回特征的匹配详细信息,因为在预测 JSON 中仅返回模型。

意向中的订票标记

创建机器学习实体后,需要将示例言语添加到意向,并标记父实体和所有子实体。

对于订票示例,使用 TicketBooking 实体及其任何子实体在文本中标记意向中的示例语句。

显示示例话语标记的屏幕截图。

示例:比萨饼订购应用

对于第二个示例,请考虑一个适用于比萨饼餐馆的应用,该餐馆接收比萨饼订单,包括顾客所订购的比萨饼类型的详细信息。 如果可能,应提取比萨饼的全部详细信息,以便完成订单处理。

本示例中的机器学习实体更复杂,其中包含嵌套的子实体、短语列表、预生成实体和自定义实体。

显示具有不同子实体的机器学习实体的屏幕截图。

此示例使用子实体级别的特征,并使用子实体的子级级别的特征。 哪一级别获取哪种类型的短语列表或作为特征的模型,是实体设计的重要部分。

尽管子实体可以将许多短语列表作为特征以便帮助检测实体,但每个子实体都只有一个作为特征的模型。 在此比萨饼应用中,这些模型主要是列表。

显示一个机器学习实体的屏幕截图,其中包含许多短语列表作为特征。

上面显示了已正确标记的示例言语,采用这种显示方式是为了说明实体如何嵌套。

后续步骤