From 4eb9bf6ff444259876935be1c9599808d3b10efd Mon Sep 17 00:00:00 2001
From: Christian <christian.geishauser@hhu.de>
Date: Wed, 14 Dec 2022 11:06:18 +0100
Subject: [PATCH] changed masking such that it works also if belief state has
 less keys then default state

---
 convlab/policy/vector/vector_base.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/convlab/policy/vector/vector_base.py b/convlab/policy/vector/vector_base.py
index 8f72144c..a9e096e4 100644
--- a/convlab/policy/vector/vector_base.py
+++ b/convlab/policy/vector/vector_base.py
@@ -259,11 +259,12 @@ class VectorBase(Vector):
             if intent in ['nobook', 'nooffer'] and slot != 'none':
                 mask_list[i] = 1.0
 
-            if "book" in slot and intent == 'inform' and not self.state[domain][slot]:
-                mask_list[i] = 1.0
+            if "book" in slot and intent == 'inform':
+                if not self.state.get(domain, {}).get(slot, {}):
+                    mask_list[i] = 1.0
 
             if domain == 'taxi':
-                if slot in self.state['taxi']:
+                if slot in self.state.get('taxi', {}):
                     if not self.state['taxi'][slot] and intent == 'inform':
                         mask_list[i] = 1.0
 
-- 
GitLab