[英]Rasa NLU - Understanding Training Data
我很难理解rasa nlu中的训练数据。 假设我想要有人通知他们可以买的动物的训练数据。 为清楚起见,我将使用markdown格式:
假设用户假设回答了一个问题:
“你想买什么样的动物?”
只有很多不同的方式可以说你想买东西。 所以请看下面的例子:
##intent:inform
- [cat](animal)
- buy [cat](animal)
- I would like to buy a [cat](animal)
我是否需要为我打算处理的每种动物重复这一点? 如下?
##intent:inform
- [cat](animal)
- [dog](animal)
- [parrot](animal)
- buy [cat](animal)
- buy [dog](animal)
- buy [parrot](animal)
- I would like to buy a [cat](animal)
- I would like to buy a [dog](animal)
- I would like to buy a [parrot](animal)
另外,我注意到在rasa的餐厅机器人中,他们有时会一遍又一遍地重复相同的例子,有时最多重复七次,如下所示:
##intent:inform
- [cat](animal)
- [cat](animal)
- [cat](animal)
- [cat](animal)
- [cat](animal)
- buy [cat](animal)
- I would like to buy a [cat](animal)
为什么这有必要? 这对理解有什么影响? 如何在相同的位置更多地出现同一个单词作为一个适当的响应指标,特别是如果你有类似下面的东西,同一个实体的不同值重复相同的次数?
##intent:inform
- [cat](animal)
- [cat](animal)
- [cat](animal)
- [cat](animal)
- [cat](animal)
- buy [cat](animal)
- I would like to buy a [cat](animal)
- [dog](animal)
- [dog](animal)
- [dog](animal)
- [dog](animal)
- [dog](animal)
- buy [dog](animal)
- I would like to buy a [dog](animal)
谢谢,任何建议表示赞赏。
只有很多不同的方式可以说你想买东西。
你可能会感到惊讶:
而且我确信这个清单还有更多的例子。 据说Rasa NLU应该能够学习和适应一些例子。 除了一些例外, adopt
可能没有强大的关系来buy
,例如,举例来说可能很重要。
我是否需要为我打算处理的每种动物重复这一点? 如下?
不,这没有必要。 每个动物值都是一个实体,默认情况下Rasa使用CRF进行实体识别,这就是您在这里所讨论的内容。 CRF更多地是关于句子的结构,而不是单词的价值。 您可以在文档和代码中看到CRF查看的功能:
# Available features are:
# ``low``, ``title``, ``suffix5``, ``suffix3``, ``suffix2``,
# ``suffix1``, ``pos``, ``pos2``, ``prefix5``, ``prefix2``,
# ``bias``, ``upper`` and ``digit``
features: [["low", "title"], ["bias", "suffix3"], ["upper", "pos", "pos2"]]
据说使用实体的不同值可以是获得额外训练数据的好方法。 您可以使用chatito等工具从模式生成训练数据。 但是要小心重复模式,因为你可以将模型过度拟合到不能超出你训练模式的范围。
他们有时会一遍又一遍地重复同样的例子
你在Rasa数据集中看到过这个? 这是默认的餐厅机器人训练数据 ,我没有看到任何重复。
一遍又一遍地重复一个句子将重新强制格式/单词很重要的模型,这是一种过采样的形式。 如果您的训练数据非常少或训练数据非常不平衡,这可能是一件好事。 如果你想要处理许多不同的购买宠物的方式,这可能是一件坏事,因为它可以像我上面提到的那样套装模型。
我是否需要为我打算处理的每种动物重复这一点? 如下?
不,您不需要指定每种类型的动物。 但是尝试为每个意图添加几种类型的动物。 例如,您的训练样本包含以下内容:
- [cat](animal)
- [dog](animal)
- [parrot](animal)
- buy [cat](animal)
- I would like to buy a [parrot](animal)
当你有一些背景,例如: I would like to buy a [animal]
没有必要定义每种类型的动物。 相似度算法基于其他关键词查找项目。 但是当上下文较少时(单个单词)有必要定义不同类型的用户输入。
Rasa使用StarSpace分类器 。 建议每个意图使用~10-25个用户样本 ,以便从ChatBot获得合理的响应。
您还可以修改Rasa分类器以添加单词矢量功能(Word2vec或Glove)。 在这种情况下,一些通用性将添加到模型中。 并且可以更容易地检测到类似的概念,例如狗猫。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.