Package nltk_lite :: Package contrib :: Package classifier_tests :: Module classifytests
[hide private]
[frames] | no frames]

Source Code for Module nltk_lite.contrib.classifier_tests.classifytests

  1  # Natural Language Toolkit 
  2  # 
  3  # Author: Sumukh Ghodke <sumukh dot ghodke at gmail dot com> 
  4  # 
  5  # URL: <http://nltk.sf.net> 
  6  # This software is distributed under GPL, for license information see LICENSE.TXT 
  7  from nltk_lite.contrib.classifier import classify as c 
  8  from nltk_lite.contrib.classifier_tests import * 
  9   
10 -class ClassifyTestCase(unittest.TestCase):
11 - def setUp(self):
12 self.classify = c.Classify()
13
15 self.classify.parse(['-a', '0R']) #Zero R classifier 16 self.assertEqual('0R', self.classify.values.ensure_value('algorithm', None)) 17 18 self.classify.parse(['-a', '1R']) #One R classifier 19 self.assertEqual('1R', self.classify.values.ensure_value('algorithm', None)) 20 21 self.classify.parse(['-a', 'DT']) #Decision Tree classifier 22 self.assertEqual('DT', self.classify.values.ensure_value('algorithm', None))
23
25 self.classify.parse(None) 26 self.assertEqual(True, self.classify.values.ensure_value('accuracy', None)) 27 self.assertEqual(True, self.classify.values.ensure_value('fscore', None)) 28 29 self.classify.parse(["-A"]) 30 self.assertEqual(False, self.classify.values.ensure_value('accuracy', None)) 31 32 self.classify.parse(["-AF"]) 33 self.assertEqual(False, self.classify.values.ensure_value('accuracy', None)) 34 self.assertEqual(False, self.classify.values.ensure_value('fscore', None))
35
37 path = datasetsDir(self) + 'minigolf' + SEP + 'weather' 38 classify = StubClassify() 39 self.assertFalse(classify.classifyCalled) 40 classify.parse(['-a', '1R', '-t', path, '-T', path]) 41 classify.execute() 42 self.assertTrue(classify.classifyCalled) 43 self.assertFalse(classify.errorCalled) 44 45 classify = StubClassify() 46 self.assertFalse(classify.classifyCalled) 47 classify.parse(['-a', '1R', '-t', path, '-g', path]) 48 classify.execute() 49 self.assertTrue(classify.classifyCalled) 50 self.assertFalse(classify.errorCalled)
51
53 path = datasetsDir(self) + 'minigolf' + SEP + 'weather' 54 classify = StubClassify() 55 self.assertFalse(classify.classifyCalled) 56 classify.parse(['-a', '1R', '-t', path]) 57 classify.execute() 58 self.assertTrue(classify.errorCalled) 59 self.assertTrue(classify.classifyCalled)#in reality it will never be called as it exits in the error method 60 self.assertEqual('Invalid arguments. One or more required arguments are not present.', classify.message)
61
63 path = datasetsDir(self) + 'minigolf' + SEP + 'weather' 64 classify = StubClassify() 65 self.assertFalse(classify.classifyCalled) 66 classify.parse(['-a', '1R', '-f', path]) 67 classify.execute() 68 self.assertTrue(classify.classifyCalled) 69 self.assertEqual(1, len(classify.testSet)) 70 self.assertEqual(None, classify.goldSet)
71
73 path = datasetsDir(self) + 'minigolf' + SEP + 'weather' 74 classify = StubClassify() 75 self.assertFalse(classify.classifyCalled) 76 classify.parse(['-a', '1R', '-v', '-f', path]) 77 classify.execute() 78 self.assertTrue(classify.classifyCalled) 79 self.assertEqual(None, classify.testSet) 80 self.assertEqual(4, len(classify.goldSet))
81
83 path = datasetsDir(self) + 'minigolf' + SEP + 'weather' 84 classify = StubClassify() 85 self.assertFalse(classify.classifyCalled) 86 classify.parse(['-a', '1R', '-f', path, '-t', path]) 87 classify.execute() 88 self.assertTrue(classify.errorCalled) 89 self.assertEqual('Invalid arguments. The files argument cannot exist with training, test or gold arguments.', classify.message)
90
92 path = datasetsDir(self) + 'minigolf' + SEP + 'weather' 93 classify = StubClassify() 94 self.assertFalse(classify.classifyCalled) 95 classify.parse(['-a', '1R', '-t', path, '-T', path, '-g', path]) 96 classify.execute() 97 self.assertTrue(classify.errorCalled) 98 self.assertEqual('Invalid arguments. Test and gold files are mutually exclusive.', classify.message)
99
101 path = datasetsDir(self) + 'minigolf' + SEP + 'weather' 102 classify = StubClassify() 103 self.assertFalse(classify.classifyCalled) 104 classify.parse(['-a', '1R', '-v', '-t', path, '-T', path]) 105 classify.execute() 106 self.assertTrue(classify.errorCalled) 107 self.assertEqual('Invalid arguments. Cannot verify classification for test data.', classify.message)
108
109 -class StubClassify(c.Classify):
110 - def __init__(self):
111 c.Classify.__init__(self) 112 self.errorCalled = False 113 self.classifyCalled = False
114
115 - def error(self, message):
116 #in reality error will display usage and quit 117 self.message = message 118 self.errorCalled = True
119
120 - def classify(self, classifier, test, gold):
121 self.classifyCalled = True 122 self.testSet = test 123 self.goldSet = gold
124