我正在使用Microsoft Cognitive Service的语言理解服务API LUIS.ai。
每当LUIS解析文本时,总是在标点符号周围插入空格标记。
此行为是故意的,根据documentation。
“英语,法语,意大利语,西班牙语:在任何地方插入令牌中断 空白,以及任何标点符号。“
对于我的项目,我需要保留原始查询字符串,没有这些标记,因为为我的模型训练的一些实体将包括标点符号,并且从解析的实体中剥离额外的空格是令人讨厌和有点hacky。
此行为的示例:
有没有办法禁用它?这将节省相当多的努力。
谢谢!
答案 0 :(得分:1)
不幸的是暂时没有办法禁用它,但好消息是返回的预测将处理原始字符串,而不是您在示例标记过程中看到的标记化字符串。
在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"
}
}
]
}