From 1e1d1f9c6d375ed9c27fa1006488c8e3911bef1b Mon Sep 17 00:00:00 2001
From: function2 <function2@qq.com>
Date: Tue, 13 Oct 2020 11:57:29 +0800
Subject: [PATCH] dump dst eval results

---
 convlab2/dst/dstc9/eval_file.py  | 4 ++--
 convlab2/dst/dstc9/eval_model.py | 4 ++--
 convlab2/dst/dstc9/utils.py      | 6 ++++++
 data/.gitignore                  | 1 +
 4 files changed, 11 insertions(+), 4 deletions(-)
 create mode 100644 data/.gitignore

diff --git a/convlab2/dst/dstc9/eval_file.py b/convlab2/dst/dstc9/eval_file.py
index d592b27..50784fe 100644
--- a/convlab2/dst/dstc9/eval_file.py
+++ b/convlab2/dst/dstc9/eval_file.py
@@ -5,7 +5,7 @@
 import json
 import os
 
-from convlab2.dst.dstc9.utils import prepare_data, extract_gt, eval_states, get_subdir
+from convlab2.dst.dstc9.utils import prepare_data, extract_gt, eval_states, get_subdir, dump_result
 
 
 def evaluate(model_dir, subtask, gt):
@@ -18,7 +18,7 @@ def evaluate(model_dir, subtask, gt):
         results[i] = eval_states(gt, pred, subtask)
 
     print(json.dumps(results, indent=4, ensure_ascii=False))
-    json.dump(results, open(os.path.join(model_dir, 'file-results.json'), 'w'), indent=4, ensure_ascii=False)
+    dump_result(model_dir, 'file-results.json', results)
 
 
 # generate submission examples
diff --git a/convlab2/dst/dstc9/eval_model.py b/convlab2/dst/dstc9/eval_model.py
index eaba8e6..bad4ee7 100644
--- a/convlab2/dst/dstc9/eval_model.py
+++ b/convlab2/dst/dstc9/eval_model.py
@@ -7,7 +7,7 @@ import json
 import importlib
 
 from convlab2.dst import DST
-from convlab2.dst.dstc9.utils import prepare_data, eval_states
+from convlab2.dst.dstc9.utils import prepare_data, eval_states, dump_result
 
 
 def evaluate(model_dir, subtask, test_data, gt):
@@ -23,7 +23,7 @@ def evaluate(model_dir, subtask, test_data, gt):
         pred[dialog_id] = [model.update_turn(sys_utt, user_utt) for sys_utt, user_utt, gt_turn in turns]
     result = eval_states(gt, pred, subtask)
     print(json.dumps(result, indent=4))
-    json.dump(result, open(os.path.join(model_dir, 'model-result.json'), 'w'), indent=4, ensure_ascii=False)
+    dump_result(model_dir, 'model-result.json', result)
 
 
 if __name__ == '__main__':
diff --git a/convlab2/dst/dstc9/utils.py b/convlab2/dst/dstc9/utils.py
index 0987cbe..ad10cf5 100644
--- a/convlab2/dst/dstc9/utils.py
+++ b/convlab2/dst/dstc9/utils.py
@@ -144,3 +144,9 @@ def eval_states(gt, pred, subtask):
             'f1': f1,
         }
     }
+
+
+def dump_result(model_dir, filename, result):
+    output_dir = os.path.join('../results', model_dir)
+    os.makedirs(output_dir, exist_ok=True)
+    json.dump(result, open(os.path.join(output_dir, filename), 'w'), indent=4, ensure_ascii=False)
diff --git a/data/.gitignore b/data/.gitignore
new file mode 100644
index 0000000..f96d680
--- /dev/null
+++ b/data/.gitignore
@@ -0,0 +1 @@
+*/dstc9*.json.zip
-- 
GitLab