【问题标题】:Microsoft LUIS builtin.numberMicrosoft LUIS builtin.number
【发布时间】:2017-08-21 20:05:50
【问题描述】:

我在我的 LUIS 应用中使用了 builtin.number,试图收集一个 4 位数的密码。以下是当我的输入为“一二三四”时从 LUIS 返回的内容。

“实体”:[ { “实体”:“一个”, "type": "builtin.number", “开始索引”:0, “结束索引”:2, “解析度”: { “价值”:“1” } }, { “实体”:“两个”, "type": "builtin.number", “开始索引”:4, “结束索引”:6, “解析度”: { “价值”:“2” } }, { “实体”:“三个”, "type": "builtin.number", “开始索引”:8, “结束索引”:12, “解析度”: { “价值”:“3” } }, { “实体”:“四个”, "type": "builtin.number", “开始索引”:14, “结束索引”:17, “解析度”: { “价值”:“4” } },

如您所见,它以文本和数字格式返回单个数字。在我看来,返回整个数字比返回单个数字更重要。有没有办法让我得到 '1234' 作为 builtin.number 的结果?

谢谢!

【问题讨论】:

  • 连接它们?

标签: azure-language-understanding


【解决方案1】:

仅使用 LUIS 无法满足您的要求。 LUIS 进行标记化的方式是,由于空格,它会单独识别每个单词/数字。不用说 'onetwothreefour' 也不会返回 1234。

此外,用户无法在单个模型级别修改预构建实体的识别。某些语言的识别器是open-source,欢迎社区贡献。

综上所述,您可以通过连接数字来实现您的要求。 JavaScript 示例可能类似于以下内容:

var pin = '';
entities.forEach(entity => {
  if (entity.type == 'builtin.number') {
    pin += entity.resolution.value;
  }
}

console.log(pin); // '1234'

之后,您需要执行自己的处理/正则表达式,但我将把它留给您。 (毕竟,如果有人提供"seven eight nine ten"?或"twenty seventeen"?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多