I combined the code for running in kaggle kernel,you may upload the the ipynb file to kaggle to execute.......also u may use the dataset in the format(https://github.com/applenob/RNN-for-Joint-NLU/)
使用tensorflow r1.3 api,Encoder使用tf.nn.bidirectional_dynamic_rnn
实现,Decoder使用tf.contrib.seq2seq.CustomHelper
和tf.contrib.seq2seq.dynamic_decode
实现。
我的实现相对比较简单,用于学习目的。
python main.py
输出:
[Epoch 27] Average train loss: 0.0
Input Sentence : ['what', 'are', 'the', 'flights', 'and', 'prices', 'from', 'la', 'to', 'charlotte', 'for', 'monday', 'morning']
Slot Truth : ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-fromloc.city_name', 'O', 'B-toloc.city_name', 'O', 'B-depart_date.day_name', 'B-depart_time.period_of_day']
Slot Prediction : ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-fromloc.city_name', 'O', 'B-toloc.city_name', 'O', 'B-depart_date.day_name', 'B-depart_time.period_of_day']
Intent Truth : atis_flight
Intent Prediction : atis_flight#atis_airfare
Intent accuracy for epoch 27: 0.969758064516129
Slot accuracy for epoch 27: 0.9782146713160718
Slot F1 score for epoch 27: 0.977950943062074
[Epoch 28] Average train loss: 0.0
Input Sentence : ['show', 'me', 'the', 'last', 'flight', 'from', 'love', 'field']
Slot Truth : ['O', 'O', 'O', 'B-flight_mod', 'O', 'O', 'B-fromloc.airport_name', 'I-fromloc.airport_name']
Slot Prediction : ['O', 'O', 'O', 'B-flight_mod', 'O', 'O', 'B-fromloc.airport_name', 'I-fromloc.airport_name']
Intent Truth : atis_flight
Intent Prediction : atis_flight
Intent accuracy for epoch 28: 0.9717741935483871
Slot accuracy for epoch 28: 0.9794670271393975
Slot F1 score for epoch 28: 0.9792847025495751
博客文章: