【问题标题】:Rasa NLU failing to classify intentRasa NLU 未能对意图进行分类
【发布时间】:2018-01-06 06:52:03
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: rasa-nlu


    【解决方案1】:

    我已经看到您的GitHub issue,感谢您在此处提供更多信息。您仍然对 Docker 容器的很多细节模棱两可。

    我和其他一些人将pull request 合并到 Docker Hub 上的 rasa 存储库 here 中。现在有几种不同的版本可用,基本的使用说明可以在下面或主 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'

    【讨论】:

      【解决方案2】:

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

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

      谢谢。

      【讨论】:

      • “MITIE 总是失败”对于 Rasa 来说不是这样,MITIE 工作得非常好,并且根据您的用例,它比其他管道工作得更好。如果您愿意,我很乐意帮助您让 mitie 正常工作,但需要有关您正在使用的图像的信息。
      • 确定想帮忙处理一些即时消息,然后我们在这里发布解决方案?
      • 我们为什么不重新打开 github 问题并在那里获取所有详细信息。
      【解决方案3】:

      在 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. Spacy 英语语言模型:python -m spacy 下载 en
      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 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=&project=

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多