示例#1
0
 def testBasicNamedEntityChildParent(self):
     tagList = ['LOCATION', 'PERSON', 'NUMBER', 'MONEY', 'MISC']
     for tag in tagList:
         parent = DependenciesTree('parent', 1, namedEntityTag = tag)
         child = DependenciesTree('child', 2, parent = parent, namedEntityTag = tag)
         parent.child.append(child)
         child.dependency = 'conj_and'
         NamedEntityMerging(parent).merge()
         self.assertEqual(parent.wordList, [Word('parent', 1)])
         self.assertEqual(parent.child, [child])
         self.assertEqual(child.parent, parent)
         child.dependency = 'foo'
         NamedEntityMerging(parent).merge()
         self.assertIn(Word('parent', 1), parent.wordList)
         self.assertIn(Word('child', 2), parent.wordList)
         self.assertEqual(parent.child, [])
     for (tag1, tag2) in itertools.permutations(tagList, 2):
         parent = DependenciesTree('parent', 1, namedEntityTag = tag1)
         child = DependenciesTree('child', 2, parent = parent, namedEntityTag = tag2)
         parent.child.append(child)
         child.dependency = 'conj_and'
         NamedEntityMerging(parent).merge()
         self.assertEqual(parent.wordList, [Word('parent', 1)])
         self.assertEqual(parent.child, [child])
         self.assertEqual(child.parent, parent)
         child.dependency = 'foo'
         NamedEntityMerging(parent).merge()
         self.assertEqual(parent.wordList, [Word('parent', 1)])
         self.assertEqual(parent.child, [child])
         self.assertEqual(child.parent, parent)
示例#2
0
 def testBasicNamedEntitySisterBrother(self):
     tagList = ['LOCATION', 'PERSON', 'NUMBER', 'MONEY', 'MISC']
     for tag in tagList:
         parent = DependenciesTree('parent', 1, namedEntityTag = 'undef')
         child1 = DependenciesTree('child1', 2, parent = parent, dependency = 'conj_and', namedEntityTag = tag)
         child2 = DependenciesTree('child2', 3, parent = parent, dependency = 'conj_and', namedEntityTag = tag)
         parent.child += [child1, child2]
         NamedEntityMerging(parent).merge()
         self.assertEqual(parent.wordList, [Word('parent', 1)])
         self.assertEqual(parent.child, [child1, child2])
         self.assertEqual(child1.parent, parent)
         self.assertEqual(child2.parent, parent)
         child1.dependency = 'foo'
         child2.dependency = 'foo'
         NamedEntityMerging(parent).merge()
         self.assertEqual(parent.wordList, [Word('parent', 1)])
         self.assertEqual(len(parent.child), 1)
         self.assertIn(Word('child1', 2), parent.child[0].wordList)
         self.assertIn(Word('child2', 3), parent.child[0].wordList)
         self.assertEqual(parent.child[0].parent, parent)
     for (tag1, tag2) in itertools.permutations(tagList, 2):
         parent = DependenciesTree('parent', 1, namedEntityTag = 'undef')
         child1 = DependenciesTree('child1', 2, parent = parent, dependency = 'conj_and', namedEntityTag = tag1)
         child2 = DependenciesTree('child2', 3, parent = parent, dependency = 'conj_and', namedEntityTag = tag2)
         parent.child += [child1, child2]
         NamedEntityMerging(parent).merge()
         self.assertEqual(parent.wordList, [Word('parent', 1)])
         self.assertEqual(parent.child, [child1, child2])
         self.assertEqual(child1.parent, parent)
         self.assertEqual(child2.parent, parent)
         child1.dependency = 'foo'
         child2.dependency = 'foo'
         NamedEntityMerging(parent).merge()
         self.assertEqual(parent.wordList, [Word('parent', 1)])
         self.assertEqual(parent.child, [child1, child2])
         self.assertEqual(child1.parent, parent)
         self.assertEqual(child2.parent, parent)
示例#3
0
 def testBasicPrepositionNode(self):
     parent = DependenciesTree('parent', 1)
     child = DependenciesTree('child', 2, parent = parent, dependency = 'foo')
     parent.child.append(child)
     PrepositionMerging(parent).merge()
     self.assertEqual(parent.wordList, [Word('parent', 1)])
     self.assertEqual(parent.child, [child])
     self.assertEqual(child.parent, parent)
     for prep in PrepositionMerging.prepositionSet:
         parent = DependenciesTree('parent', 1)
         child = DependenciesTree(prep, 2, parent = parent, dependency = 'foo')
         parent.child.append(child)
         child.dependency = 'conj_and'
         PrepositionMerging(parent).merge()
         self.assertIn(Word('parent', 1), parent.wordList)
         self.assertIn(Word(prep, 2), parent.wordList)
         self.assertEqual(parent.child, [])