in violation_detection.py [0:0]
def get_violation_prob(disjunctions, slot_entities, distinct_slot_values):
satisfying_score = 0
for conj in disjunctions:
atomic_probs = []
for idx, atomic in enumerate(conj):
assert atomic['operator'] == 'IN'
try:
atomic_probs.append(sum(
[slot_entities[idx][distinct_slot_values[atomic['slotVariable']].index(v)] for v in
atomic['values']]))
except:
print(atomic)
print(distinct_slot_values[atomic['slotVariable']])
raise Exception()
satisfying_score += np.prod(atomic_probs)
return 1 - satisfying_score