DIETClassifier文档

DIETClassifier文档

Dual Intent Entity Transformer (DIET) 用于意图分类和实体提取

输出

entitiesintentintent_ranking

需要

dense_features和/或sparse_features用于用户消息和可选的意图

输出示例

{
    "intent": {"name": "greet", "confidence": 0.8343},
    "intent_ranking": [
        {
            "confidence": 0.385910906220309,
            "name": "goodbye"
        },
        {
            "confidence": 0.28161531595656784,
            "name": "restaurant_search"
        }
    ],
    "entities": [{
        "end": 53,
        "entity": "time",
        "start": 48,
        "value": "2017-04-10T00:00:00.000+02:00",
        "confidence": 1.0,
        "extractor": "DIETClassifier"
    }]
}

描述

DIET(Dual Intent and Entity Transformer)是一种用于意图分类和实体识别的多任务架构。该架构基于为两个任务共享的转换器。实体标签序列通过位于与输入标记序列相对应的转换器输出序列之上的条件随机场 (CRF) 标记层进行预测。对于意图标签,完整话语的转换器输出和意图标签被嵌入到单个语义向量空间中。我们使用点积损失来最大化与目标标签的相似性并最小化与负样本的相似性。

如果您想了解有关模型的更多信息,请查看YouTube 上的 算法白板系列,我们在其中详细解释了模型架构。

注意:
如果在预测时间内,消息中只包含训练中未看到的单词,并且没有使用Out-Of-Vocabulary预处理器,则以0.0的置信度预测空意图None。如果您只使用countvectorsfeatuizer和一个单词分析器作为featuizer,这可能会发生。如果你使用char_wb分析器,你应该总是得到一个有置信度值> 0.0的意图。

配置

如果您想将DIETClassifierjust 用于意图分类,请设置entity_recognition为False。如果只想做实体识别,设置intent_classification为False。默认情况下DIETClassifier,两者都进行,即entity_recognition和intent_classification设置为 True。
您可以定义许多超参数来调整模型。如果要调整模型,请先修改以下参数:

  • epochs:此参数设置算法将看到训练数据的次数(默认值:)300。一个epoch等于所有训练样例的一次前向传递和一次后向传递。有时模型需要更多的 epochs 才能正确学习。有时更多的时代不会影响性能。epoch 数越少,模型训练得越快。

  • hidden_layers_sizes:此参数允许您为用户消息和意图定义前馈层的数量及其输出维度(默认值:text: [], label: [])。列表中的每个条目对应一个前馈层。例如,如果您设置text: [256, 128],我们将在transformer前面添加两个前馈层。输入标记的向量(来自用户消息)将传递到这些层。第一层的输出维度为 256,第二层的输出维度为 128。如果使用空列表(默认行为),则不会添加前馈层。确保仅使用正整数值。通常,使用 2 的幂数。此外,通常的做法是在列表中减少值:下一个值小于或等于前一个值。

  • embedding_dimension:此参数定义模型内部使用的嵌入层的输出维度(默认值:)20。我们在模型架构中使用了多个嵌入层。例如,完整话语和意图的向量在比较之前传递到嵌入层并计算损失。

  • number_of_transformer_layers:此参数设置要使用的转换器层数(默认值:)2。transformer层数对应于用于模型的transformer blocks 。

  • transformer_size:此参数设置transformer中的单元数(默认值:256)。来自transformer的向量将具有给定的transformer_size。

  • connection_density:此参数定义了模型中所有前馈层设置为非零值的内核权重的分数(默认值:)0.2。该值应介于 0 和 1 之间。如果设置connection_density 为 1,则不会将内核权重设置为 0,该层充当标准前馈层。您不应设置connection_density为 0,因为这会导致所有内核权重为 0,即模型无法学习。

  • BILOU_flag:该参数决定是否使用 BILOU 标记。默认True.

上述配置参数是您应该配置以使模型适合您的数据的参数。但是,存在可以调整的附加参数。

其他参数




注意:
将参数maximum_negative_similarity设为负值,模拟原始星空间算法, 在这种情况下,maximum_negative_similarity = maximum_positive_similarity,并使用use_maximum_negative_similarity = False。详情请参阅starspace论文

参考

https://rasa.com/docs/rasa/components#dietclassifier-2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆的比目鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值