1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
import unittest
class TestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
from stanford_parser.parser import Parser
cls.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')])
|