实体类型
重要
LUIS 将于 2025 年 10 月 1 日停用,从 2023 年 4 月 1 日开始,你将无法创建新的 LUIS 资源。 建议将 LUIS 应用程序迁移到对话语言理解,以便从持续的产品支持和多语言功能中受益。
实体是与用户意向相关的项目或元素。 实体定义可以从言语中提取的数据,对于完成用户的必需操作至关重要。 例如:
话语 | 预测的意向 | 提取的实体 | 说明 |
---|---|---|---|
嗨,你好吗? | 问候语 | - | 没有要提取的内容。 |
I want to order a small pizza | orderPizza | “small” | “Size”实体提取为“small”。 |
Turn off bedroom light | turnOff | “bedroom” | “Room”实体提取为“bedroom”。 |
Check balance in my savings account ending in 4406 | checkBalance | “savings”,“4406” | “accountType”实体提取为“savings”,“accountNumber”实体提取为“4406”。 |
购买 3 张到纽约的机票 | buyTickets | “3”,“New York” | “ticketsCount”实体提取为“3”,“Destination”实体提取为“New York”。 |
实体是可选的(但建议使用)。 无需在应用中为每个概念都创建实体,但以下情况除外:
- 客户端应用程序需要数据,或
- 实体作为另一个实体或意向的提示或信号。 若要了解有关作为特征的实体的详细信息,请参阅作为特征的实体。
实体类型
若要创建实体,必须为其提供名称和类型。 LUIS 中有多种类型的实体。
列表实体
列表实体表示一组固定、封闭的相关字词及其同义词。 可以使用列表实体识别多个同义词或变体,并为它们提取规范化输出。 使用“建议”选项根据当前列表查看有关新词的建议。
列表实体不是机器学习型,这意味着 LUIS 不会为列表实体发现更多值。 LUIS 将任何列表中某个项的任何匹配项标记为响应中的实体。
匹配的列表实体区分大小写,并且必须是精确匹配项。 匹配列表实体时也使用规范化值。 例如:
规范化值 | 同义词 |
---|---|
小型 | sm 、sml 、tiny 、smallest |
中型 | md 、mdm 、regular 、average 、middle |
大型 | lg 、lrg 、big |
有关详细信息,请参阅列表实体参考文章。
正则表达式实体
正则表达式实体基于所提供的正则表达式模式提取实体。 不区分大小写,并忽略区域性变体。 正则表达式实体最适用于结构化文本或预计采用特定格式的预定义字母数字值序列。 例如:
实体 | 正则表达式 | 示例 |
---|---|---|
航班号 | flight [A-Z]{2} [0-9]{4} |
flight AS 1234 |
信用卡号 | [0-9]{16} |
5478789865437632 |
有关详细信息,请参阅正则表达式实体参考文章。
预生成的实体
LUIS 包括一组预生成实体,用于识别常见类型的信息,如日期、时间、数字、度量和货币。 预构建实体支持因 LUIS 应用的区域性而异。 有关 LUIS 支持的预构建实体的完整列表,包括区域性支持,请参阅预构建实体参考。
当预构建实体包含在应用程序中时,其预测将包含在发布的应用程序中。 预构建实体的行为是预先训练的,不能修改。
预生成实体 | 示例值 |
---|---|
PersonName | James、Bill、Tom |
DatetimeV2 | 2019-05-02 、May 2nd 、8am on May 2nd 2019 |
有关详细信息,请参阅预生成实体参考文章。
Pattern.Any 实体
pattern.Any 实体是一种长度可变的占位符,仅在模式的模板言语中使用,用于标记实体的起始和结束位置。 它遵循特定规则或模式,最适合用于具有固定词法结构的语句。 例如:
示例陈述 | 模式 | 实体 |
---|---|---|
Can I have a burger please? | Can I have a {meal} [please][?] |
burger |
Can I have a pizza? | Can I have a {meal} [please][?] |
pizza |
Where can I find The Great Gatsby? | Where can I find {bookName}? |
The Great Gatsby |
有关详细信息,请参阅 Pattern.Any 实体参考文章。
机器学习 (ML) 实体
机器学习实体使用上下文根据标记的示例提取实体。 它是用于生成 LUIS 应用程序的首选实体。 它依赖于机器学习算法,需要进行标记以对应用程序进行定制。 使用 ML 实体识别并非始终格式正确但具有相同意义的数据。
示例陈述 | 提取的 product 实体 |
---|---|
I want to buy a book. | “book” |
Can I get these shoes please? | “shoes” |
Add those shorts to my basket. | “shorts” |
有关详细信息,请参阅机器学习实体。
具有结构的 ML 实体
ML 实体可以由较小子实体组成,每个子实体都可以具有自己的属性。 例如,“地址”实体可能具有以下结构:
- 地址:4567 Main Street, NY, 98052, USA
- 建筑物编号:4567
- 街道名称:Main Street
- 州:NY
- 邮政编码:98052
- 国家/地区:USA
生成有效 ML 实体
若要有效生机器学习实体,请遵循以下最佳做法:
- 如果有包含子实体的机器学习实体,请确保实体和子实体的不同顺序和变体显示在标记的言语中。 标记的示例言语应包括所有有效的形式,并包括显示的、缺失的以及在言语中重新排序的实体。
- 避免将实体过度拟合到固定的集。 当模型未充分通用化时,会发生过度拟合,这是机器学习模型中的常见问题。 这意味着应用并非很适合新类型的示例。 因此,你应该使标记的示例言语多样化,从而使应用可以在你提供的有限示例之外通用化。
- 标记应在意向之间应保持一致。 这甚至包括你在 None 意向中提供的包含此实体的言语。 否则,模型将无法有效地确定序列。
作为特征的实体
实体的另一种重要功能是将它们用作特征或区分其他意向或实体的特征,以便系统可以通过它们进行观察和学习。
作为意向特征的实体
可以使用实体作为意向的信号。 例如,言语中特定实体的存在情况可以区分其所属的意向。
示例陈述 | 实体 | Intent |
---|---|---|
为我预订去纽约的航班。 | 城市 | 预定机票 |
Book me the main conference room. | 会议室 | 保留房间 |
作为实体特征的实体
还可以将实体用作其他实体存在情况的指示器。 这种情况的一个常见示例是使用预生成实体作为其他 ML 实体的功能。 如果你在构建航班预定系统,而言语类似于“Book me a flight from Cairo to Seattle”,则可能会将“出发城市”和“目标城市”作为 ML 实体。 一种良好做法是使用预生成 GeographyV2 实体作为这两个实体的特征。
有关详细信息,请参阅 GeographyV2 实体参考文章。
还可以将实体用作其他实体的必需特征。 这可帮助解析提取的实体。 例如,如果你在创建一个披萨订购应用程序,并且有一个 Size ML 实体,则可以创建 SizeList 列表实体并将它用作 Size 实体的必需特征。 应用程序会以从言语提取的实体的形式返回规范化值。
请参阅特征以了解详细信息,并参阅预生成实体以了解有关区域性中提供的预生成实体解析的详细信息。
实体中的数据
大多数聊天机器人和应用程序需要的都不止是意向名称。 此额外的可选数据来源于在陈述中发现的实体。 每种类型的实体返回有关匹配项的不同信息。
陈述中的单个单词或短语可以匹配多个实体。 在这种情况下,会返回每个匹配实体及其评分。
所有实体均从终结点响应的“实体”数组中返回
实体最佳做法
使用机器学习实体
机器学习实体已针对你的应用进行了定制,并要求标记功能成功执行。 如果未使用机器学习实体,那么你使用的可能是错误实体。
机器学习实体可以使用其他实体作为特征。 这些其他实体可以是自定义实体(如正则表达式实体或列表实体),你也可以使用预生成实体作为特征。
了解有效的机器学习实体。