语言理解常见问题解答 (FAQ)

重要

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

LUIS 应用程序的最大限制是什么?

LUIS 有几个限制区。 第一个是模型限制,它可控制 LUIS 中的意向、实体和功能。 第二个是基于密钥类型的配额限制。 限制的第三个区域是用于控制 LUIS 网站的键盘组合。 第四个是 LUIS 创作网站和 LUIS 终结点 API 之间的世界区域映射。 有关详细信息,请参阅 ,LUIS 限制

创作密钥和预测密钥有什么区别?

创作资源可用于创建、管理、训练、测试和发布应用程序。 预测资源可让你在超出创作资源提供的 1,000 个请求范围之外查询预测终结点。 请参阅 LUIS 中的创作密钥和查询预测终结点密钥,以了解创作密钥与预测运行时密钥之间的区别。

什么是同义词和单词变体?

在示例中没有明确标识的情况下,LUIS 几乎或完全不了解更广泛的 NLP 特性(例如语义相似性)。 例如,以下标记(单词)在所提供的示例中用于相似的上下文中之前,它们是三个不同的内容:

  • 购买
  • buying
  • bought

对于语义相似性自然语言理解 (NLU),可以使用对话语言理解

什么是创作和预测定价?

语言理解有单独的资源,一类用于创作,另一类用于查询预测终结点,其中每种类型都有自己的定价。 请参阅资源使用情况和限制

受支持的区域有哪些?

请参阅区域支持

LUIS 如何存储数据?

LUIS 将加密的数据存储在与密钥指定的区域对应的 Azure 数据存储中。 用于训练模型的数据(如实体、意向和言语)将在应用程序的生存期内保存在 LUIS 中。 如果所有者或参与者删除该应用,这些数据会随应用一起删除。 如果某个应用程序在 90 天内未被使用,该应用程序将会被删除。 有关数据存储的更多详细信息,请参阅数据保留

训练 None 意向是否很重要?

是,尤其是在向其他意向添加更多标签时,不妨使用语句训练“None”意向。 有关详细信息,请参阅 none 意向

如何以编程方式编辑 LUIS 应用?

若要以编程方式编辑 LUIS 应用,请使用创作 API。 请参阅调用 LUIS 创作 API使用 Node.js 以编程方式生成 LUIS 应用,通过示例了解如何调用创作 API。 创作 API 要求使用创作密钥而不是终结点密钥。 编程创作最多允许每个月进行 1,000,000 次调用,每秒处理五个事务。 若要详细了解可与 LUIS 配合使用的密钥,请参阅管理密钥

示例表述的变体是否应包括标点?

使用以下任一解决方案:

  • 忽略标点
  • 将不同的变体作为示例言语添加到意图
  • 在示例言语模式上添加要忽略的语法标点符号。

为什么每次训练时我的应用都会获得不同的分数?

启用或禁用使用不确定训练选项。 禁用后,训练将使用所有可用的数据。 (默认)启用该选项后,每次训练应用时,训练都会将随机样本用作消极的意向。 为确保每次都获得相同的分数,请确保使用所有数据训练 LUIS 应用。 有关详细信息,请参阅训练一文。

我收到了一个 HTTP 403 错误状态代码。 如何解决问题? 我可以每秒处理更多请求吗?

当你超过你所在定价层的每秒事务数或每月事务数时,将收到 403 和 429 错误状态代码。 请提高你的定价层,或者使用语言理解 Docker 容器

当你使用了所有免费的 1000 个终结点查询或超出定价层的每月事务配额时,将收到 HTTP 403 错误状态代码。

若要修复此错误,需要将定价层更改为更高层,或者创建新资源并将其分配给应用。

此错误的解决方法包括:

  • Azure 门户中,导航到“语言理解”资源,依次选择“资源管理”、“定价层”,然后更改定价层。 如果资源已分配给语言理解应用,则无需更改语言理解门户中的任何内容。
  • 如果使用量超过了最高定价层相应的使用量,请添加更多的语言理解资源,并在这些资源前面放置一个负载均衡器。 带有 Kubernetes 或 Docker Compose 的“语言理解”容器可以帮助解决此问题。

当每秒事务数超过定价层时,将返回此 HTTP 429 错误代码。

解决方法包括:

  • 如果不在最高层,可以提高定价层
  • 如果使用量超过了最高定价层相应的使用量,请添加更多的语言理解资源,并在这些资源前面放置一个负载均衡器。 带有 Kubernetes 或 Docker Compose 的“语言理解”容器可以帮助解决此问题。
  • 收到此状态代码时,可以使用你自己实现的重试策略来限制客户端应用程序请求。

为什么 LUIS 向查询添加空格时,会将其添加到单词的周围或中间?

LUIS 根据区域性将表述标记化。 原始值和标记化值均可用于数据提取

当我预计 LUIS 请求超出配额时,我该怎么办?

LUIS 基于 Azure 资源的定价层,具有每月配额和每秒配额。

如果 LUIS 应用请求速率超过了允许的配额速率,你可以:

我可以使用多个具有相同应用定义的应用吗?

是,导出原始 LUIS 应用,并将该应用导入回单独的应用。 每个应用都有其自己的应用 ID。 在发布时,请为每个应用创建单独的密钥,而不是对所有应用使用相同的密钥。 均衡所有应用的负载,避免单个应用处于过载状态。

若要在所有应用之间获取同样的最高意向,请确保第一意向和第二意向之间的意向预测差距足够大,不会让 LUIS 混淆,从而针对语句中微小的变化在应用间给出不同的结果。

训练这些应用时,请确保使用所有数据进行训练

指定单个主应用。 建议查看的任何语句都应添加到主应用,然后移回所有其他应用。 这是应用的一次完整导出,或是将主应用中已标记的语句加载到其他应用。 可从 LUIS 网站或者单个话语批量话语的创作 API 完成加载。

计划定期审查(例如每两周一次)终结点语句以进行主动学习,然后重新训练并重新发布应用。

如何下载用户表述的日志?

默认情况下,LUIS 应用会记录用户提供的表述。 若要下载用户发送至 LUIS 应用的语句的日志,请转到“我的应用”,然后选择此应用。 在上下文工具栏中,选择“导出终结点日志”。 日志格式化为逗号分隔值 (CSV) 文件。

如何禁用表述的日志记录?

若要关闭用户表述的日志记录,可以在客户端应用程序用来查询 LUIS 的终结点 URL 中设置 log=false。 但是,关闭日志记录会禁用 LUIS 应用提供表述建议或改进基于主动学习的性能的功能。 如果因为数据隐私顾虑而设置 log=false,则不能从 LUIS 下载这些用户表述的记录,也不能使用这些表述来改进应用。

日志记录是表述的唯一存储方式。

为什么不需要记录所有的终结点表述?

如果使用日志进行预测分析,请勿在日志中捕获测试性表述。

受支持的语言有哪些?

请参阅受支持的语言,对于多语言 NLU,请考虑使用语言服务的新对话语言理解 (CLU) 功能。

是否可以在本地或私有云中使用语言理解 (LUIS)?

是,如果具有计量使用情况的必要连接,则可以为这些方案使用 LUIS 容器