我目前正在研究如何在不使用网络用户界面的情况下培训LUIS。特别是我正在考虑找到一种方法来描述文件中的应用程序,并在LUIS中导入和重新训练它。我知道在Python中有一个实现,但有一些限制和API版本。
在提供话语时,我希望能够像这样做一些思考,其中(Stockname)是我话语中的一个实体:
What's the price of (stockName)?
当我想生成用于将应用程序导入LUIS的JSON时,这需要如下所示:
"utterances": [
{
"text": "What's the price of (stockName)?",
"intent": "stockPrice",
"entities": [
{
"entity": "stock",
"startPos": 6,
"endPos": 6
}
]
},
问题是 startPos 和 endPos 。据我所知,这是实体“单词”在标记化话语中的位置。我认为LUIS将话语转换为 tokenized tex t“(stockName)的价格是多少?”并且实体位于第6位(从零开始)。
这意味着要在可导入的JSON中生成话语列表,我需要能够从LUIS获取标记化的话语文本或者自己标记它。
还有其他方法可以实现这一目标吗?
有没有办法从LUIS获取标记化文本,所以我可以用JSON格式生成我的应用程序?
提前致以最诚挚的问候和谢意
答案 0 :(得分:3)
我认为您对实体的startPos
和endPos
值的理解不正确。
首先,在最新版本的LUIS
中,这些参数名为startIndex
和endIndex
。不确定您使用的是v1,还是您发布的JSON
只是您正在创建的自定义架构。
但无论如何,预期的值是:
startIndex :给定文本中实体的第一个字符的索引
endIndex :给定文本中实体的最后一个字符的索引
所以,例如在“谁是Ezequiel Jadib?”这样的话语中? “Ezequiel Jadib”是一个实体(比方说人物),LUIS将为startIndex
和endIndex
属性返回以下值:
其中7是实体的第一个字符(“E”),20是最后一个(“b”),考虑到基于零。
了解这一点,我认为生成开始/结束值更容易,因为您只需知道实体的开始位置和结束位置。