Aym*_*ric 2 azure-language-understanding
我想在LUIS中检测一个人的姓名,包括一个有姓名的人(例如:Mary-Anne)
设置:
我训练和发表(在分期)但它从未检测到整个组合名称,而是只返回第一部分作为实体(例如:实体是"marc"而不是"marc-andre").
你知道如何配置LUIS来正确检测我的组合名称实体吗?
在Luis.ai用户界面中,我没有意识到在标记话语时,可以在指定实体时多次单击以选择多个单词.
我能够像你描述的那样配置一个简单的自定义实体.我在这里发布了你可以导入LUIS的JSON .
如果没有看到您的LUIS应用程序的JSON,很难说它为什么无法识别以破折号分隔的名称 - 请随时在此处为您的LUIS应用程序发布JSON.有时,由于缺少标签,LUIS应用程序将无法识别实体.让LUIS识别实体的关键部分是标注足够的示例.模式特征只是LUIS的一个提示 - 您仍然需要定义具有标记实体的示例语句.例如,如果您已定义名为MyNameIs的intent 并想要识别其中的Name实体,则您需要向包含以虚线分隔的名称的MyNameIs intent 添加各种话语,并使用实体标记每个名称.

当我添加模式功能时,我用来+表示正则表达式中的"一个或多个"而不是*.但是,这种差异不应该破坏您的模式功能.

连字符可能发生的另一个问题是LUIS返回的JSON.当您从LUIS检查JSON结果时,您可以看到如何标识Name实体.请注意,在entity字段中,LUIS在连字符周围插入空格,但是startIndex和endIndex字段标识原始话语中实体的索引.所以,如果你有一个解析的代码entity字段不使用startIndex,并endIndex在query现场为你所期望的行为可能不是.
{
"query": "my name is anne-marie",
"topScoringIntent": {
"intent": "MyNameIs",
"score": 0.9912877
},
"entities": [
{
"entity": "anne - marie",
"type": "Name",
"startIndex": 11,
"endIndex": 20,
"score": 0.8978088
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |