Rasa NLU:实体同义词检测不一致

Har*_*ind 2 rasa-nlu

我和我的团队已经使用Rasa NLU替代MS LUIS已有两个多月了,到目前为止,它对我们来说效果很好。现在我们有大约900个条目作为实体同义词(就像我们在LUIS中使用列表实体一样)。

而且仅对于某些话语,该实体被检测为同义词,而对于大多数话语,它无法检测到实体同义词。为了检测同义词,我必须创建另一个简单的实体,一旦使用该简单的实体训练了意图,我们将再次用所有同义词值手动对其进行训练,Rasa似乎可以将这个意图的实体检测为简单和同义词。

另一个快速的问题是,Rasa中的实体同义词是否设计为仅返回一个匹配的实体(与用于返回所有匹配的实体值的LUIS不同)?

在Rasa中,是否可以从LUIS列出实体?

Cal*_*ler 5

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文档页面中打开了一个拉取请求,以添加对此效果的注释。