我正在使用Microsoft Cognitive Service的语言理解服务API LUIS.ai

每当LUIS解析文本时,总是在标点符号周围插入空格标记。

根据documentation,此行为是故意的。

“英语,法语,意大利语,西班牙语:在任意位置插入 token 符
空格以及所有标点符号。”

对于我的项目,我需要保留没有这些标记的原始查询字符串,因为为我的模型训练的某些实体将包括标点符号,并且从解析的实体中剥离多余的空格很烦人。

此行为的示例:

microsoft-cognitive - 在标点符号LUIS.ai上禁用 token 中断-LMLPHP

有没有办法禁用此功能?这样可以节省很多精力。

谢谢!!

最佳答案

不幸的是,暂时没有办法禁用它,但是好消息是返回的预测将处理原始字符串,而不是示例标记过程中看到的标记化字符串。

how to understand the JSON response的文档中,您可以看到示例输出保存器原始“查询”字符串,并且提取的实体在原始字符串中具有从零开始的字符索引("startIndex", "endIndex");这将允许您处理索引而不是解析的实体短语。

{
"query": "Book me a flight to Boston on May 4",
"intents": [
  {
    "intent": "BookFlight",
    "score": 0.919818342
  },
  {
    "intent": "None",
    "score": 0.136909246
  },
  {
    "intent": "GetWeather",
    "score": 0.007304534
  }
],
"entities": [
  {
    "entity": "boston",
    "type": "Location::ToLocation",
    "startIndex": 20,
    "endIndex": 25,
    "score": 0.621795356
  },
  {
    "entity": "may 4",
    "type": "builtin.datetime.date",
    "startIndex": 30,
    "endIndex": 34,
    "resolution": {
      "date": "XXXX-05-04"
    }
  }
]

}

关于microsoft-cognitive - 在标点符号LUIS.ai上禁用 token 中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38749246/

10-15 09:24