0

我在 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. 模型文件夹包含另一个嵌套文件夹中的训练模型,可以吗?

谢谢。

4

3 回答 3

3

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

我和其他一些人将拉取请求合并到Docker Hub 上的rasa repo 中。现在有几种不同的版本可用,基本的使用说明可以在下面或主 repo README 中找到。

一般 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'

于 2017-07-30T18:59:49.310 回答
0

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

这是我解决它的方法:

[注意:我使用的是 Python 3.6.3 x64 Anaconda 和 Windows 8.1 操作系统]

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

  1. Spacy 机器学习包:pip install -U spacy
  2. Spacy 英语语言模型:python -m spacy 下载
  3. Scikit 包:pip install -U scikit-learn
  4. 用于数学计算的 Numpy 包:pip install -U numpy
  5. Scipy 包:pip install -U scipy
  6. 用于意图识别的 Sklearn 包:pip install -U sklearn-crfsuite
  7. NER Duckling 使用 Spacy 更好地识别实体:pip install -U duckling
  8. RASA NLU:pip install -U rasa_nlu==0.10.4

现在,在 RASA v0.10.4 中,他们使用与 WSGI 不兼容的 Twisted 异步服务器。(更多信息请点击此处。)

现在制作配置文件如下:

{
    "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= &project=

您将收到类似这样的 JSON 响应,例如 BotFramework C# 的 LUISResult 类。

在此处输入图像描述

于 2017-11-04T16:17:00.350 回答
0

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

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

谢谢你。

于 2017-07-31T00:28:01.830 回答