【问题标题】:How do I get key/value from entity list in LUIS [botframework]如何从 LUIS [botframework] 中的实体列表中获取键/值
【发布时间】:2017-06-19 13:05:21
【问题描述】:

我试图让我的机器人分解各种首字母缩略词的定义。我已将它们全部添加到实体列表中,同义词是我想要显示的值。我想知道如何处理这个 JSON 数据并调用正确的信息,这样在这种情况下,首字母缩写词 WWW 将导致“万维网”

我想接收规范形式并输出同义词“万维网”。我只是不明白如何在 node.js 中执行此操作。有人可以澄清一下我可以在什么对象中找到该列表中搜索实体的同义词。

【问题讨论】:

  • 我不确定我是否理解这个问题。您想知道如何在基于 BotFramework/Node.js 的机器人中使用 LUIS?
  • 我很难理解我要查找的对象在哪里。我可以从结果中看到它正在识别我的实体列表“行业首字母缩略词”,但我怎样才能将配对值设为“WWW”
  • @EzequielJadib 我添加了另一个来自 LUIS.ai 的屏幕截图,以尝试更清楚地说明我想要做什么。

标签: node.js botframework azure-language-understanding


【解决方案1】:

如果我的理解正确...您想要访问同义词,但它们没有以 JSON 格式发送?

如果是这种情况,您可以考虑制作字典 public Dictionary<string,List<string>>(如果您有多个同义词)或 public Dictionary<string,string>(如果每个首字母缩写词只有一个)。然后您可以使用实体中的值来查找代码中的同义词。

【讨论】:

  • 这可能有效,但我有数千个首字母缩略词,它们都在实体列表中。必须有更好的方法来访问这些信息。
  • 我感受到你的痛苦,但我看不到在 JSON 中获取同义词的方法
  • 您还可以下载您的 LUIS 模型,因此可以复制/粘贴或编写代码来读取/使用您需要的模型部分。
【解决方案2】:

如果你真的需要同义词,你可以导出你的LUIS model 并从那里提取"closedLists" kvp。然后将其映射到一个对象并从您的代码中访问该对象。

但是...如果我理解正确的话,我认为您可能错误地设置了您的列表实体。或者从概念上讲,您可能会以不同的方式考虑您的列表实体。

规范形式是您希望代码处理的值。假设我想为 New York, New York 设置一个列表实体。我们会说"New York, New York" 是规范形式。我们将收集纽约、纽约的同义词,因为老实说,不断输入/写出或大声说出来是一件很痛苦的事。

我们的规范形式:"New York, New York"
我们的同义词是:"New York City", "NYC", "The Big Apple", "NY, NY"

|规范形式 |同义词 |

| “纽约,纽约” | “纽约市”、“NYC”、“大苹果”、“NY, NY” |

我正在将已识别的实体提交到数据库,我不想有一个带有"New York City" 的条目、两个带有"NYC" 的条目和一百个带有"New York, New York" 的条目。处理这将是一场噩梦,尤其是效率极低。

当我将数据提交到数据库时,我忽略了他们的实际话语并使用规范形式,因为通过列表实体我已经标准化了用户输入。

总而言之,在代码内部,您可以执行以下操作来处理列表实体。

这是一个关于从 "Industry Acronyms"-recognized 实体中提取规范形式 "WWW" 的 sn-p。

var yourEntity = builder.EntityRecognizer.findEntity('Industry Arconyms', results.response);

var canonicalForm;
var recognizedSynonym;


yourEntity.resolution.values.forEach(function (canonical_form) {
    if (canonical_form == "WWW") {
        recognizedSynonym = yourEntity.entity;
    }
})

但如果你想接收实体中的每一个规范形式,你会做这样的事情:

var canonicalForms = [];

yourEntity.resolution.values.forEach(function (canonical_form) {
        canonicalForms.push(canonical_form);
})

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多