Package miopia :: Package classifier :: Module MultiLabelClassifier
[hide private]
[frames] | no frames]

Source Code for Module miopia.classifier.MultiLabelClassifier

 1  ''' 
 2  Created on 25/06/2013 
 3   
 4  @author: David Vilares 
 5  ''' 
 6   
 7  from miopia.classifier.ClassifierI import ClassifierI 
 8  from miopia.classifier.PolarityType import PolarityType 
 9   
10 -class MultiLabelClassifier(ClassifierI):
11 ''' 12 classdocs 13 ''' 14 15
16 - def __init__(self,list_classifiers, backoff_category,backoff_confidence):
17 ''' 18 Constructor 19 ''' 20 self._list_classifiers = list_classifiers 21 self._backoff_category = backoff_category 22 self._backoff_confidence = backoff_confidence
23 24 25 26
27 - def classify(self,arff_file, results_file, dict_position_instanceid):
28 29 dict_idfiles_categories = {} 30 for classifier in self._list_classifiers: 31 list_idfile_category = classifier.classify(arff_file, results_file, 32 dict_position_instanceid) 33 for id, category, confidence in list_idfile_category: 34 try: 35 if category != PolarityType.OTHER: 36 dict_idfiles_categories[id].append((category,confidence)) 37 else: 38 dict_idfiles_categories[id].extend([]) 39 except KeyError: 40 if category == PolarityType.OTHER: 41 dict_idfiles_categories[id] = [] 42 else: 43 dict_idfiles_categories[id] = [(category,confidence)] 44 45 #dict to list 46 list_id_categories = [(idfile,dict_idfiles_categories[idfile]) 47 if len(dict_idfiles_categories[idfile]) != 0 48 else (idfile,[(self._backoff_category,self._backoff_confidence)]) 49 for idfile in set(dict_idfiles_categories.keys())] 50 # for id,categories in list_id_categories: 51 # print id," ",categories 52 return list_id_categories
53