def test_readContext(self): textfile = ["#Film:\tTestfilm", "#Scene:\tTestszene", "#FPS:\t25", "#Context:\tperson§Hugo, person§Alexander the Great", "#EntityList:\tobject§Rope, place§Room, object§Hugos Thing"] context = ConvertData.readContext(textfile) self.assertTrue(context["Film"]=="Testfilm") self.assertTrue(context["Scene"]=="Testszene") self.assertTrue(context["FPS"]==25) self.assertTrue(context["Entities"]["Hugo"].type == Config.PERSON) self.assertTrue(context["Entities"]["Alexander the Great"].type == Config.PERSON) self.assertTrue(context["Entities"]["Rope"].type == Config.OBJECT) self.assertTrue(context["Entities"]["Room"].type == Config.PLACE) self.assertTrue(context["Entities"]["Hugos Thing"].type == Config.OBJECT)
def getPerformance(classifier, domain, testFiles, means, vars): correct = 0 weightedDiff = 0 total = 0 for testFile in testFiles: f = open(testFile, "r") lines = f.readlines() f.close() context = ConvertData.readContext(lines) blockList = ConvertData.getBlockList(lines, context) decisions = [] for _ in range(len(blockList)): shotClass = classification(classifier,context,blockList,domain,decisions,means, vars,shot=True) correctClass = orange.Value(blockList[-1][-1].shot,domain.class_var) #shotClass, correctClass = classify(classifier, testFile, domain, decisions, means, vars) decisions.append(shotClass) if correctClass == shotClass: correct += 1 weightedDiff += getDifference(shotClass, correctClass) total += 1 return float(correct)/ total, float(weightedDiff) / total