我试图让我的机器人分解各种缩略词的定义。我将它们全部添加到实体列表中,同义词是我想要显示的值。我想知道如何处理这个JSON数据并调用正确的信息,以便在这种情况下,首字母缩略词WWW将导致"万维网"
我希望收到规范表格并输出同义词"万维网"。我只是不明白如何在node.js中这样做。有人可以澄清我可以从这个列表中找到被搜索实体的同义词的对象。
答案 0 :(得分:1)
如果我理解正确...您想要访问同义词,但它们不是在JSON中发送的吗?
如果是这种情况,如果您有多个同义词,则可以考虑创建字典lessCount
,如果每个首字母缩写词只有一个,则可以考虑public Dictionary<string,List<string>>
。然后,您可以使用实体中的值来查找代码中的同义词。
答案 1 :(得分:0)
如果您确实需要同义词,则可以导出LUIS model并从那里提取"closedLists"
kvp。然后将其映射到对象并从代码中访问该对象。
但是......如果我理解正确的话,我认为您可能错误地设置了列表实体。或者从概念上讲,您可能会考虑不同意义上的列表实体。
规范表单是您想要代码要处理的值。假设我想为纽约纽约设置一个列表实体。我们会说"New York, New York"
是规范形式。我们将收集纽约纽约的同义词,因为老实说,不断打字/写出或大声说出是一种痛苦。
我们的规范形式:"New York, New York"
我们的同义词是:"New York City", "NYC", "The Big Apple", "NY, NY"
| “纽约,纽约” | “纽约市”,“纽约市”,“大苹果”,“纽约,纽约” |
我将已识别的实体提交到数据库,我不希望有"New York City"
的条目,"NYC"
的两个条目和"New York, New York"
的一百个条目。处理这将是一场噩梦,尤其是效率极低。
当我将数据提交到数据库时,我忽略了他们的实际话语并使用规范形式,因为通过列表实体我已经标准化了用户输入。
所有人都说,在代码内部,您可以执行以下操作来处理列表实体。
以下是从"WWW"
认可的实体中提取规范表单"Industry Acronyms"
的摘要。
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);
})