12 from dictionaries import Dictionaries |
12 from dictionaries import Dictionaries |
13 from parameters import init_parser |
13 from parameters import init_parser |
14 from sparseNaiveBayes import sparseNBClassifier |
14 from sparseNaiveBayes import sparseNBClassifier |
15 from KNN import KNN,euclidean |
15 from KNN import KNN,euclidean |
16 from KNNs import KNNAdaptPointFeatures,KNNUrban |
16 from KNNs import KNNAdaptPointFeatures,KNNUrban |
|
17 #from bayesPlusMetric import sparseNBPlusClassifier |
17 from predefined import Predefined |
18 from predefined import Predefined |
18 from ExpandFeatures import ExpandFeatures |
19 from ExpandFeatures import ExpandFeatures |
19 from stats import Statistics |
20 from stats import Statistics |
20 |
21 |
21 |
22 |
56 if argv == '': |
57 if argv == '': |
57 self.server.args = init_parser([]) |
58 self.server.args = init_parser([]) |
58 else: |
59 else: |
59 argv = argv.split(';') |
60 argv = argv.split(';') |
60 self.server.args = init_parser(argv) |
61 self.server.args = init_parser(argv) |
|
62 |
|
63 # Set up logging |
|
64 logging.basicConfig(level=logging.DEBUG, |
|
65 format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', |
|
66 datefmt='%d-%m %H:%M:%S', |
|
67 filename=self.server.args.log+'server', |
|
68 filemode='w') |
|
69 self.server.logger = logging.getLogger('server') |
|
70 |
61 # Load all data |
71 # Load all data |
62 self.server.dicts = Dictionaries() |
72 self.server.dicts = Dictionaries() |
63 if os.path.isfile(self.server.args.dictsFile): |
73 if os.path.isfile(self.server.args.dictsFile): |
64 self.server.dicts.load(self.server.args.dictsFile) |
74 self.server.dicts.load(self.server.args.dictsFile) |
|
75 #elif not self.server.args.dictsFile == '../tmp/dict.pickle': |
|
76 # raise IOError('Cannot find dictsFile at %s '% self.server.args.dictsFile) |
65 elif self.server.args.init: |
77 elif self.server.args.init: |
66 self.server.dicts.init_all(self.server.args) |
78 self.server.dicts.init_all(self.server.args) |
67 # Pick model |
79 # Pick model |
68 if self.server.args.algorithm == 'nb': |
80 if self.server.args.algorithm == 'nb': |
69 self.server.model = sparseNBClassifier(self.server.args.NBDefaultPriorWeight,self.server.args.NBPosWeight,self.server.args.NBDefVal) |
81 ###TODO: !! |
|
82 self.server.model = sparseNBClassifier(self.server.args.NBDefaultPriorWeight,self.server.args.NBPosWeight,self.server.args.NBDefVal) |
|
83 #self.server.model = sparseNBPlusClassifier(self.server.args.NBDefaultPriorWeight,self.server.args.NBPosWeight,self.server.args.NBDefVal) |
70 elif self.server.args.algorithm == 'KNN': |
84 elif self.server.args.algorithm == 'KNN': |
71 #self.server.model = KNN(self.server.dicts) |
85 #self.server.model = KNN(self.server.dicts) |
72 self.server.model = KNNAdaptPointFeatures(self.server.dicts) |
86 self.server.model = KNNAdaptPointFeatures(self.server.dicts) |
73 elif self.server.args.algorithm == 'predef': |
87 elif self.server.args.algorithm == 'predef': |
74 self.server.model = Predefined(self.server.args.predef) |
88 self.server.model = Predefined(self.server.args.predef) |
78 self.server.expandFeatures = ExpandFeatures(self.server.dicts) |
92 self.server.expandFeatures = ExpandFeatures(self.server.dicts) |
79 self.server.expandFeatures.initialize(self.server.dicts) |
93 self.server.expandFeatures.initialize(self.server.dicts) |
80 # Create Model |
94 # Create Model |
81 if os.path.isfile(self.server.args.modelFile): |
95 if os.path.isfile(self.server.args.modelFile): |
82 self.server.model.load(self.server.args.modelFile) |
96 self.server.model.load(self.server.args.modelFile) |
|
97 #elif not self.server.args.modelFile == '../tmp/model.pickle': |
|
98 # raise IOError('Cannot find modelFile at %s '% self.server.args.modelFile) |
83 elif self.server.args.init: |
99 elif self.server.args.init: |
84 trainData = self.server.dicts.featureDict.keys() |
100 trainData = self.server.dicts.featureDict.keys() |
85 self.server.model.initializeModel(trainData,self.server.dicts) |
101 self.server.model.initializeModel(trainData,self.server.dicts) |
86 |
102 |
87 if self.server.args.statistics: |
103 if self.server.args.statistics: |
88 self.server.stats = Statistics(self.server.args.cutOff) |
104 self.server.stats = Statistics(self.server.args.cutOff) |
89 self.server.statementCounter = 1 |
105 self.server.statementCounter = 1 |
90 self.server.computeStats = False |
106 self.server.computeStats = False |
91 |
107 |
92 # Set up logging |
|
93 logging.basicConfig(level=logging.DEBUG, |
|
94 format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', |
|
95 datefmt='%d-%m %H:%M:%S', |
|
96 filename=self.server.args.log+'server', |
|
97 filemode='w') |
|
98 self.server.logger = logging.getLogger('server') |
|
99 self.server.logger.debug('Initialized in '+str(round(time()-self.startTime,2))+' seconds.') |
108 self.server.logger.debug('Initialized in '+str(round(time()-self.startTime,2))+' seconds.') |
100 self.request.sendall('Server initialized in '+str(round(time()-self.startTime,2))+' seconds.') |
109 self.request.sendall('Server initialized in '+str(round(time()-self.startTime,2))+' seconds.') |
101 self.server.callCounter = 1 |
110 self.server.callCounter = 1 |
102 |
111 |
103 def update(self): |
112 def update(self): |
115 self.server.statementCounter += 1 |
124 self.server.statementCounter += 1 |
116 |
125 |
117 if self.server.args.expandFeatures: |
126 if self.server.args.expandFeatures: |
118 self.server.expandFeatures.update(self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId]) |
127 self.server.expandFeatures.update(self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId]) |
119 # Update Dependencies, p proves p |
128 # Update Dependencies, p proves p |
120 self.server.dicts.dependenciesDict[problemId] = [problemId]+self.server.dicts.dependenciesDict[problemId] |
129 if not problemId == 0: |
|
130 self.server.dicts.dependenciesDict[problemId] = [problemId]+self.server.dicts.dependenciesDict[problemId] |
|
131 ###TODO: |
121 self.server.model.update(problemId,self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId]) |
132 self.server.model.update(problemId,self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId]) |
|
133 #self.server.model.update(problemId,self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId],self.server.dicts) |
122 |
134 |
123 def overwrite(self): |
135 def overwrite(self): |
124 # Overwrite old proof. |
136 # Overwrite old proof. |
125 problemId,newDependencies = self.server.dicts.parse_overwrite(self.data) |
137 problemId,newDependencies = self.server.dicts.parse_overwrite(self.data) |
126 newDependencies = [problemId]+newDependencies |
138 newDependencies = [problemId]+newDependencies |