def test_iter_nodes_by_layer(self): E = DependencyNode('E', 5, 'CE') D = DependencyNode('D', 4, 'CD') C = DependencyNode('C', 3, 'BC', [D, E]) A = DependencyNode('A', 1, 'BA') B = DependencyNode('B', 2, 'CB', [A, C]) tree = DependencyTree('answer') tree.root = B res = tree.iter_nodes_from_root() self.assertTrue(res.index(B) == 0) self.assertTrue(0 < res.index(A) < 3) self.assertTrue(0 < res.index(C) < 3) self.assertTrue(2 < res.index(D) < 5) self.assertTrue(2 < res.index(E) < 5)
def test_train_runs(self): # "bravo 42 also wrong alpha" # 1 2 3 4 5 # root: also # dep0: bravo # dep1: 42 # dep1: wrong # dep0: alpha vocab = { 'alpha': 0, 'bravo': 1, '42': 2, 'not 42': 3, 'also': 4, 'wrong': 5 } deplist = {'dep0': 0, 'dep1': 1} d = 3 answers = ['42', 'not 42'] tree = DependencyTree('42') tree.add(DependencyNode('also', 3, None)) # root tree.add(DependencyNode('bravo', 1, 'dep0'), 3) tree.add(DependencyNode('42', 2, 'dep1'), 1) tree.add(DependencyNode('wrong', 4, 'dep1'), 3) tree.add(DependencyNode('alpha', 5, 'dep0'), 4) root2 = DependencyNode('not 42', 1, None, []) tree2 = DependencyTree('not 42') tree2.add(root2) q = model.QANTA(d, vocab, deplist) q.train([tree, tree2])
def test_train_runs(self): # "bravo 42 also wrong alpha" # 1 2 3 4 5 # root: also # dep0: bravo # dep1: 42 # dep1: wrong # dep0: alpha vocab = {'alpha':0, 'bravo':1, '42':2, 'not 42':3, 'also': 4, 'wrong':5} deplist = {'dep0':0, 'dep1':1} d = 3 answers = ['42', 'not 42'] tree = DependencyTree('42') tree.add(DependencyNode('also', 3, None)) # root tree.add(DependencyNode('bravo', 1, 'dep0'), 3) tree.add(DependencyNode('42', 2, 'dep1'), 1) tree.add(DependencyNode('wrong', 4, 'dep1'), 3) tree.add(DependencyNode('alpha', 5, 'dep0'), 4) root2 = DependencyNode('not 42', 1, None, []) tree2 = DependencyTree('not 42') tree2.add(root2) q = model.QANTA(d, vocab, deplist) q.train([tree, tree2])
def __init__(self, arg): super(TestPredict, self).__init__(arg) self.trees = [] tree = DependencyTree('Margaret') tree.add(DependencyNode('is', 2, 'b'), None) tree.add(DependencyNode('She', 1, 'a'), 2) tree.add(DependencyNode('Denmark\'s', 3, 'c'), 2) tree.add(DependencyNode('queen', 4, 'd'), 3) self.trees.append(tree) tree = DependencyTree('BMW') tree.add(DependencyNode('car', 3, 'b'), None) tree.add(DependencyNode('famous', 2, 'c'), 3) tree.add(DependencyNode('brand', 4, 'd'), 3) tree.add(DependencyNode('A', 1, 'a'), 2) self.trees.append(tree) tree = DependencyTree('Horse') tree.add(DependencyNode('large', 2, 'c'), None) tree.add(DependencyNode('A', 1, 'd'), 2) tree.add(DependencyNode('scary', 3, 'b'), 2) tree.add(DependencyNode('animal', 4, 'a'), 3) self.trees.append(tree)
def __init__(self, arg): super(TestPredict, self).__init__(arg) self.trees = [] tree = DependencyTree('Margaret') tree.add(DependencyNode('is',2, 'b'), None) tree.add(DependencyNode('She', 1, 'a'), 2) tree.add(DependencyNode('Denmark\'s', 3, 'c'), 2) tree.add(DependencyNode('queen', 4, 'd'), 3) self.trees.append(tree) tree = DependencyTree('BMW') tree.add(DependencyNode('car', 3, 'b'), None) tree.add(DependencyNode('famous',2, 'c'), 3) tree.add(DependencyNode('brand', 4, 'd'), 3) tree.add(DependencyNode('A', 1, 'a'), 2) self.trees.append(tree) tree = DependencyTree('Horse') tree.add(DependencyNode('large',2, 'c'), None) tree.add(DependencyNode('A', 1, 'd'), 2) tree.add(DependencyNode('scary', 3, 'b'), 2) tree.add(DependencyNode('animal', 4, 'a'), 3) self.trees.append(tree)