重要
语言理解智能服务(LUIS)将于 2026 年 3 月 31 日完全停用。 LUIS 资源创建不可用。 从 2025 年 10 月 31 日开始,LUIS 门户将不再可用。 建议将 LUIS 应用程序迁移到对话语言理解,以便从持续的产品支持和多语言功能中受益。
当多个陈述非常相似时,模式旨在提高准确性。 使用模式可在无需进一步提供多个话语的情况下获得更高的意向准确度。
模式可解决意向置信度低的问题
考虑一个人力资源应用,该应用报告与员工相关的组织结构图。 如果具有员工的姓名和组织关系,LUIS 就能反馈所涉及的员工。 假设有一名员工叫汤姆,他的经理是爱丽丝,而他的下属团队包括迈克尔、丽贝卡和卡尔。
陈述 | 预测的意向 | 意向得分 |
---|---|---|
汤姆的下属是谁? | GetOrgChart (组织图生成器) | 0.30 |
汤姆的下属是谁? | GetOrgChart (组织图生成器) | 0.30 |
如果应用有 10 到 20 个话语,句子长度不同、单词顺序不同,甚至不同单词(“从属”、“管理”、“报告”的同义词),LUIS 可能会返回低置信度分数。 创建一个模式来帮助 LUIS 了解单词顺序的重要性。
模式可解决以下情况:
- 意向分数较低
- 正确的意向得分不是最高得分但太接近最高得分。
模式不能保证意向
模式使用混合预测技术。 在模式中为模板话语设置意向不能保证意向预测,但它是一个强信号。
模式不会改进机器学习实体检测
模式主要用于帮助预测意向和角色。 “pattern.any” 实体用于提取自由格式实体。 虽然模式使用实体,但模式并不有助于检测机器学习实体。
若将多个话语合并到单个模式,则无法提升实体预测。 若要使应用能够使用简单实体,需要添加话语或使用列表实体。
模式使用实体角色
如果模式中的两个或多个实体与上下文相关,则模式使用实体 角色 提取有关实体的上下文信息。
使用和不使用模式的预测分数
给定足够的示例话语后,LUIS 可以增加预测置信度,而无需模式。 模式可以增加置信度分数,而无需提供尽可能多的话语。
模式匹配
模式的匹配是通过先识别模式中的实体,然后检查模式中其余的单词和单词顺序来完成的。 要匹配一个模式,必须在模式中包含实体。 模式在令牌级别应用,而不是字符级别。
Pattern.any 实体
pattern.any 实体允许你查找自由格式的数据,其中实体的表达方式使得很难从话语的其他部分区分出实体的结束。
例如,考虑有助于员工查找公司文档的人力资源应用。 此应用可能需要了解以下示例话语。
- “HRF-123456 在哪里?
- "谁撰写了HRF-123234?"
- “HRF-456098 是否以法语出版?
但是,每个文档都有一个格式化名称(在上面的列表中使用),以及一个易读的名称,例如 2018 年公司新员工调动请求,第 5 版。
具有人类可读名称的话语可能如下所示:
- “公司新员工请求调职 2018 年第 5 版”在哪里?
- “公司新员工请求调职 2018 年第 5 版”的作者是谁?
- “公司新员工请求调职 2018 年第 5 版”是以法语发布的吗?
陈述中包含的字词可能会使 LUIS 对实体结束的位置感到混淆。 在模式中使用 Pattern.any 实体,可指定文档名称的开头和结尾,以便 LUIS 正确提取表单名称。 例如,以下模板话语:
- {FormName} 在哪里[?]
- 谁创作了 {FormName}[?]
- {FormName} 是否以法语发布[?]
模式最佳实践:
在以后的迭代中添加模式
你应该了解应用在添加模式之前的行为方式,因为模式的权重比示例言语更重,并且会倾斜置信度。
了解应用的行为方式后,根据需要为应用添加模式。 在应用设计迭代时,您无需每次都添加它们。
在模型设计开始时添加它们不会造成任何损害,但在使用言语测试模型后,更容易看到每个模式如何更改模型。
不要添加许多模式
不要添加太多模式。 LUIS 旨在通过更少的示例快速学习。 不要无谓地过载系统。
特点
在机器学习中, 特征 是系统观察和学习的数据的区分特征或属性。
机器学习功能为 LUIS 提供了重要的指引,帮助寻找用于区分概念的特征。 它们是 LUIS 可以使用的提示,但它们不是硬规则。 LUIS 将这些提示与标签一起使用来查找数据。
功能可以描述为函数,例如 f(x) = y
。 在示例话语中,该功能会告诉你在何处查找区分特征。 使用此信息来帮助创建架构。
功能类型
功能是架构设计的必要组成部分。 LUIS 支持短语列表和模型作为功能:
- 短语列表功能
- 将(意图或实体)作为特征进行建模
在示例话语中查找功能
由于 LUIS 是基于语言的应用程序,因此这些功能基于文本。 选择指示要区分的特征的文本。 对于 LUIS,最小单位是 令牌。 对于英语,令牌是字母和数字的连续范围,没有空格或标点符号。
由于空格和标点符号不是标记,因此请关注可以用作特征的文本线索。 请记住单词的变体也包括在内,例如:
- 复数形式
- 动词时态
- 缩写形式
- 拼写和拼写错误
确定文本是否需要以下内容,因为它区分特征:
- 精确匹配单词或短语:考虑将正则表达式实体或列表实体作为特征添加到实体或意向。
- 匹配日期、时间或人员姓名等已知概念:使用预生成的实体作为实体或意向的特征。
- 随着时间的推移学习新示例:使用一些关于这个概念的示例短语列表作为实体或意图的特征。
为概念创建短语列表
短语列表是描述概念的字词或短语列表。 短语列表作为不区分大小写的匹配项应用于标记级别。
添加短语列表时,可以将该功能设置为 全局功能。 全局功能适用于整个应用。
何时使用短语列表
需要 LUIS 应用通用化和标识概念的新项时,请使用短语列表。 短语列表类似于特定于域的词汇。 它们提高了意向和实体的理解质量。
如何使用短语列表
使用短语列表时,LUIS 会考虑上下文并通用化以标识类似于但不完全匹配的文本项。 请遵循以下步骤使用短语列表:
- 从机器学习实体开始:
- 添加示例话语。
- 使用机器学习实体进行标记。
- 添加短语列表:
- 添加具有类似含义的字词。 不要添加所有可能的单词或短语。 应该每次添加几个单词或短语。 然后重新训练并发布。
- 查看并添加建议的字词。
短语列表的典型情景
短语列表的典型方案是提升与特定想法相关的字词。
医学术语是一个很好的单词示例,可能需要短语列表来提升其重要性。 这些术语可以具有特定的物理、化学、治疗或抽象含义。 没有短语列表的话,LUIS 无法知道术语在你的主题领域中是重要的。
例如,若要提取医疗术语:
- 在这些陈述中创建示例话语并标记医疗术语。
- 使用主题域中术语的示例创建短语列表。 此短语列表应包含标记的实际术语以及描述相同概念的其他术语。
- 将短语列表添加到提取该短语列表中概念的实体或子实体中。 最常见的方案是机器学习实体的组件(子级)。 如果短语列表应应用于所有意向或实体,请将短语列表标记为全局短语列表。 enabledForAllModels 标志控制 API 中的此模型范围。
短语列表的标记匹配
短语列表始终应用于标记级别。 下表显示了包含 Ann 单词的短语列表如何按该顺序应用于相同字符的变体。
“Ann”的标记变体 | 找到标记时的短语列表匹配 |
---|---|
ANN aNN |
是 - 令牌为 Ann |
Ann's | 是 - 令牌为 Ann |
安妮 | 否 - 标记是 Anne |
作为特征的模型可帮助另一模型
可以将模型(意向或实体)作为特征添加到另一个模型(意向或实体)。 通过将现有意向或实体添加为一个特性,你在添加一个有已标记示例的定义明确的概念。
将模型添加为特征时,可以将该功能设置为:
何时将实体用作意向特征
当检测该实体对于意图而言非常重要时,将实体添加到意图中作为特征。
例如,如果意向用于预订航班(如 BookFlight ),并且实体是机票信息(如座位数、出发地和目的地数),则查找票证信息实体应为 BookFlight 意向的预测增加重要权重。
何时将一个实体用作另一个实体的特征
当对实体(A)的检测对于实体(B)的预测意义重大时,应将实体(A)添加为另一个实体(B)的功能。
例如,如果送货地址实体包含在街道地址子实体中,则查找街道地址子实体会为发货地址实体的预测增加显著权重。
- 寄送地址(机器学习实体):
- 街道编号(子实体)
- 街道地址(子实体)
- 城市(子实体)
- 州或省(子实体)
- 国家/地区(子实体)
- 邮政编码(子实体)
带特征的嵌套子实体
机器学习子实体向父实体指示一个概念的存在。 父实体可以是另一个子实体或顶层实体。 子实体的值充当其父实体的特征。
子实体可以同时将短语列表和模型(另一个实体)作为特征。
当子实体具有短语列表时,它会提升概念的词汇,但不会将任何信息添加到预测的 JSON 响应中。
当子实体具有另一个实体的特征时,JSON 响应将包含该其他实体的提取数据。
必需功能
必须找到所需的功能,以便从预测终结点返回模型。 当你知道传入数据必须与该功能匹配时,请使用所需的功能。
如果话语文本与所需功能不匹配,则不会提取它。
必需功能使用非机器学习实体:
- 正则表达式实体
- 列表实体
- 预生成实体
如果确信可以在数据中找到模型,请根据需要设置该功能。 如果未找到所需功能,则不会返回任何内容。
仍以邮寄地址为例:
寄送地址(机器学习实体)
- 街道编号(子实体)
- 街道地址(子实体)
- 街道名称(子实体)
- 城市(子实体)
- 州或省(子实体)
- 国家/地区(子实体)
- 邮政编码(子实体)
使用预生成实体的所需特征
预生成的实体(如城市、州和国家/地区)通常是一组封闭列表,这意味着它们不会随时间而变化很大。 这些实体可以具有相关的推荐功能,并且这些功能可以标记为必需。 但是,isRequired 标志仅与分配给它的实体相关,并且不会影响层次结构。 如果未找到预生成的子实体功能,则不会影响父实体的检测和返回。
作为所需功能的一个示例,假设你想要检测地址。 可以考虑将街道号码作为要求。 这允许用户输入“1 Microsoft Way”或“One Microsoft Way”,对于街道编号子实体,两者都解析为数字“1”。 有关详细信息,请参阅 预生成实体文章。
使用列表实体的所需特征
列表实体用作规范名称列表及其同义词。 作为必需功能,如果言语不包含规范名称或同义词,则实体不会作为预测终结点的一部分返回。
假设贵公司仅交付给一组有限的国家/地区。 可以创建一个列表实体,其中包含多种方法供客户引用国家/地区。 如果 LUIS 在言语的文本中找不到完全匹配项,则不会在预测中返回(具有列表实体的所需特征)实体。
规范名称** | 同义词 |
---|---|
美国 | 美国。 美国 美国 美国 0 |
客户端应用程序(如聊天机器人)可以提出后续问题来提供帮助。 这有助于客户了解国家/地区选择有限且 必需。
使用正则表达式实体的所需特征
用作必需功能的 正则表达式实体 提供丰富的文本匹配功能。
在送货地址示例中,可以创建一个正则表达式,用于捕获国家/地区邮政编码的语法规则。
全局特征
虽然最常见的用途是将功能应用于特定模型,但可以将该功能配置为 全局功能 ,以将其应用于整个应用程序。
全局功能的最常见用途是向应用添加额外的词汇。 例如,如果你的客户使用主要语言,但希望能够在同一话语中使用另一种语言,则可以添加包含辅助语言中的字词的功能。
由于用户希望跨任何意向或实体使用辅助语言,因此请将辅助语言中的单词添加到短语列表中。 将短语列表配置为全局功能。
合并功能以增加额外好处
可以使用多个功能来描述特征或概念。 常见的搭配是使用:
示例:旅行应用的机票预订实体功能
作为一个基本示例,请考虑一个用于航班预订的应用,其中包含航班预约 意向 和机票预定 实体。 票务预订实体在预订系统中记录预订机票的信息。
票务系统的机器学习实体有两个子实体用于识别出发地和目的地。 需要将特征添加到每个子实体,而不是顶级实体。
票证预订实体是机器学习实体,子实体包括 Origin 和 Destination。 这些子实体都表示地理位置。 为了帮助提取位置并区分 Origin 和 Destination,每个子实体应具有特征。
类型 | “源”子实体 | 目标子实体 |
---|---|---|
作为特征的模型 | geographyV2 预生成实体 | geographyV2 预生成实体 |
短语列表 | 原字词:始发地,出发地,离开 | 目标字词:到,到达,抵达地,去,去往,停留,前往 |
短语列表 | 机场代码 - 始发地和目的地的相同列表 | 机场代码 - 始发地和目的地的相同列表 |
短语列表 | 机场名称 - 出发地和目的地的相同列表 | 机场代码 - 始发地和目的地的相同列表 |
如果预计人们使用机场代码和机场名称,则 LUIS 应具有使用这两种类型的短语的短语列表。 机场代码可能在输入到聊天机器人的文本中更常见,而机场名称可能在语音对话(如启用语音的聊天机器人)中更常见。
特征的匹配详细信息仅针对模型返回,而不适用于短语列表,因为只有模型在预测 JSON 中返回。
意向中的订票标记
创建机器学习实体后,需要向意向添加示例话语,并标记父实体和所有子实体。
对于订票示例,使用 TicketBooking 实体及其任何子实体在文本中标记意向中的示例言语。
示例:披萨订购应用
对于第二个示例,请考虑一个披萨餐厅的应用,它接收披萨订单,包括某人正在订购的披萨类型的详细信息。 应尽可能提取披萨的每个详细信息,以便完成订单处理。
此示例中的机器学习实体使用嵌套子实体、短语列表、预生成实体和自定义实体更为复杂。
此示例使用子实体层级及其子层级的功能。 哪一级别获取哪种类型的短语列表或作为特征的模型,是实体设计的重要部分。
虽然子实体可以具有许多短语列表作为帮助检测实体的特征,但每个子实体只有一个模型作为特征。 在此比萨饼应用中,这些模型主要是列表。
上面显示了已正确标记的示例言语,采用这种显示方式是为了说明实体如何嵌套。