You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

86 lines
4.0 KiB

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')])