Package nltk_lite :: Package contrib :: Package classifier :: Module zeror
[hide private]
[frames] | no frames]

Source Code for Module nltk_lite.contrib.classifier.zeror

 1  # Natural Language Toolkit - ZeroR 
 2  #  Capable of classifying the test or gold data using the ZeroR algorithm 
 3  # 
 4  # Author: Sumukh Ghodke <sumukh dot ghodke at gmail dot com> 
 5  # 
 6  # URL: <http://nltk.sf.net> 
 7  # This software is distributed under GPL, for license information see LICENSE.TXT 
 8   
 9  from nltk_lite.contrib.classifier import instances as ins, Classifier 
10   
11 -class ZeroR(Classifier):
12 - def __init__(self, training, attributes, klass):
13 Classifier.__init__(self, training, attributes, klass) 14 self.__majority_class = None 15 self.__klassCount = {}
16
17 - def test(self, test_instances, printResults=True):
18 self.test_instances = test_instances 19 self.classify(self.test_instances) 20 if printResults: self.test_instances.print_all()
21
22 - def classify(self, instances):
23 if self.__majority_class == None: 24 self.__majority_class = self.majority_class() 25 for instance in instances: 26 instance.set_klass(self.__majority_class)
27
28 - def verify(self, gold_instances):
29 self.gold_instances = gold_instances 30 self.classify(self.gold_instances) 31 return self.gold_instances.confusion_matrix(self.klass)
32
33 - def majority_class(self):
34 for instance in self.training: 35 self.update_count(instance) 36 return self.__max()
37
38 - def update_count(self, instance):
39 klass_value = instance.klass_value 40 if self.__klassCount.has_key(klass_value): 41 self.__klassCount[klass_value] += 1 42 else: 43 self.__klassCount[klass_value] = 1
44
45 - def __max(self):
46 max, klass_value = 0, None 47 for key in self.__klassCount.keys(): 48 value = self.__klassCount[key] 49 if value > max: 50 max = value 51 klass_value = key 52 return klass_value
53
55 return True
56