无法使用Rasa NLU / Sklearn训练新模型

时间:2018-04-12 15:08:20

标签: python scikit-learn rasa-nlu

我正在我的应用程序和Rasa NLU服务器之间构建一个中间件,可以简化创建模型或更新等不同任务......

我主要的目的是建立一个模型并每次使用一个函数来更新它,这个函数会向旧模型添加一个示例,因此它只需要通过仅添加一个示例来更新旧数据并提交它再次访问Rasa服务器。

以下是该情景:
首先,我首先创建一个空模型,然后向localhost:5000/train?project=defaults&fixed_model_name=model1发送一个帖子请求 有这个数据

{
  "rasa_nlu_data": {
    "common_examples": [], 
    "entity_synonyms": [], 
    "regex_features": []
  }
}

所以我得到了这个回复:

  

" info":"新模特训练:模特1"

然后我使用相同的请求开始培训,但是包含新类greet的新数据

{
  "rasa_nlu_data": {
    "common_examples": [
      {
        "text": "hey", 
        "intent": "greet"
      }
    ], 
    "entity_synonyms": [], 
    "regex_features": []
  }
}

这就像我预期的那样 如果我从同一个班级添加一个例子,那么培训总能正常进行

{
  "rasa_nlu_data": {
    "common_examples": [
      {
        "text": "hey", 
        "intent": "greet"
      },{
        "text": "heyy", 
        "intent": "greet"
      }
    ], 
    "entity_synonyms": [], 
    "regex_features": []
  }
}

但当我尝试使用新的不同意图bye发布其他数据时

{
  "rasa_nlu_data": {
    "common_examples": [
      {
        "text": "hey", 
        "intent": "greet"
      },
       {
        "text": "heyy", 
        "intent": "greet"
      },
      {
        "text": "goodbye", 
        "intent": "bye"
      }
    ], 
    "entity_synonyms": [], 
    "regex_features": []
  }
}

我收到此错误:

  

"错误":"班级数必须大于一;得到了1"

如果我通过跳过第二步重做相同的场景,那么我的数据将是这样的:

{
  "rasa_nlu_data": {
    "common_examples": [
      {
        "text": "hey", 
        "intent": "greet"
      },
      {
        "text": "goodbye", 
        "intent": "bye"
      }
    ], 
    "entity_synonyms": [], 
    "regex_features": []
  }
}

提交后我收到此错误:

  

"错误":" n_splits = 2不能大于每个班级的成员数。"

我的Rasa NLU服务器配置:

我已经检查过那些可能类似于我的问题的问题,但这些问题并不是我想要的 ValueError: The number of classes has to be greater than one (python)
ValueError: Cannot have number of splits n_splits=3 greater than the number of samples: 1

我知道Rasa模型需要一些实体才能运行解析但是我远离那个我只想先构建一个干净的模型

1 个答案:

答案 0 :(得分:1)

Rasa NLU强制您至少有两个每个意图的示例。虽然对于任何一种好的表现你都应该有更多的东西:)