路易斯艾迁移到Rasa格式的json没有返回实体,但是返回了正确的意图

2024-05-15 23:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用命令python-mrasa将从LUIS应用程序下载的json迁移到RASA格式_nlu.列车-c配置_spacy.json文件

我的配置文件如下所示:

{     
"path" : "./models",   
"data" : "./data/examples/rasa/BookACab.json",
"pipeline" : ["nlp_spacy", "tokenizer_spacy", "intent_featurizer_spacy", 
              "ner_crf", "ner_synonyms", "intent_classifier_sklearn", 
              "ner_duckling"] 
}

使用RASA格式的json生成了一个模型,如下所示。但是,当我使用

http://localhost:5000/parse?q=book a ride later

将返回与我输入的文本及其所有相关实体相关的正确高分意图。但当我尝试另一种文本时,比如:

http://localhost:5000/parse?q=I want to go ride today 5pm

返回的intent是正确的,但它的Entities对象为空。正如您在下面的json中看到的,这个话语也有映射到它的实体,类似于工作示例。在

请帮我知道,这是每个人的问题,拉萨或我有任何错误吗?谢谢您!在

^{pr2}$

Tags: 文本命令实体jsonlocalhosthttpdataspacy
1条回答
网友
1楼 · 发布于 2024-05-15 23:30:56

如果您可以包含与Rasa一起使用的pipeline,这会很有帮助。您可以在您的configuration文件中找到它。假设您没有更改config_spacy.json中的默认管道,那么您将使用ner_crf进行实体识别。在

很有可能由于库的差异,Rasa只需要比LUIS更多的训练数据。定性地说,mitie管道通常需要较少的训练数据,但折衷的是训练需要更多的时间。在

因此,您问题的基本答案是:如果您想使用ner_crf,那么您需要增加为实体识别提供的培训数据量。

那就是:RideTime是你唯一的实体吗?如果是这样的话,您应该考虑将ner_duckling添加到管道中,这样可以识别日期。这会比你自己训练约会更好。在

因此,利用上述培训数据和渠道:

["nlp_spacy", "tokenizer_spacy", "intent_featurizer_spacy", "ner_crf", "ner_synonyms",  "intent_classifier_sklearn", "ner_duckling"]

结果如下:

^{pr2}$

这套完整的训练对我来说很好。只是增加更多的训练例子而已。因此,当您进行更多的测试时,如果您遇到一个不符合预期的示例,请将其添加到培训数据中并重新培训。从而教会模型处理更多不同的请求。在

https://gist.github.com/wrathagom/7f05fbda75c785977bd07cd89e62ddd7

相关问题 更多 >