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

Source Code for Module nltk_lite.contrib.classifier_tests.instancetests

  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   
  8  from nltk_lite.contrib.classifier import instance as ins, attribute, discretisedattribute as da, numrange as r 
  9  import unittest 
 10   
11 -class InstanceTestCase(unittest.TestCase):
12 - def setUp(self):
13 self.a = 'a' 14 self.b = 'b'
15
17 instance = ins.TestInstance(['bar','two','a']) 18 self.assertEqual(3, len(instance.attrs)) 19 self.assertEqual('bar', instance.attrs[0]) 20 self.assertEqual('two', instance.attrs[1]) 21 self.assertEqual('a', instance.attrs[2])
22
24 instance = ins.TrainingInstance(['bar','two'],'a') 25 self.assertEqual(self.a, instance.klass_value) 26 self.assertEqual(['bar', 'two'], instance.attrs)
27
29 instance = ins.TestInstance(['bar','two']) 30 self.assertEqual(None, instance.klass_value) 31 self.assertEqual(['bar', 'two'], instance.attrs)
32
34 instance = ins.TrainingInstance(['bar','two'],'a') 35 try: 36 getattr(instance, 'set_klass')(self.b) 37 self.fail('should not be able to set a class on a Training Instance') 38 except AttributeError: 39 self.assertEqual(self.a, instance.klass_value, 'should not have changed the original class')
40
42 instance = ins.TestInstance(['bar','two']) 43 try: 44 instance.set_klass('c') 45 self.assertEqual('c', instance.classified_klass) 46 self.assertEqual(None, instance.klass_value) 47 except AttributeError: 48 self.fail('should be able to set class in Test Instance')
49
51 gold = ins.GoldInstance(['bar','two'],'a') 52 self.assertEqual(2, len(gold.attrs)) 53 self.assertEqual('bar', gold.attrs[0]) 54 self.assertEqual('two', gold.attrs[1]) 55 self.assertEqual(self.a, gold.klass_value) 56 self.assertEqual(None, gold.classified_klass)
57
59 gold = ins.GoldInstance(['bar','two'],'a') 60 self.assertEqual(self.a, gold.klass_value) 61 self.assertEqual(None, gold.classified_klass) 62 gold.set_klass(self.b) 63 self.assertEqual(self.a, gold.klass_value) 64 self.assertEqual(self.b, gold.classified_klass)
65
67 instance = ins.TrainingInstance(['bar','two'],'a') 68 self.assertEqual("Attributes: ['bar', 'two'] Class: a", instance.__str__()); 69 70 instance = ins.TestInstance(['bar','two']) 71 self.assertEqual("Attributes: ['bar', 'two'] Classified as: ", instance.__str__()); 72 instance.set_klass('b') 73 self.assertEqual("Attributes: ['bar', 'two'] Classified as: b", instance.__str__()); 74 75 instance = ins.GoldInstance(['bar','two'],'a') 76 self.assertEqual("Attributes: ['bar', 'two'] Class: a Classified as: ", instance.__str__()); 77 instance.set_klass('b') 78 self.assertEqual("Attributes: ['bar', 'two'] Class: a Classified as: b", instance.__str__());
79
81 instance = ins.TrainingInstance(['bar','two'],'a') 82 attr = attribute.Attribute('second', ['two','duo'], 1) 83 self.assertEqual('two', instance.value(attr)) 84 85 test = ins.TestInstance(['bar','two']) 86 self.assertEqual('two', test.value(attr)) 87 88 gold = ins.GoldInstance(['bar','two'],'a') 89 self.assertEqual('two', gold.value(attr))
90
92 dependents = attribute.Attribute('dependents',['continuous'], 4) 93 annual_salary = attribute.Attribute('annualsalary', ['continuous'], 6) 94 disc_dependents = da.DiscretisedAttribute('dependents', r.Range(0, 2, True).split(2), 4) 95 disc_annual_salary = da.DiscretisedAttribute('annualsalary', r.Range(0, 120000, True).split(5), 6) 96 discretised_attributes = [disc_dependents, disc_annual_salary] 97 98 instance = ins.TrainingInstance(['3','34','self-employed','married','2','3','120000','2'],'yes') 99 self.assertEqual(2, instance.value(dependents)) 100 self.assertEqual(120000, instance.value(annual_salary)) 101 instance.discretise(discretised_attributes) 102 103 self.assertEqual('b', instance.value(disc_dependents)) 104 self.assertEqual('e', instance.value(disc_annual_salary))
105
107 training = ins.TrainingInstance(['3','34','self-employed','married','2','3','120000','2'],'yes') 108 dependents = attribute.Attribute('dependents', ['continuous'], 4) 109 annual_salary = attribute.Attribute('annualsalary', ['continuous'], 6) 110 self.assertEqual(['2','120000'], training.values([dependents, annual_salary]))
111
112 - def test_remove_attrbutes(self):
113 training = ins.TrainingInstance(['3','34','self-employed','married','2','3','120000','2'],'yes') 114 id = attribute.Attribute('id', ['continuous'], 0) 115 annual_salary = attribute.Attribute('annualsalary', ['continuous'], 6) 116 training.remove_attributes([id, annual_salary]) 117 self.assertEqual(6, len(training.attrs)) 118 self.assertEqual('34', training.attrs[0])
119