NeuralTemplateGen-模板抽取

模型训练好之后,可以利用模型计算训练数据的维特比分隔,得到抽取后的模板

命令如下

python chsmm.py \
 -data data/labee2e/ \ 
 -emb_size 300 \
 -hid_size 300 \
 -layers 1 \
 -K 55 \
 -L 4 \
 -log_interval 200 \
 -thresh 9 \
 -emb_drop \  # true dropout on embeddings
 -bsz 16 \
 -max_seqlen 55 \
 -lr 0.5  \
 -sep_attn \ # true
 -max_pool \ # true, for word-fields
 -unif_lenps \ # true?
 -one_rnn \ # true?
 -Kmul 5 \
 -mlpinp \ # true
 -onmt_decay \ #true?
 -cuda \
 -load models/e2e-55-5.pt # 训练好的模型
 -label_train \ # true
 | tee segs/seg-e2e-300-55-5.txt # 保存标准输出

label_train

对每一个训练样本,它的格式之前介绍过

第一个是词,seqlen x bsz
第二项是label,bsz x (start, end, label)
第三项是生成的特征 bsz x nfields x nfeats, 
第四项是生成句子每一个词对标数据的位置seqlen x bsz x max_locs
第五项是生成句子每一个词含有go、end的特征seqlen x bsz x max_locs x nfeats

这里除了第二项,在这个函数中都用到了。

经历了:

  1. 把copy信息和数据编码在一起
  2. 把unknown词处理掉
  3. 把用到的Field去重后,长度处理统一
  4. 编码
  5. 求转移概率
  6. 求观测概率
  7. 前向后向传播求观察概率
  8. 维特比算法求得分隔片段

这个过程是把最终生成的文案,变成模板,就是把槽位抠取出来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值