1
2
3
4
5
6
7
8 from nltk_lite.contrib.classifier import instance as ins, attribute, discretisedattribute as da, numrange as r
9 import unittest
10
13 self.a = 'a'
14 self.b = 'b'
15
22
27
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
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