import unittest class TestCase(unittest.TestCase): @classmethod def setUpClass(self): from stanford_parser.parser import Parser self.parser = Parser() def testParse(self): dependencies = self.parser.parseToStanfordDependencies("Pick up the tire pallet.") tupleResult = [(rel, gov.text, dep.text) for rel, gov, dep in dependencies.dependencies] self.assertEqual(tupleResult, [('prt', 'Pick', 'up'), ('det', 'pallet', 'the'), ('nn', 'pallet', 'tire'), ('dobj', 'Pick', 'pallet')]) self.assertEqual(dependencies.tagForTokenStandoff(gov), "VB") self.assertEqual(dependencies.tagForTokenStandoff(dep), "NN") def testParseRefexpNextTo(self): dependencies = self.parser.parseToStanfordDependencies("Pick up the tire pallet next to the truck.") tupleResult = [(rel, gov.text, dep.text) for rel, gov, dep in dependencies.dependencies] self.assertEqual(tupleResult, [('prt', 'Pick', 'up'), ('det', 'pallet', 'the'), ('nn', 'pallet', 'tire'), ('dobj', 'Pick', 'pallet'), ('det', 'truck', 'the'), ('prep_next_to', 'pallet', 'truck')]) def testParseRefexpNear(self): dependencies =self.parser.parseToStanfordDependencies("Pick up the tire pallet near the truck.") tupleResult = [(rel, gov.text, dep.text) for rel, gov, dep in dependencies.dependencies] self.assertEqual(tupleResult, [('prt', 'Pick', 'up'), ('det', 'pallet', 'the'), ('nn', 'pallet', 'tire'), ('dobj', 'Pick', 'pallet'), ('det', 'truck', 'the'), ('prep_near', 'pallet', 'truck')]) def testParseLong(self): # this sentence has a self dependency that the python code filters out. # between drop and drop. dependencies = self.parser.parseToStanfordDependencies("Grab the skid of tires right in front of you " + "and drop it off just in front and to the " + "right of the far skid of tires.") tupleResult = [(rel, gov.text, dep.text) for rel, gov, dep in dependencies.dependencies] self.assertEqual(tupleResult, [('det', 'skid', 'the'), ('dobj', 'Grab', 'skid'), ('prep_of', 'skid', 'tires'), ('dep', 'Grab', 'right'), ('prep_in', 'Grab', 'front'), ('prep_of', 'front', 'you'), ('conj_and', 'Grab', 'drop'), ('dobj', 'drop', 'it'), ('prt', 'drop', 'off'), ('advmod', 'drop', 'just'), ('prep_in', 'drop', 'front'), ('det', 'right', 'the'), ('prep_to', 'drop', 'right'), ('det', 'skid', 'the'), ('amod', 'skid', 'far'), ('prep_of', 'right', 'skid'), ('prep_of', 'skid', 'tires')]) def testAllCaps(self): dependencies = self.parser.parseToStanfordDependencies("GO TO THE TIRE PALLET NEXT TO THE TRUCK.") tupleResult = [(rel, gov.text, dep.text) for rel, gov, dep in dependencies.dependencies] self.assertEqual(tupleResult, [('nn', 'PALLET', 'GO'), ('nn', 'PALLET', 'TO'), ('nn', 'PALLET', 'THE'), ('nn', 'PALLET', 'TIRE'), ('nsubj', 'NEXT', 'PALLET'), ('dep', 'NEXT', 'TO'), ('det', 'TRUCK', 'THE'), ('dobj', 'TO', 'TRUCK')])