- python>=3.6
- pytorch>=0.4.1
- tqdm
- elmo(可选)
文章:装机容易忽视的组件,主机电源不能随便选对于大部分入门玩家来说,在电源的选择上往往都比较随意。
- 按照核心实体在原文的位置,构造解码序列。如上述例子,解码序列为: (1)组件、 (2)电源
- 利用seq2seq 的attention机制去标注实体。训练时,使得原文中目标实体对应的attention score最大;预测时,attention score最大的单词为目标实体。
- 利用seq2seq 的输出层预测实体对应的情感。
- 利用beam search,使得预测出的 核心实体序列 总体得分最大化。
Model | 描述 | 实体得分 | 情感得分 | 总分 |
---|---|---|---|---|
baseline | seq2seq+beam_search+glove | 0.5468 | 0.2885 | 0.4177 |
ensemble | 集成GRU/LSTM | 0.5623 | 0.3392 | 0.4508 |
Baseline+elmo | 添加elmo | 0.5660 | 0.3369 | 0.4515 |
ensemble(elmo) | 集成添加了elmo的LSTM、GRU | 0.5783 | 0.3525 | 0.4654 |
ensemble(elmo)+正向最大匹配 | 利用正向最大匹配增加候选实体 | 0.5857 | 0.3594 | 0.4725 |
处理完的结果如下
./data/model.train
./data/model.test.raw
./data/entity.txt
训练baseline
python network.py --data_dir ./data/ --data_prefix model --save_dir ./models/baseline --gpu 0 --max_vocab_size 50000 --min_freq 5 --entity_file ./data/entity.txt \
--lr 0.0003 --hidden_size 1024 --num_layers 2 --attn mlp --log_steps 100 --valid_steps 300 --batch_size 64 --pretrain_epoch -1 --lr_decay 0.5
训练baseline+elmo
python network.py --data_dir ./data/ --data_prefix model --save_dir ./models/baseline_elmo --gpu 0 --max_vocab_size 50000 --min_freq 5 --entity_file ./data/entity.txt \
--lr 0.0003 --hidden_size 1024 --num_layers 2 --attn mlp --log_steps 100 --valid_steps 1300 --batch_size 15 --pretrain_epoch -1 --lr_decay 0.5 --elmo
还有一些其他的参数,如更换RNN类型 --rnn_type, 使用词性标注 --POS ,大家可以阅读network.py,自行尝试。
python network.py --data_dir ./data/ --data_prefix model --save_dir ./models/baseline --gpu 0 --max_vocab_size 50000 --min_freq 5 --entity_file ./data/entity.txt \
--lr 0.0003 --hidden_size 1024 --num_layers 2 --attn mlp --log_steps 100 --valid_steps 300 --batch_size 64 --pretrain_epoch -1 --lr_decay 0.5 \
--ckpt ./emo_models/layer_2_64_embed_19/best.model --test --beam_size 5 --gen_file ./result/new_result_emo12.txt --for_test
ensemble.ipynb baseline model 平均融合
ensemble_elmo.ipynb elmo model 平均融合
该项目代码是在 百度2019-知识驱动的多轮对话的baseline上进行改进的。
同时,我们在百度2019-知识驱动的多轮对话中取得自动评测Top1,人工评测Top2的成绩,相关代码将在后续进行开源。