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
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
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
51
52 return list_id_categories
53