我和我的团队已经使用Rasa NLU替代MS LUIS已有两个多月了,到目前为止,它对我们来说效果很好。现在我们有大约900个条目作为实体同义词(就像我们在LUIS中使用列表实体一样)。
而且仅对于某些话语,该实体被检测为同义词,而对于大多数话语,它无法检测到实体同义词。为了检测同义词,我必须创建另一个简单的实体,一旦使用该简单的实体训练了意图,我们将再次用所有同义词值手动对其进行训练,Rasa似乎可以将这个意图的实体检测为简单和同义词。
另一个快速的问题是,Rasa中的实体同义词是否设计为仅返回一个匹配的实体(与用于返回所有匹配的实体值的LUIS不同)?
在Rasa中,是否可以从LUIS列出实体?
Rasa中的实体同义词可能会引起一些混乱。他们提供的实际功能非常简单。对于由模型解析的每个实体,将根据实体同义词列表检查该实体的值。如果该值与实体同义词匹配,则将其替换为同义词值。
上面声明的最大收获是实体必须由模型标识,然后才能用同义词替换。
因此,以它为简化示例。这是我的实体同义词定义:
{
"value": "New York City",
"synonyms": ["NYC", "nyc", "the big apple"]
}
Run Code Online (Sandbox Code Playgroud)
如果我的训练数据仅提供以下示例:
{
"text": "in the center of NYC",
"intent": "search",
"entities": [
{
"start": 17,
"end": 20,
"value": "New York City",
"entity": "city"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的模型不太可能能够检测出像这样的句子中的实体,In the center of the big apple.正如我上面所说的,如果the big apple模型不将其解析为实体,则无法用实体同义词代替它来读取纽约市。
因此,您应该common_examples在训练数据的实际示例中包含更多带有标记实体的示例。一旦正确地对实体的所有变体进行了分类,则将这些值添加到实体同义词中,它们将被替换。
[
{
"text": "in the center of NYC",
"intent": "search",
"entities": [
{
"start": 17,
"end": 20,
"value": "New York City",
"entity": "city"
}
]
},
{
"text": "in the centre of New York City",
"intent": "search",
"entities": [
{
"start": 17,
"end": 30,
"value": "New York City",
"entity": "city"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我已经在Rasa文档页面中打开了一个拉取请求,以添加对此效果的注释。
| 归档时间: |
|
| 查看次数: |
3133 次 |
| 最近记录: |