json - Microsoft LUIS - 话语和实体中的 startPos 和 EndPos

标签 json azure botframework tokenize azure-language-understanding

我目前正在研究如何在不使用 Web UI 的情况下训练 LUIS。特别是我正在考虑找到一种方法来在文件中描述应用程序并在 LUIS 中导入和重新训练它。我知道 Python 中有一个针对 API 版本一的实现,但有一些限制。

在提供话语时,我希望能够做这样的思考,其中(Stockname)是我话语中的一个实体:

What's the price of (stockName)?

当我想要生成用于将应用导入 LUIS 的 JSON 时,需要如下所示:

                "utterances": [
              {
                "text": "What's the price of (stockName)?",
                "intent": "stockPrice",
                "entities": [
                  {
                    "entity": "stock",
                    "startPos": 6,
                    "endPos": 6
                  }
                ]
              },

问题是startPosendPos。据我了解,这是实体“单词”在标记化话语中的位置。我认为 LUIS 将话语转换为标记化文本t“(stockName) 的价格是多少?”并且该实体位于位置 6(从零开始)。

这意味着要在可导入的 JSON 中生成话语列表,我需要能够从 LUIS 获取标记化的话语文本或自己对其进行标记化。

还有其他方法可以实现这一目标吗?

有没有办法从 LUIS 获取标记化文本,以便我可以生成 JSON 格式的应用程序?

提前致以最诚挚的问候和感谢

最佳答案

我认为您对实体的 startPosendPos 值的理解不正确。

首先,在最新版本的 LUIS 中,这些参数被命名为 startIndexendIndex。不确定您是否使用的是 v1,或者您发布的 JSON 是否只是您正在创建的自定义架构。

但无论如何,预期的值是:

startIndex:给定文本中实体的第一个字符的索引

endIndex:给定文本中实体最后一个字符的索引

例如,在“Ezequiel Jadib 是谁?”这样的话语中其中“Ezequiel Jadib”是一个实体(假设为 People),LUIS 将为 startIndexendIndex 属性返回以下值:

enter image description here

其中 7 是实体的第一个字符(“E”),20 是最后一个字符(“b”),考虑到它是从零开始的。

知道这一点,我认为生成开始/结束值会更容易,因为您只需要知道实体从哪里开始和结束。

关于json - Microsoft LUIS - 话语和实体中的 startPos 和 EndPos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44523924/

相关文章:

Azure Key Vault 返回 403 和 "This TCP connection does not allow access to {host}"

c# - 我的 Teams 机器人如何启动新的 1 :1 chat with a known user

javascript - 将json数据转换为html表

javascript - 让 JSON 对象在 NodeJS 中工作的问题

jquery - 是否有更有效的方法将表单元素映射到表单提交中的 jSON 字符串?

azure - 将上传到 Azure Blob 的文件与本地文件进行比较

azure - 如何将 parquet 文件从 Azure Blob 读取到 Pandas DataFrame 中?

node.js - 如何防止消息在 BotFramework Nodejs 中无序到达?

c# - 有没有办法检测用户是从团队移动应用程序还是桌面应用程序输入?

javascript - JavaScript 中 JSON.stringify 中的第二个参数