Rasa NLU未能对意图进行分类

时间:2017-07-30 18:38:21

标签: rasa-nlu

我在docker容器上运行rasa-nlu。 试图在我的数据上训练它,然后对http服务器执行请求,结果总是如下:

  

"intent": { "confidence": 1.0, "name": "None" }

我按如下方式运行配置文件:

{
  "name": null,
  "pipeline": "mitie",
  "language": "en",
  "num_threads": 4,
  "max_training_processes": 1,
  "path": "./models",
  "response_log": "logs",
  "config": "config.json",
  "log_level": "INFO",
  "port": 5000,
  "data": "./data/test/demo-rasa.json",
  "emulate": null,
  "log_file": null,
  "mitie_file": "./data/total_word_feature_extractor.dat",
  "spacy_model_name": null,
  "server_model_dirs": null,
  "token": null,
  "cors_origins": [],
  "aws_endpoint_url": null,
  "max_number_of_ngrams": 7,
  "duckling_dimensions": null,
  "entity_crf_BILOU_flag": true,
  "entity_crf_features": [
    ["low", "title", "upper", "pos", "pos2"],
    ["bias", "low", "word3", "word2", "upper", "title", "digit", "pos", "pos2", "p
attern"],
    ["low", "title", "upper", "pos", "pos2"]]
}
  1. 这种行为的原因是什么?

  2. models文件夹包含经过培训的文件夹 另一个嵌套文件夹里面的模型,可以吗?

  3. 感谢。

3 个答案:

答案 0 :(得分:3)

我已经看到了您的GitHub issue,感谢您在此处提供更多信息。你仍然留下很多关于Docker容器模糊的细节。

我和其他一些人将pull request合并到了Docker Hub上的here rasa repo中。现在有几种不同的版本可供使用,基本使用说明可以在下面或主回购自述文件中找到。

一般Docker使用说明

暂时,请按照以下步骤操作:

docker run -p 5000:5000 rasa/rasa_nlu:latest-mitie

应该使用以下命令加载演示数据:

curl 'http://localhost:5000/parse?q=hello'

尝试解决您的具体问题

至于你的具体安装及其失败的原因,我的猜测是你的训练数据不存在或者是rasa不期望的名称。运行此命令以查看可用的模型:

curl 'http://locahost:5000/status'

你的回答应该是这样的:

{
  "trainings_queued" : 0,
  "training_workers" : 1,
  "available_models" : [
    "test_model"
  ]
}

如果您在available_models下列出了模型,则可以使用以下命令将test_model替换为您的模型名称来加载/解析它。

curl 'http://localhost:5000/parse?q=hello&model=test_model'

答案 1 :(得分:0)

实际上,我发现使用Mitie总是失败,因此,模型没有得到更新。谢谢你的信息。

使用Mitie-Sklearn解决了这个问题。

谢谢。

答案 2 :(得分:0)

在Windows上MITIE Pipeline存在一些问题:( MITIE培训需要花费大量时间,而且spaCy可以非常快速地训练模型。(2-3分钟,具体取决于您的处理器和RAM)。

以下是我如何解决它:

[注意:我使用的是Python 3.6.3 x64 Anaconda和Windows 8.1 O.S]

按此顺序安装以下软件包:

  
      
  1. Spacy机器学习包: pip install -U spacy
  2.   
  3. Spacy英语语言模型: python -m spacy download en
  4.   
  5. Scikit套餐: pip install -U scikit-learn
  6.   
  7. 用于数学计算的Numpy包: pip install -U numpy
  8.   
  9. Scipy Package: pip install -U scipy
  10.   
  11. 用于意图识别的Sklearn套餐: pip install -U sklearn-crfsuite
  12.   
  13. NER Duckling通过Spacy实现更好的实体识别: pip install -U duckling
  14.   
  15. RASA NLU: pip install -U rasa_nlu == 0.10.4
  16.   

现在,在RASA v0.10.4中,他们使用的是与WSGI不兼容的Twisted Asynchronous服务器。 (More information on this here.)

现在按如下方式创建配置文件:

{
    "project": "Travel",
    "pipeline": "spacy_sklearn",
    "language": "en",
    "num_threads": 1,
    "max_training_processes": 1,
    "path": "C:\\Users\\Kunal\\Desktop\\RASA\\models",
    "response_log": "C:\\Users\\Kunal\\Desktop\\RASA\\log",
    "config": "C:\\Users\\Kunal\\Desktop\\RASA\\config_spacy.json",
    "log_level": "INFO",
    "port": 5000,
    "data": "C:\\Users\\Kunal\\Desktop\\RASA\\data\\FlightBotFinal.json",
    "emulate": "luis",
    "spacy_model_name": "en",
    "token": null,
    "cors_origins": ["*"],
    "aws_endpoint_url": null
  }

现在运行服务器,如下面的模板:

http://localhost:5000/parse?q=&安培;项目=

你会得到类似这样的JSON响应,比如BOTFramework C#的LUISResult类。

enter image description here