我有一个500+常见问题的JSON文件,我想在RASA中使用它来制作常见问题聊天机器人。这个JSON文件有一个问题和相应的答案。我需要在RASA中创建nlu,故事和域文件。有没有办法自动做到这一点?因为手动操作会花费很多时间。
发布于 2020-03-27 12:16:34
这取决于您想要如何处理您拥有的数据。如果你想使用它来训练NLU模型,你(或某人)将不得不手动标记每个话语所属的意图。如果你想用它来训练一个NLG模型,你可以编写一个脚本,将你的数据分别格式化成相关的意图和响应(参见https://rasa.com/docs/rasa/core/retrieval-actions/#training-data)。就故事而言,你需要手动编写它们,然而,如果你使用的是检索操作,这些可能会比你想象的要简单得多,也少得多。
我建议检查检索操作,因为这听起来与您的数据最相关。
发布于 2020-04-26 16:22:40
我详细介绍了@lahsuk评论和@Melinda回答。
假设您的JSON (faq.json)类似于这个微型示例:
[
{
"name":"1",
"question":"question balbla 1",
"answer":"answer blabla 1"
},
{
"name":"2",
"question":"question bla bla bla 2",
"answer":"question bla bla 2"
},
{
"name":"3",
"question":"question blablabla 3",
"answer":"answer blablabla 3"
},
]对于BTW,我显式地添加了属性name,该属性是可选的,但之后会很有用。如果你没有名字,你可以使用一个连续递增的数字( id)来识别Q/A对。
第1步:数据文件脚本生成(强制/最小)
首先,让我们假设使用RASA Retrieval Actions来管理我们的常见问题。在这个场景中,我们将只向RASA模型添加一个名为faq的单一意图。我们必须在domain.yml中添加一行
intents:
- faq因此,您必须拆分JSON问题和答案,从faq.json创建两种类型的文件
data/nlu.mddata/responses.md<!-- faq data/nlu.md: contains questions as intents -->
## intent: faq/1
- question balbla 1
## intent: faq/2
- question bla bla bla 2
## intent: faq/3
- question blablabla 3<!-- faq data/responses.md: contains answers -->
## faq/1
* faq/1
- answer blabla 1
## faq/2
* faq/2
- question bla bla 2
## faq/3
* faq/3
- answer blablabla 3为了完成这项任务,您可以用您选择的任何语言创建一个脚本,甚至是bash脚本,它接受您的JSOn输入并以所描述的格式生成2个文件。
次要注意:使用数字id标识每个问题/答案对是可能的,但具有drawbasks。最好给每一对都起一个自言自语的名字。
步骤2:意向数据“增强”(可选/改进)
第一步是最低要求。但是,只有一个问题示例作为意图并不是最好的。用户可以用不同的方式表达问题。一个好主意是在nlu.md中分解单个问题,给出一些不同的例子。例如。
<!-- faq data/nlu.md: many questions for the same answer -->
## intent: faq/1
- original question balbla 1
- another question example
- a third question example 题外话:使用检索响应的利弊
你提到的故事。事实上,faq的简单方法是预测单轮问题答案,而不是任何上下文范围。检索动作可能是管理单轮“截击”的很好解决方案。
但是,在常见问题知识库中预测可能的导航可能更聪明。例如,机器人可以尝试验证问题的答案是否有用,也许它可以提出与初始问题相关的深化子主题。
这里的故事很棒!但是,要从数据创建自动故事,您可能需要在input JSON中“标记”您的问题/答案,并避免Retrieval操作,更喜欢标准方法,在您的domain.yml中分离意图和响应。至少折衷方案是将机器人检索操作和“宏意图”结合起来,以允许在对话框中进行知识导航。
RASA Sara demo assistant包含有趣/复杂的故事作为智能常见问题解答帮助的示例,使用Rasa Core stories的“通过示例学习”对话框。另请参阅文章:Integrate response retrieval models in assistants built with Rasa
另一个检索响应减去的是答案中缺少文本格式,正如我在my RASA forum question中指出的那样。
https://stackoverflow.com/questions/60734906
复制相似问题