我正在使用Rasa.ai构建机器人。在使用Rasa NLU训练机器人时,我们使用训练数据文件,其中指定了文本,意图,实体等。例如,对于简单的餐馆聊天机器人,培训文件data.json
可能包含
{
"text": "central indian restaurant",
"intent": "restaurant_search",
"entities": [
{
"start": 0,
"end": 7,
"value": "central",
"entity": "location"
},
{
"start": 8,
"end": 14,
"value": "indian",
"entity": "cuisine"
}
]
}
我们用它来训练模型。但我们需要手动(或通过GUI)创建此培训文件。
有没有可以提供句子的工具,它可以自动创建意图和实体?
Sample Input: Is there any central Indian restaurant?
Sample Output: The above data.json
编辑:
为了更好地解释这个问题 - 假设我有一大套客户服务电话记录。我的理解是与Rasa(或其他类似的框架) - 人类需要通过调用日志并理解所有可能的意图,过去发生的实体组合,并在训练之前创建如data.json
之类的文件该模型。这似乎是一个非常难以解决的问题。有没有办法从这些GB大小的呼叫日志生成data.json
文件而不涉及人类?我在这里错过了什么吗?
答案 0 :(得分:3)
这正是您正在训练Rasa NLU执行的任务。接受句子并将其转换为结构化输出。通过提供示例,您正在教授模型如何工作。
因此,您不必为千兆字节的客户日志提供注释,但只需要一些,算法应该推广到尚未见到的其他句子。这有多好取决于你有多少意图,它们有多复杂,以及其他因素。
我首先注释几百个句子(实际上markdown format更容易一些),将50个左右的例子分开,看看Rasa NLU如何预测它们。继续注释越来越多的示例,并将它们添加到您的训练数据中,直到您对所提供的示例中的表现感到满意为止。
答案 1 :(得分:2)
使用几行代码生成任意大型训练数据集的快速方法是Chatito
答案 2 :(得分:0)
该想法是仅提供示例句子。通过提供样本,您正在训练模型以了解句子结构,期望的实体位置,实体的数据类型等。
但是,如果您只是查找命名实体标识,则可以单独使用spaCy。仅仅抛出一个句子,它将尝试检测句子中的实体。 Spacy已经对模型进行了训练。
答案 3 :(得分:0)
我要问的基本上是无监督的学习。输入一堆自然语言并以Rasa或任何其他类似工具所需的意图/实体格式输出。
Rasa或类似工具在进行有监督的学习时不提供此功能。一个可能解决我的问题的示例工具是lang.ai