1
2
3 """The settings dialog window allow the user to access the configuration.
4
5 The settings allow the user to consult and modify almost every configuration
6 options:
7 - Global:
8 - Miner:
9 - Text files miner:
10 - Text files: paths of the texts of the corpus to mine.
11 - Database: path to the database where the n-grams will be stored.
12 - n: maximum n-grams size.
13 - Lowercase: weither the texts words should be lowered or not.
14 - Facebook miner:
15 - Access Token: token authorizing the program to access the
16 profile.
17 - Database: path to the database where the n-grams will be stored.
18 - n: maximum n-grams size.
19 - Lowercase: weither the texts words should be lowered or not.
20 - Twitter miner:
21 - Predictor:
22 - Corpus n-gram:
23 - Database: path to the database from which n-grams will be
24 retrieved.
25 - n: maximum n-grams size to retrieved from the database.
26 - Deltas: weight of the n-gram in function of its position.
27 - Input n-gram:
28 - Database: path to the database from which n-grams will be
29 retrieved.
30 - n: maximum n-grams size to retrieved from the database.
31 - Deltas: weight of the n-gram in function of its position.
32 - Facebook n-gram:
33 - Database: path to the database from which n-grams will be
34 retrieved.
35 - n: maximum n-grams size to retrieved from the database.
36 - Deltas: weight of the n-gram in function of its position.
37 - Last occur:
38 - Lambda
39 - N0
40 - Cuttoff threshold
41 - Memorize:
42 - Memory: path of the file where the tokens are stored.
43 - Trigger
44 - Merger:
45 - Merger: name of the merging method to use.
46 - Selector:
47 - Number of suggestions: number of suggested words to display.
48 - Greedy suggestions threshold: don't display words appearing less
49 than it.
50 - PredictorActivator:
51 - stoplist: path of the file containing undesired words (one per line).
52 """
53
54 from PyQt5 import QtCore, QtGui, QtWidgets
55 from os import path
56 from tipy.lg import lg
57
58
59 probabilistic_Merger = 0
60 ALPHABETICAL_Merger = 1
61
62
64 - def __init__(self, config, parent=None):
65 super(Settings_UI, self).__init__(parent)
66 self.config = config
67 self.setupUi()
68 self.read_config()
69 self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
70 self.cwd = path.dirname(path.realpath(__file__))
71
73
74 self.verticalLayout_2 = QtWidgets.QVBoxLayout()
75 self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
76 self.verticalLayout = QtWidgets.QVBoxLayout()
77 self.horizontalLayout = QtWidgets.QHBoxLayout()
78 self.gridLayout = QtWidgets.QGridLayout()
79 self.gridLayout_25 = QtWidgets.QGridLayout()
80 self.gridLayout_27 = QtWidgets.QGridLayout()
81 self.gridLayout_36 = QtWidgets.QGridLayout()
82 self.gridLayout_39 = QtWidgets.QGridLayout()
83 self.gridLayout_34 = QtWidgets.QGridLayout()
84 self.gridLayout_35 = QtWidgets.QGridLayout()
85 self.FBGRID = QtWidgets.QGridLayout()
86 self.gridLayout_32 = QtWidgets.QGridLayout()
87 self.gridLayout_40 = QtWidgets.QGridLayout()
88 self.gridLayout_2 = QtWidgets.QGridLayout()
89 self.gridLayout_7 = QtWidgets.QGridLayout()
90 self.gridLayout_8 = QtWidgets.QGridLayout()
91 self.gridLayout_18 = QtWidgets.QGridLayout()
92 self.gridLayout_9 = QtWidgets.QGridLayout()
93 self.gridLayout_11 = QtWidgets.QGridLayout()
94 self.gridLayout_12 = QtWidgets.QGridLayout()
95 self.gridLayout_19 = QtWidgets.QGridLayout()
96 self.gridLayout_14 = QtWidgets.QGridLayout()
97 self.gridLayout_16 = QtWidgets.QGridLayout()
98 self.gridLayout_20 = QtWidgets.QGridLayout()
99 self.gridLayout_21 = QtWidgets.QGridLayout()
100
101 self.resize(691, 484)
102 self.setWindowTitle("Settings")
103 self.gridLayout_3 = QtWidgets.QGridLayout(self)
104
105 self.tabWidgetSections = QtWidgets.QTabWidget(self)
106
107 self.tab = QtWidgets.QWidget()
108
109 self.tabWidgetSections.addTab(self.tab, "Global")
110
111 self.tabMiner = QtWidgets.QWidget()
112 self.gridLayout_43 = QtWidgets.QGridLayout(self.tabMiner)
113
114 self.groupBoxMiners = QtWidgets.QGroupBox(self.tabMiner)
115 self.groupBoxMiners.setTitle("Miner type")
116 self.gridLayout_26 = QtWidgets.QGridLayout(self.groupBoxMiners)
117
118 self.labelMinerSelection = QtWidgets.QLabel(self.groupBoxMiners)
119 self.labelMinerSelection.setText(
120 'Please select the miner(s) to use for text mining (you can '
121 'choose multiple miners):')
122
123 self.checkBoxCorpMiner = QtWidgets.QCheckBox(self.groupBoxMiners)
124 self.checkBoxCorpMiner.setText("Corpus")
125
126 self.checkBoxFbMiner = QtWidgets.QCheckBox(self.groupBoxMiners)
127 self.checkBoxFbMiner.setText("Facebook")
128
129 self.checkBoxTwitMiner = QtWidgets.QCheckBox(self.groupBoxMiners)
130 self.checkBoxTwitMiner.setText("Twitter")
131
132 self.groupBoxMinersSettings = QtWidgets.QGroupBox(self.tabMiner)
133 self.groupBoxMinersSettings.setTitle("Miner\'s settings")
134 self.gridLayout_28 = QtWidgets.QGridLayout(self.groupBoxMinersSettings)
135
136 self.tabWidgetMiners = QtWidgets.QTabWidget(
137 self.groupBoxMinersSettings)
138
139 self.tabCorpMiner = QtWidgets.QWidget()
140 self.gridLayout_29 = QtWidgets.QGridLayout(self.tabCorpMiner)
141
142 self.labelCorpMinerFiles = QtWidgets.QLabel(self.tabCorpMiner)
143 self.labelCorpMinerFiles.setText("Text files:")
144 self.listCorpMinerFiles = QtWidgets.QListWidget(self.tabCorpMiner)
145 self.verticalLayout_2.addWidget(self.listCorpMinerFiles)
146
147 self.pushButtonCorpMinerAddFile = QtWidgets.QPushButton(
148 self.tabCorpMiner)
149 self.pushButtonCorpMinerAddFile.setText("Add")
150 self.pushButtonCorpMinerAddFile.released.connect(
151 self.on_add_file_btn_released)
152 self.horizontalLayout_3.addWidget(self.pushButtonCorpMinerAddFile)
153
154 self.pushButtonCorpMinerRmFile = QtWidgets.QPushButton(
155 self.tabCorpMiner)
156 self.pushButtonCorpMinerRmFile.setText("Remove")
157 self.pushButtonCorpMinerRmFile.released.connect(
158 self.on_rm_file_btn_released)
159 self.horizontalLayout_3.addWidget(self.pushButtonCorpMinerRmFile)
160 self.verticalLayout_2.addLayout(self.horizontalLayout_3)
161
162 self.labelCorpMinerDb = QtWidgets.QLabel(self.tabCorpMiner)
163 self.labelCorpMinersetText("Database:")
164 self.toolButtonCorpMiner = QtWidgets.QToolButton(self.tabCorpMiner)
165
166 self.toolButtonCorpMiner.setText("...")
167 self.toolButtonCorpMiner.released.connect(
168 self.on_corp_miner_db_tool_button_released)
169
170 self.lineEditCorpMinerDb = QtWidgets.QLineEdit(self.tabCorpMiner)
171
172 self.LabelCorpMinerN = QtWidgets.QLabel(self.tabCorpMiner)
173 self.LabelCorpMinerN.setText("N-gram size:")
174 self.spinBoxCorpMinerN = QtWidgets.QSpinBox(self.tabCorpMiner)
175 self.spinBoxCorpMinerN.setButtonSymbols(
176 QtWidgets.QAbstractSpinBox.PlusMinus)
177
178 self.labelCorpMinerLower = QtWidgets.QLabel(self.tabCorpMiner)
179 self.labelCorpMinerLower.setText("Lowercase mode:")
180 self.checkBoxCorpMinerLower = QtWidgets.QCheckBox(self.tabCorpMiner)
181 self.checkBoxCorpMinerLower.setText('Lowercase:')
182
183 self.tabWidgetMiners.addTab(self.tabCorpMiner, "Corpus")
184
185 self.tabMinerFb = QtWidgets.QWidget()
186 self.gridLayout_33 = QtWidgets.QGridLayout(self.tabMinerFb)
187
188 self.labelFbMinerAccessToken = QtWidgets.QLabel(self.tabMinerFb)
189 self.labelFbMinerAccessToken.setText("Access Token:")
190
191 self.lineEditFbMinerAccessToken = QtWidgets.QLineEdit(self.tabMinerFb)
192
193 self.LabelFbMinerDb = QtWidgets.QLabel(self.tabMinerFb)
194 self.LabelFbMinersetText("Database:")
195
196 self.toolButtonFbMiner = QtWidgets.QToolButton(self.tabMinerFb)
197 self.toolButtonFbMiner.setText("...")
198 self.toolButtonFbMiner.released.connect(
199 self.on_fb_miner_db_tool_button_released)
200
201 self.lineEditFbMinerDb = QtWidgets.QLineEdit(self.tabMinerFb)
202
203 self.LabelFbMinerN = QtWidgets.QLabel(self.tabMinerFb)
204 self.LabelFbMinerN.setText("N-gram size:")
205 self.spinBoxFbMinerN = QtWidgets.QSpinBox(self.tabMinerFb)
206 self.spinBoxFbMinerN.setButtonSymbols(
207 QtWidgets.QAbstractSpinBox.PlusMinus)
208
209 self.labelFbMinerLower = QtWidgets.QLabel(self.tabMinerFb)
210 self.labelFbMinerLower.setText("Lowercase mode:")
211 self.checkBoxFbMinerLower = QtWidgets.QCheckBox(self.tabMinerFb)
212
213 self.tabWidgetMiners.addTab(self.tabMinerFb, "Facebook")
214
215 self.tabMinerTwit = QtWidgets.QWidget()
216 self.gridLayout_37 = QtWidgets.QGridLayout(self.tabMinerTwit)
217
218 self.labelTwitMinerSettings = QtWidgets.QLabel(self.tabMinerTwit)
219 self.labelTwitMinerSettings.setText("[NOT IMPLEMENTED YET]")
220 self.labelTwitMinerSettings.setAlignment(QtCore.Qt.AlignCenter)
221
222 self.tabWidgetMiners.addTab(self.tabMinerTwit, "Twitter")
223
224 self.tabWidgetSections.addTab(self.tabMiner, "Miner")
225
226 self.tabPredictor = QtWidgets.QWidget()
227 self.gridLayout_4 = QtWidgets.QGridLayout(self.tabPredictor)
228
229 self.groupBoxPreds = QtWidgets.QGroupBox(self.tabPredictor)
230 self.groupBoxPreds.setTitle("Predictor type")
231 self.gridLayout_5 = QtWidgets.QGridLayout(self.groupBoxPreds)
232
233 self.label = QtWidgets.QLabel(self.groupBoxPreds)
234 self.label.setText("Please select the predictor(s) to use for word "
235 "suggestion (you can choose multiple predictors):")
236 self.checkBoxLateOccurPred = QtWidgets.QCheckBox(self.groupBoxPreds)
237 self.checkBoxLateOccurPred.setText("Late Occur")
238 self.checkBoxCorpNgramPred = QtWidgets.QCheckBox(self.groupBoxPreds)
239 self.checkBoxCorpNgramPred.setText("Corpus n-gram")
240 self.checkBoxInpNgramPred = QtWidgets.QCheckBox(self.groupBoxPreds)
241 self.checkBoxInpNgramPred.setText("Input n-gram")
242 self.checkBoxFbNgramPred = QtWidgets.QCheckBox(self.groupBoxPreds)
243 self.checkBoxFbNgramPred.setText("Facebook n-gram")
244 self.checkBoxMemorizePred = QtWidgets.QCheckBox(self.groupBoxPreds)
245 self.checkBoxMemorizePred.setText("Memorize")
246
247 self.groupBoxPredSettings = QtWidgets.QGroupBox(self.tabPredictor)
248 self.groupBoxPredSettings.setTitle("Predictor\'s settings")
249 self.gridLayout_6 = QtWidgets.QGridLayout(self.groupBoxPredSettings)
250 self.tabWidgetPreds = QtWidgets.QTabWidget(self.groupBoxPredSettings)
251
252 self.tabCorpNgramPred = QtWidgets.QWidget()
253 self.gridLayout_10 = QtWidgets.QGridLayout(self.tabCorpNgramPred)
254
255 self.labelCorpNgramPredDb = QtWidgets.QLabel(self.tabCorpNgramPred)
256 self.labelCorpNgramPredsetText("Database file:")
257
258 self.lineEditCorpNgramPredDb = QtWidgets.QLineEdit(
259 self.tabCorpNgramPred)
260
261 self.toolButtonCorpNgramPredDb = QtWidgets.QToolButton(
262 self.tabCorpNgramPred)
263 self.toolButtonCorpNgramPredsetText("...")
264 self.toolButtonCorpNgramPredreleased.connect(
265 self.on_corp_ngram_pred_db_tool_button_released)
266
267 self.labelCorpNgramPredN = QtWidgets.QLabel(self.tabCorpNgramPred)
268 self.labelCorpNgramPredN.setText("N-gram size:")
269
270 self.spinBoxCorpNgramPredN = QtWidgets.QSpinBox(self.tabCorpNgramPred)
271 self.spinBoxCorpNgramPredN.setButtonSymbols(
272 QtWidgets.QAbstractSpinBox.PlusMinus)
273 self.spinBoxCorpNgramPredN.setMinimum(1)
274 self.spinBoxCorpNgramPredN.setMaximum(8)
275
276 self.labelCorpNgramPredDeltas = QtWidgets.QLabel(self.tabCorpNgramPred)
277 self.labelCorpNgramPredDeltas.setText("Deltas:")
278
279 self.doubleSpinBoxCorpNgramPredDelta1 = QtWidgets.QDoubleSpinBox(
280 self.tabCorpNgramPred)
281 self.doubleSpinBoxCorpNgramPredDelta1.setButtonSymbols(
282 QtWidgets.QAbstractSpinBox.PlusMinus)
283 self.doubleSpinBoxCorpNgramPredDelta2 = QtWidgets.QDoubleSpinBox(
284 self.tabCorpNgramPred)
285 self.doubleSpinBoxCorpNgramPredDelta2.setButtonSymbols(
286 QtWidgets.QAbstractSpinBox.PlusMinus)
287 self.doubleSpinBoxCorpNgramPredDelta3 = QtWidgets.QDoubleSpinBox(
288 self.tabCorpNgramPred)
289 self.doubleSpinBoxCorpNgramPredDelta3.setButtonSymbols(
290 QtWidgets.QAbstractSpinBox.PlusMinus)
291 self.doubleSpinBoxCorpNgramPredDelta4 = QtWidgets.QDoubleSpinBox(
292 self.tabCorpNgramPred)
293 self.doubleSpinBoxCorpNgramPredDelta4.setButtonSymbols(
294 QtWidgets.QAbstractSpinBox.PlusMinus)
295 self.doubleSpinBoxCorpNgramPredDelta5 = QtWidgets.QDoubleSpinBox(
296 self.tabCorpNgramPred)
297 self.doubleSpinBoxCorpNgramPredDelta5.setButtonSymbols(
298 QtWidgets.QAbstractSpinBox.PlusMinus)
299 self.doubleSpinBoxCorpNgramPredDelta6 = QtWidgets.QDoubleSpinBox(
300 self.tabCorpNgramPred)
301 self.doubleSpinBoxCorpNgramPredDelta6.setButtonSymbols(
302 QtWidgets.QAbstractSpinBox.PlusMinus)
303 self.doubleSpinBoxCorpNgramPredDelta7 = QtWidgets.QDoubleSpinBox(
304 self.tabCorpNgramPred)
305 self.doubleSpinBoxCorpNgramPredDelta7.setButtonSymbols(
306 QtWidgets.QAbstractSpinBox.PlusMinus)
307 self.doubleSpinBoxCorpNgramPredDelta8 = QtWidgets.QDoubleSpinBox(
308 self.tabCorpNgramPred)
309 self.doubleSpinBoxCorpNgramPredDelta8.setButtonSymbols(
310 QtWidgets.QAbstractSpinBox.PlusMinus)
311
312 self.tabWidgetPreds.addTab(self.tabCorpNgramPred, "Corpus n-gram")
313
314 self.tabInpNgramPred = QtWidgets.QWidget()
315 self.gridLayout_13 = QtWidgets.QGridLayout(self.tabInpNgramPred)
316
317 self.labelInpNgramPredDb = QtWidgets.QLabel(self.tabInpNgramPred)
318 self.labelInpNgramPredsetText("Database file:")
319
320 self.lineEditInpNgramPredDb = QtWidgets.QLineEdit(self.tabInpNgramPred)
321
322 self.toolButtonInpNgramPredDb = QtWidgets.QToolButton(
323 self.tabInpNgramPred)
324 self.toolButtonInpNgramPredsetText("...")
325 self.toolButtonInpNgramPredreleased.connect(
326 self.on_inp_ngram_pred_db_tool_button_released)
327
328 self.labelInpNgramPredN = QtWidgets.QLabel(self.tabInpNgramPred)
329 self.labelInpNgramPredN.setText("N-gram size:")
330
331 self.spinBoxInpNgramPredN = QtWidgets.QSpinBox(self.tabInpNgramPred)
332 self.spinBoxInpNgramPredN.setButtonSymbols(
333 QtWidgets.QAbstractSpinBox.PlusMinus)
334 self.spinBoxInpNgramPredN.setMinimum(1)
335 self.spinBoxInpNgramPredN.setMaximum(8)
336
337 self.labelInpNgramPredDeltas = QtWidgets.QLabel(self.tabInpNgramPred)
338 self.labelInpNgramPredDeltas.setText("Deltas:")
339
340 self.doubleSpinBoxInpNgramPredDelta1 = QtWidgets.QDoubleSpinBox(
341 self.tabInpNgramPred)
342 self.doubleSpinBoxInpNgramPredDelta1.setButtonSymbols(
343 QtWidgets.QAbstractSpinBox.PlusMinus)
344 self.doubleSpinBoxInpNgramPredDelta2 = QtWidgets.QDoubleSpinBox(
345 self.tabInpNgramPred)
346 self.doubleSpinBoxInpNgramPredDelta2.setButtonSymbols(
347 QtWidgets.QAbstractSpinBox.PlusMinus)
348 self.doubleSpinBoxInpNgramPredDelta3 = QtWidgets.QDoubleSpinBox(
349 self.tabInpNgramPred)
350 self.doubleSpinBoxInpNgramPredDelta3.setButtonSymbols(
351 QtWidgets.QAbstractSpinBox.PlusMinus)
352 self.doubleSpinBoxInpNgramPredDelta4 = QtWidgets.QDoubleSpinBox(
353 self.tabInpNgramPred)
354 self.doubleSpinBoxInpNgramPredDelta4.setButtonSymbols(
355 QtWidgets.QAbstractSpinBox.PlusMinus)
356 self.doubleSpinBoxInpNgramPredDelta5 = QtWidgets.QDoubleSpinBox(
357 self.tabInpNgramPred)
358 self.doubleSpinBoxInpNgramPredDelta5.setButtonSymbols(
359 QtWidgets.QAbstractSpinBox.PlusMinus)
360 self.doubleSpinBoxInpNgramPredDelta6 = QtWidgets.QDoubleSpinBox(
361 self.tabInpNgramPred)
362 self.doubleSpinBoxInpNgramPredDelta6.setButtonSymbols(
363 QtWidgets.QAbstractSpinBox.PlusMinus)
364 self.doubleSpinBoxInpNgramPredDelta7 = QtWidgets.QDoubleSpinBox(
365 self.tabInpNgramPred)
366 self.doubleSpinBoxInpNgramPredDelta7.setButtonSymbols(
367 QtWidgets.QAbstractSpinBox.PlusMinus)
368 self.doubleSpinBoxInpNgramPredDelta8 = QtWidgets.QDoubleSpinBox(
369 self.tabInpNgramPred)
370 self.doubleSpinBoxInpNgramPredDelta8.setButtonSymbols(
371 QtWidgets.QAbstractSpinBox.PlusMinus)
372
373 self.tabWidgetPreds.addTab(self.tabInpNgramPred, "Input n-gram")
374
375 self.tabFbNgramPred = QtWidgets.QWidget()
376 self.gridLayout_41 = QtWidgets.QGridLayout(self.tabFbNgramPred)
377
378 self.labelFbNgramPredDb = QtWidgets.QLabel(self.tabFbNgramPred)
379 self.labelFbNgramPredsetText("Database file:")
380
381 self.lineEditFbNgramPredDb = QtWidgets.QLineEdit(self.tabFbNgramPred)
382
383 self.toolButtonFbNgramPredDb = QtWidgets.QToolButton(
384 self.tabFbNgramPred)
385 self.toolButtonFbNgramPredsetText("...")
386 self.toolButtonFbNgramPredreleased.connect(
387 self.on_fb_ngram_pred_db_tool_button_released)
388
389 self.labelFbNgramPredN = QtWidgets.QLabel(self.tabFbNgramPred)
390 self.labelFbNgramPredN.setText("N-gram size:")
391
392 self.spinBoxFbNgramPredN = QtWidgets.QSpinBox(self.tabFbNgramPred)
393 self.spinBoxFbNgramPredN.setButtonSymbols(
394 QtWidgets.QAbstractSpinBox.PlusMinus)
395 self.spinBoxFbNgramPredN.setMinimum(1)
396 self.spinBoxFbNgramPredN.setMaximum(8)
397
398 self.labelFbNgramPredDeltas = QtWidgets.QLabel(self.tabFbNgramPred)
399 self.labelFbNgramPredDeltas.setText("Deltas:")
400
401 self.doubleSpinBoxFbNgramPredDelta6 = QtWidgets.QDoubleSpinBox(
402 self.tabFbNgramPred)
403 self.doubleSpinBoxFbNgramPredDelta6.setButtonSymbols(
404 QtWidgets.QAbstractSpinBox.PlusMinus)
405 self.doubleSpinBoxFbNgramPredDelta2 = QtWidgets.QDoubleSpinBox(
406 self.tabFbNgramPred)
407 self.doubleSpinBoxFbNgramPredDelta2.setButtonSymbols(
408 QtWidgets.QAbstractSpinBox.PlusMinus)
409 self.doubleSpinBoxFbNgramPredDelta1 = QtWidgets.QDoubleSpinBox(
410 self.tabFbNgramPred)
411 self.doubleSpinBoxFbNgramPredDelta1.setButtonSymbols(
412 QtWidgets.QAbstractSpinBox.PlusMinus)
413 self.doubleSpinBoxFbNgramPredDelta5 = QtWidgets.QDoubleSpinBox(
414 self.tabFbNgramPred)
415 self.doubleSpinBoxFbNgramPredDelta5.setButtonSymbols(
416 QtWidgets.QAbstractSpinBox.PlusMinus)
417 self.doubleSpinBoxFbNgramPredDelta3 = QtWidgets.QDoubleSpinBox(
418 self.tabFbNgramPred)
419 self.doubleSpinBoxFbNgramPredDelta3.setButtonSymbols(
420 QtWidgets.QAbstractSpinBox.PlusMinus)
421 self.doubleSpinBoxFbNgramPredDelta4 = QtWidgets.QDoubleSpinBox(
422 self.tabFbNgramPred)
423 self.doubleSpinBoxFbNgramPredDelta4.setButtonSymbols(
424 QtWidgets.QAbstractSpinBox.PlusMinus)
425 self.doubleSpinBoxFbNgramPredDelta7 = QtWidgets.QDoubleSpinBox(
426 self.tabFbNgramPred)
427 self.doubleSpinBoxFbNgramPredDelta7.setButtonSymbols(
428 QtWidgets.QAbstractSpinBox.PlusMinus)
429 self.doubleSpinBoxFbNgramPredDelta8 = QtWidgets.QDoubleSpinBox(
430 self.tabFbNgramPred)
431 self.doubleSpinBoxFbNgramPredDelta8.setButtonSymbols(
432 QtWidgets.QAbstractSpinBox.PlusMinus)
433 self.tabWidgetPreds.addTab(self.tabFbNgramPred, 'Facebook n-gram')
434
435 self.tabLateOccurPred = QtWidgets.QWidget()
436 self.gridLayout_15 = QtWidgets.QGridLayout(self.tabLateOccurPred)
437 self.gridLayout_14.setSizeConstraint(
438 QtWidgets.QLayout.SetDefaultConstraint)
439
440 self.labelLateOccurPredCutoff = QtWidgets.QLabel(self.tabLateOccurPred)
441 self.labelLateOccurPredCutoff.setText("Cutoff threshold:")
442
443 self.spinBoxLateOccurPredCutoff = QtWidgets.QSpinBox(
444 self.tabLateOccurPred)
445 self.spinBoxLateOccurPredCutoff.setButtonSymbols(
446 QtWidgets.QAbstractSpinBox.PlusMinus)
447
448 self.labelLateOccurPredN0 = QtWidgets.QLabel(self.tabLateOccurPred)
449 self.labelLateOccurPredN0.setText("N0:")
450
451 self.spinBoxLateOccurPredN0 = QtWidgets.QSpinBox(self.tabLateOccurPred)
452 self.spinBoxLateOccurPredN0.setButtonSymbols(
453 QtWidgets.QAbstractSpinBox.PlusMinus)
454 self.spinBoxLateOccurPredN0.setMinimum(0)
455
456 self.labelLateOccurPredLambda = QtWidgets.QLabel(self.tabLateOccurPred)
457 self.labelLateOccurPredLambda.setText("Lambda:")
458 self.spinBoxLateOccurPredLambda = QtWidgets.QSpinBox(
459 self.tabLateOccurPred)
460 self.spinBoxLateOccurPredLambda.setButtonSymbols(
461 QtWidgets.QAbstractSpinBox.PlusMinus)
462 self.spinBoxLateOccurPredLambda.setMinimum(0)
463
464 self.tabWidgetPreds.addTab(self.tabLateOccurPred, "Late occur")
465
466 self.tabMemorizePred = QtWidgets.QWidget()
467 self.gridLayout_17 = QtWidgets.QGridLayout(self.tabMemorizePred)
468
469 self.labelMemorizePredMemory = QtWidgets.QLabel(self.tabMemorizePred)
470 self.labelMemorizePredMemory.setText("Memory file:")
471
472 self.lineEditMemorizePredMemory = QtWidgets.QLineEdit(
473 self.tabMemorizePred)
474
475 self.toolButtonMemorizePredMemory = QtWidgets.QToolButton(
476 self.tabMemorizePred)
477 self.toolButtonMemorizePredMemory.setText("...")
478 self.toolButtonMemorizePredMemory.released.connect(
479 self.on_dejavu_pred_memory_tool_button_released)
480
481 self.labelMemorizePredTrigger = QtWidgets.QLabel(self.tabMemorizePred)
482 self.labelMemorizePredTrigger.setText("Trigger:")
483
484 self.spinBoxMemorizePredTrigger = QtWidgets.QSpinBox(
485 self.tabMemorizePred)
486 self.spinBoxMemorizePredTrigger.setButtonSymbols(
487 QtWidgets.QAbstractSpinBox.PlusMinus)
488
489 self.tabWidgetPreds.addTab(self.tabMemorizePred, "Memorize")
490
491 self.tabWidgetSections.addTab(self.tabPredictor, "Predictor")
492
493 self.tabMerger = QtWidgets.QWidget()
494 self.gridLayout_38 = QtWidgets.QGridLayout(self.tabMerger)
495
496 self.groupBoxMerger = QtWidgets.QGroupBox(self.tabMerger)
497 self.groupBoxMerger.setTitle("Merger type")
498 self.gridLayout_22 = QtWidgets.QGridLayout(self.groupBoxMerger)
499
500 self.labelSelectMerger = QtWidgets.QLabel(self.groupBoxMerger)
501 self.labelSelectMerger.setText("Please select the Merger to use:")
502
503 self.comboBoxMergers = QtWidgets.QComboBox(self.groupBoxMerger)
504 self.comboBoxMergers.addItem("probabilistic")
505 self.comboBoxMergers.addItem("Alphabetical")
506
507 self.tabWidgetSections.addTab(self.tabMerger, "Merger")
508
509 self.tabSelector = QtWidgets.QWidget()
510 self.gridLayout_24 = QtWidgets.QGridLayout(self.tabSelector)
511
512 self.groupBoxSelector = QtWidgets.QGroupBox(self.tabSelector)
513 self.groupBoxSelector.setTitle("Selector\'s settings")
514 self.gridLayout_23 = QtWidgets.QGridLayout(self.groupBoxSelector)
515
516 self.labelSelectorGreedy = QtWidgets.QLabel(self.groupBoxSelector)
517 self.labelSelectorGreedy.setText("Greedy suggestions threshold:")
518
519 self.spinBoxSelectorGreedy = QtWidgets.QSpinBox(self.groupBoxSelector)
520 self.spinBoxSelectorGreedy.setButtonSymbols(
521 QtWidgets.QAbstractSpinBox.PlusMinus)
522
523 self.labelSelectorSuggestions = QtWidgets.QLabel(self.groupBoxSelector)
524 self.labelSelectorSuggestions.setText("Number of suggestions:")
525
526 self.spinBoxSelectorSuggestions = QtWidgets.QSpinBox(
527 self.groupBoxSelector)
528 self.spinBoxSelectorSuggestions.setButtonSymbols(
529 QtWidgets.QAbstractSpinBox.PlusMinus)
530
531 self.tabWidgetSections.addTab(self.tabSelector, "Selector")
532
533 self.tabStopList = QtWidgets.QWidget()
534 self.gridLayout_30 = QtWidgets.QGridLayout(self.tabStopList)
535
536 self.labelSelectStoplist = QtWidgets.QLabel(self.tabStopList)
537 self.labelSelectStoplist.setText("Please add the stoplists to use:")
538 self.verticalLayout.addWidget(self.labelSelectStoplist)
539
540 self.listStoplists = QtWidgets.QListWidget(self.tabStopList)
541 self.verticalLayout.addWidget(self.listStoplists)
542
543 self.pushButtonAddStoplist = QtWidgets.QPushButton(self.tabStopList)
544 self.pushButtonAddStoplist.setText("Add")
545 self.pushButtonAddStoplist.released.connect(
546 self.on_add_stoplist_btn_released)
547 self.horizontalLayout.addWidget(self.pushButtonAddStoplist)
548
549 self.pushButtonRmStoplist = QtWidgets.QPushButton(self.tabStopList)
550 self.pushButtonRmStoplist.setText("Remove")
551 self.pushButtonRmStoplist.released.connect(
552 self.on_rm_stoplist_btn_released)
553 self.horizontalLayout.addWidget(self.pushButtonRmStoplist)
554 self.verticalLayout.addLayout(self.horizontalLayout)
555
556 self.tabWidgetSections.addTab(self.tabStopList, "Stoplist")
557
558 self.gridLayout_26.addWidget(self.labelMinerSelection, 0, 0, 1, 1)
559 self.gridLayout_27.addWidget(self.checkBoxCorpMiner, 0, 0, 1, 1)
560 self.gridLayout_27.addWidget(self.checkBoxFbMiner, 0, 1, 1, 1)
561 self.gridLayout_27.addWidget(self.checkBoxTwitMiner, 1, 0, 1, 1)
562 self.gridLayout_26.addLayout(self.gridLayout_27, 1, 0, 1, 1)
563 self.gridLayout_25.addWidget(self.groupBoxMiners, 0, 0, 1, 1)
564 self.gridLayout_36.addWidget(self.labelCorpMinerFiles, 0, 0, 1, 1)
565 self.gridLayout_36.addLayout(self.verticalLayout_2, 0, 1, 1, 1)
566 self.gridLayout_36.addWidget(self.labelCorpMinerDb, 1, 0, 1, 1)
567 self.gridLayout_36.addWidget(self.LabelCorpMinerN, 2, 0, 1, 1)
568 self.gridLayout_36.addWidget(self.spinBoxCorpMinerN, 2, 1, 1, 1)
569 self.gridLayout_39.addWidget(self.lineEditCorpMinerDb, 0, 0, 1, 1)
570 self.gridLayout_39.addWidget(self.toolButtonCorpMiner, 0, 1, 1, 1)
571 self.gridLayout_36.addLayout(self.gridLayout_39, 1, 1, 1, 1)
572 self.gridLayout_36.addWidget(self.labelCorpMinerLower, 3, 0, 1, 1)
573 self.gridLayout_36.addWidget(self.checkBoxCorpMinerLower, 3, 1, 1, 1)
574 self.gridLayout_29.addLayout(self.gridLayout_36, 0, 0, 1, 1)
575 self.gridLayout_34.addWidget(self.LabelFbMinerN, 2, 0, 1, 1)
576 self.gridLayout_34.addWidget(
577 self.lineEditFbMinerAccessToken, 0, 1, 1, 1)
578 self.gridLayout_34.addWidget(self.LabelFbMinerDb, 1, 0, 1, 1)
579 self.gridLayout_34.addWidget(self.labelFbMinerAccessToken, 0, 0, 1, 1)
580 self.gridLayout_34.addWidget(self.spinBoxFbMinerN, 2, 1, 1, 1)
581 self.gridLayout_35.addWidget(self.lineEditFbMinerDb, 0, 0, 1, 1)
582 self.gridLayout_35.addWidget(self.toolButtonFbMiner, 0, 1, 1, 1)
583 self.gridLayout_34.addLayout(self.gridLayout_35, 1, 1, 1, 1)
584 self.gridLayout_34.addWidget(self.labelFbMinerLower, 3, 0, 1, 1)
585 self.gridLayout_34.addWidget(self.checkBoxFbMinerLower, 3, 1, 1, 1)
586 self.gridLayout_33.addLayout(self.gridLayout_34, 0, 0, 1, 1)
587 self.gridLayout_37.addWidget(self.labelTwitMinerSettings, 0, 0, 1, 1)
588 self.gridLayout_28.addWidget(self.tabWidgetMiners, 0, 0, 1, 1)
589 self.gridLayout_25.addWidget(self.groupBoxMinersSettings, 1, 0, 1, 1)
590 self.gridLayout_43.addLayout(self.gridLayout_25, 0, 0, 1, 1)
591 self.gridLayout_5.addWidget(self.label, 0, 0, 1, 1)
592 self.gridLayout_7.addWidget(self.checkBoxCorpNgramPred, 0, 0, 1, 1)
593 self.gridLayout_7.addWidget(self.checkBoxInpNgramPred, 0, 1, 1, 1)
594 self.gridLayout_7.addWidget(self.checkBoxFbNgramPred, 1, 0, 1, 1)
595 self.gridLayout_7.addWidget(self.checkBoxMemorizePred, 1, 1, 1, 1)
596 self.gridLayout_7.addWidget(self.checkBoxLateOccurPred, 2, 0, 1, 1)
597 self.gridLayout_5.addLayout(self.gridLayout_7, 1, 0, 1, 1)
598 self.gridLayout_2.addWidget(self.groupBoxPreds, 0, 0, 1, 1)
599 self.gridLayout_8.addWidget(self.spinBoxCorpNgramPredN, 1, 1, 1, 1)
600 self.gridLayout_18.addWidget(self.toolButtonCorpNgramPredDb, 0, 1, 1, 1)
601 self.gridLayout_18.addWidget(self.lineEditCorpNgramPredDb, 0, 0, 1, 1)
602 self.gridLayout_8.addLayout(self.gridLayout_18, 0, 1, 1, 1)
603 self.gridLayout_8.addWidget(self.labelCorpNgramPredDeltas, 2, 0, 1, 1)
604 self.gridLayout_8.addWidget(self.labelCorpNgramPredN, 1, 0, 1, 1)
605 self.gridLayout_8.addWidget(self.labelCorpNgramPredDb, 0, 0, 1, 1)
606 self.gridLayout_9.addWidget(
607 self.doubleSpinBoxCorpNgramPredDelta8, 1, 1, 1, 1)
608 self.gridLayout_9.addWidget(
609 self.doubleSpinBoxCorpNgramPredDelta2, 0, 1, 1, 1)
610 self.gridLayout_9.addWidget(
611 self.doubleSpinBoxCorpNgramPredDelta1, 0, 0, 1, 1)
612 self.gridLayout_9.addWidget(
613 self.doubleSpinBoxCorpNgramPredDelta6, 1, 0, 1, 1)
614 self.gridLayout_9.addWidget(
615 self.doubleSpinBoxCorpNgramPredDelta3, 0, 2, 1, 1)
616 self.gridLayout_9.addWidget(
617 self.doubleSpinBoxCorpNgramPredDelta4, 0, 3, 1, 1)
618 self.gridLayout_9.addWidget(
619 self.doubleSpinBoxCorpNgramPredDelta5, 1, 2, 1, 1)
620 self.gridLayout_9.addWidget(
621 self.doubleSpinBoxCorpNgramPredDelta7, 1, 3, 1, 1)
622 self.gridLayout_8.addLayout(self.gridLayout_9, 2, 1, 1, 1)
623 self.gridLayout_10.addLayout(self.gridLayout_8, 0, 0, 1, 1)
624 self.gridLayout_11.addWidget(self.labelInpNgramPredDb, 0, 0, 1, 1)
625 self.gridLayout_11.addWidget(self.labelInpNgramPredN, 1, 0, 1, 1)
626 self.gridLayout_11.addWidget(self.spinBoxInpNgramPredN, 1, 1, 1, 1)
627 self.gridLayout_11.addWidget(self.labelInpNgramPredDeltas, 2, 0, 1, 1)
628 self.gridLayout_12.addWidget(
629 self.doubleSpinBoxInpNgramPredDelta6, 1, 1, 1, 1)
630 self.gridLayout_12.addWidget(
631 self.doubleSpinBoxInpNgramPredDelta2, 0, 1, 1, 1)
632 self.gridLayout_12.addWidget(
633 self.doubleSpinBoxInpNgramPredDelta1, 0, 0, 1, 1)
634 self.gridLayout_12.addWidget(
635 self.doubleSpinBoxInpNgramPredDelta5, 1, 0, 1, 1)
636 self.gridLayout_12.addWidget(
637 self.doubleSpinBoxInpNgramPredDelta3, 0, 2, 1, 1)
638 self.gridLayout_12.addWidget(
639 self.doubleSpinBoxInpNgramPredDelta4, 0, 3, 1, 1)
640 self.gridLayout_12.addWidget(
641 self.doubleSpinBoxInpNgramPredDelta7, 1, 2, 1, 1)
642 self.gridLayout_12.addWidget(
643 self.doubleSpinBoxInpNgramPredDelta8, 1, 3, 1, 1)
644 self.gridLayout_11.addLayout(self.gridLayout_12, 2, 1, 1, 1)
645 self.gridLayout_19.addWidget(self.toolButtonInpNgramPredDb, 0, 1, 1, 1)
646 self.gridLayout_19.addWidget(self.lineEditInpNgramPredDb, 0, 0, 1, 1)
647 self.gridLayout_11.addLayout(self.gridLayout_19, 0, 1, 1, 1)
648 self.gridLayout_13.addLayout(self.gridLayout_11, 0, 0, 1, 1)
649 self.FBGRID.addWidget(self.labelFbNgramPredDb, 0, 0, 1, 1)
650 self.FBGRID.addWidget(self.labelFbNgramPredN, 1, 0, 1, 1)
651 self.FBGRID.addWidget(self.spinBoxFbNgramPredN, 1, 1, 1, 1)
652 self.FBGRID.addWidget(self.labelFbNgramPredDeltas, 2, 0, 1, 1)
653 self.gridLayout_32.addWidget(
654 self.doubleSpinBoxFbNgramPredDelta6, 1, 1, 1, 1)
655 self.gridLayout_32.addWidget(
656 self.doubleSpinBoxFbNgramPredDelta2, 0, 1, 1, 1)
657 self.gridLayout_32.addWidget(
658 self.doubleSpinBoxFbNgramPredDelta1, 0, 0, 1, 1)
659 self.gridLayout_32.addWidget(
660 self.doubleSpinBoxFbNgramPredDelta5, 1, 0, 1, 1)
661 self.gridLayout_32.addWidget(
662 self.doubleSpinBoxFbNgramPredDelta3, 0, 2, 1, 1)
663 self.gridLayout_32.addWidget(
664 self.doubleSpinBoxFbNgramPredDelta4, 0, 3, 1, 1)
665 self.gridLayout_32.addWidget(
666 self.doubleSpinBoxFbNgramPredDelta7, 1, 2, 1, 1)
667 self.gridLayout_32.addWidget(
668 self.doubleSpinBoxFbNgramPredDelta8, 1, 3, 1, 1)
669 self.FBGRID.addLayout(self.gridLayout_32, 2, 1, 1, 1)
670 self.gridLayout_40.addWidget(self.toolButtonFbNgramPredDb, 0, 1, 1, 1)
671 self.gridLayout_40.addWidget(self.lineEditFbNgramPredDb, 0, 0, 1, 1)
672 self.FBGRID.addLayout(self.gridLayout_40, 0, 1, 1, 1)
673 self.gridLayout_41.addLayout(self.FBGRID, 0, 0, 1, 1)
674 self.gridLayout_14.addWidget(self.labelLateOccurPredCutoff, 2, 0, 1, 1)
675 self.gridLayout_14.addWidget(self.labelLateOccurPredN0, 1, 0, 1, 1)
676 self.gridLayout_14.addWidget(self.labelLateOccurPredLambda, 0, 0, 1, 1)
677 self.gridLayout_14.addWidget(
678 self.spinBoxLateOccurPredLambda, 0, 1, 1, 1)
679 self.gridLayout_14.addWidget(self.spinBoxLateOccurPredN0, 1, 1, 1, 1)
680 self.gridLayout_14.addWidget(
681 self.spinBoxLateOccurPredCutoff, 2, 1, 1, 1)
682 self.gridLayout_15.addLayout(self.gridLayout_14, 0, 0, 1, 1)
683 self.gridLayout_16.addWidget(self.labelMemorizePredMemory, 0, 0, 1, 1)
684 self.gridLayout_16.addWidget(self.labelMemorizePredTrigger, 1, 0, 1, 1)
685 self.gridLayout_16.addWidget(
686 self.spinBoxMemorizePredTrigger, 1, 1, 1, 1)
687 self.gridLayout_20.addWidget(
688 self.toolButtonMemorizePredMemory, 0, 1, 1, 1)
689 self.gridLayout_20.addWidget(
690 self.lineEditMemorizePredMemory, 0, 0, 1, 1)
691 self.gridLayout_16.addLayout(self.gridLayout_20, 0, 1, 1, 1)
692 self.gridLayout_17.addLayout(self.gridLayout_16, 0, 0, 1, 1)
693 self.gridLayout_6.addWidget(self.tabWidgetPreds, 0, 0, 1, 1)
694 self.gridLayout_2.addWidget(self.groupBoxPredSettings, 1, 0, 1, 1)
695 self.gridLayout_4.addLayout(self.gridLayout_2, 0, 0, 1, 1)
696 self.gridLayout_22.addWidget(self.labelSelectMerger, 0, 0, 1, 1)
697 self.gridLayout_22.addWidget(self.comboBoxMergers, 1, 0, 1, 1)
698 self.gridLayout_21.addWidget(self.groupBoxMerger, 0, 0, 1, 1)
699 self.gridLayout_38.addLayout(self.gridLayout_21, 0, 0, 1, 1)
700 self.gridLayout_23.addWidget(self.labelSelectorGreedy, 1, 0, 1, 1)
701 self.gridLayout_23.addWidget(self.labelSelectorSuggestions, 0, 0, 1, 1)
702 self.gridLayout_23.addWidget(
703 self.spinBoxSelectorSuggestions, 0, 1, 1, 1)
704 self.gridLayout_23.addWidget(self.spinBoxSelectorGreedy, 1, 1, 1, 1)
705 self.gridLayout_24.addWidget(self.groupBoxSelector, 0, 0, 1, 1)
706 self.gridLayout.addWidget(self.tabWidgetSections, 0, 0, 1, 1)
707 self.gridLayout_3.addLayout(self.gridLayout, 0, 0, 1, 1)
708 self.gridLayout_30.addLayout(self.verticalLayout, 0, 0, 1, 1)
709 self.gridLayout.addWidget(self.tabWidgetSections, 0, 0, 1, 1)
710
712
713
714
715
716 miners = self.config.getas('MinerRegistry', 'miners', 'list')
717 self.checkBoxCorpMiner.setChecked('CorpusMiner' in miners)
718 self.checkBoxFbMiner.setChecked('FbMiner' in miners)
719 self.checkBoxTwitMiner.setChecked('TwitterMiner' in miners)
720
721
722 self.listCorpMinerFiles.clear()
723 files = self.config.getas('CorpusMiner', 'texts', 'list')
724 for f in files:
725 self.listCorpMinerFiles.addItem(f)
726
727 database = self.config.getas('CorpusMiner', 'database')
728 self.lineEditCorpMinersetText(database)
729
730 n = self.config.getas('CorpusMiner', 'n', 'int')
731 self.spinBoxCorpMinerN.setValue(n)
732
733 lower = self.config.getas('CorpusMiner', 'lowercase', 'bool')
734 self.checkBoxCorpMinerLower.setChecked(lower)
735
736
737 accessToken = self.config.getas('FbMiner', 'accesstoken')
738 self.lineEditFbMinerAccessToken.setText(accessToken)
739
740 database = self.config.getas('FbMiner', 'database')
741 self.lineEditFbMinersetText(database)
742
743 n = self.config.getas('FbMiner', 'n', 'int')
744 self.spinBoxFbMinerN.setValue(n)
745
746 lower = self.config.getas('FbMiner', 'lowercase', 'bool')
747 self.checkBoxFbMinerLower.setChecked(lower)
748
749
750
751 preds = self.config.getas('PredictorRegistry', 'predictors', 'list')
752 self.checkBoxCorpNgramPred.setChecked('CorpusNgramPredictor' in preds)
753 self.checkBoxInpNgramPred.setChecked('InputNgramPredictor' in preds)
754 self.checkBoxFbNgramPred.setChecked('FbNgramPredictor' in preds)
755 self.checkBoxLateOccurPred.setChecked('LateOccurPredictor' in preds)
756 self.checkBoxMemorizePred.setChecked('MemorizePredictor' in preds)
757
758
759 database = self.config.getas('CorpusNgramPredictor', 'database')
760 self.lineEditCorpNgramPredsetText(database)
761
762 deltas = self.config.getas(
763 'CorpusNgramPredictor', 'deltas', 'floatlist')
764 self.spinBoxCorpNgramPredN.setValue(len(deltas))
765
766 boxes = [self.doubleSpinBoxCorpNgramPredDelta1,
767 self.doubleSpinBoxCorpNgramPredDelta2,
768 self.doubleSpinBoxCorpNgramPredDelta3,
769 self.doubleSpinBoxCorpNgramPredDelta4,
770 self.doubleSpinBoxCorpNgramPredDelta5,
771 self.doubleSpinBoxCorpNgramPredDelta6,
772 self.doubleSpinBoxCorpNgramPredDelta7,
773 self.doubleSpinBoxCorpNgramPredDelta8]
774 for i, delta in enumerate(deltas):
775 boxes[i].setValue(delta)
776 for i in range(len(deltas) + 1, len(boxes)):
777 boxes[i].setValue(0)
778 boxes[i].setEnabled(False)
779
780
781 database = self.config.getas('InputNgramPredictor', 'database')
782 self.lineEditInpNgramPredsetText(database)
783
784 deltas = self.config.getas('InputNgramPredictor', 'deltas', 'floatlist')
785 self.spinBoxInpNgramPredN.setValue(len(deltas))
786
787 boxes = [self.doubleSpinBoxInpNgramPredDelta1,
788 self.doubleSpinBoxInpNgramPredDelta2,
789 self.doubleSpinBoxInpNgramPredDelta3,
790 self.doubleSpinBoxInpNgramPredDelta4,
791 self.doubleSpinBoxInpNgramPredDelta5,
792 self.doubleSpinBoxInpNgramPredDelta6,
793 self.doubleSpinBoxInpNgramPredDelta7,
794 self.doubleSpinBoxInpNgramPredDelta8]
795 for i, delta in enumerate(deltas):
796 boxes[i].setValue(delta)
797 for i in range(len(deltas) + 1, len(boxes)):
798 boxes[i].setValue(0)
799 boxes[i].setEnabled(False)
800
801
802 database = self.config.getas('FbNgramPredictor', 'database')
803 self.lineEditFbNgramPredsetText(database)
804
805 deltas = self.config.getas('FbNgramPredictor', 'deltas', 'floatlist')
806 self.spinBoxFbNgramPredN.setValue(len(deltas))
807
808 boxes = [self.doubleSpinBoxFbNgramPredDelta1,
809 self.doubleSpinBoxFbNgramPredDelta2,
810 self.doubleSpinBoxFbNgramPredDelta3,
811 self.doubleSpinBoxFbNgramPredDelta4,
812 self.doubleSpinBoxFbNgramPredDelta5,
813 self.doubleSpinBoxFbNgramPredDelta6,
814 self.doubleSpinBoxFbNgramPredDelta7,
815 self.doubleSpinBoxFbNgramPredDelta8]
816 for i, delta in enumerate(deltas):
817 boxes[i].setValue(delta)
818 for i in range(len(deltas) + 1, len(boxes)):
819 boxes[i].setValue(0)
820 boxes[i].setEnabled(False)
821
822
823 lambdar = self.config.getas('LateOccurPredictor', 'lambda', 'int')
824 self.spinBoxLateOccurPredLambda.setValue(lambdar)
825
826 n0 = self.config.getas('LateOccurPredictor', 'n_0', 'int')
827 self.spinBoxLateOccurPredN0.setValue(n0)
828
829 cutoff = self.config.getas(
830 'LateOccurPredictor', 'cutoff_threshold', 'int')
831 self.spinBoxLateOccurPredCutoff.setValue(cutoff)
832
833
834 memory = self.config.getas('MemorizePredictor', 'memory')
835 self.lineEditMemorizePredMemory.setText(memory)
836
837 trigger = self.config.getas('MemorizePredictor', 'trigger', 'int')
838 self.spinBoxMemorizePredTrigger.setValue(trigger)
839
840
841 Merger = self.config.getas(
842 'PredictorActivator', 'merging_method').lower()
843 if Merger == 'probabilistic':
844 self.comboBoxMergers.setCurrentIndex(probabilistic_Merger)
845 elif Merger == 'alphabetical':
846 self.comboBoxMergers.setCurrentIndex(ALPHABETICAL_Merger)
847
848
849 noSuggestions = self.config.getas('Selector', 'suggestions', 'int')
850 self.spinBoxSelectorSuggestions.setValue(noSuggestions)
851
852 greedyTreshold = self.config.getas(
853 'Selector', 'greedy_suggestion_threshold', 'int')
854 self.spinBoxSelectorGreedy.setValue(greedyTreshold)
855
856
857 self.listStoplists.clear()
858 stoplists = self.config.getas('PredictorActivator', 'stoplist', 'list')
859 for sl in stoplists:
860 self.listStoplists.addItem(sl)
861
865
866 - def done(self, code):
868
870
871
872
873
874 self.config['MinerRegistry']['MINERS'] = ''
875 if self.checkBoxCorpMiner.isChecked():
876 self.config['MinerRegistry']['MINERS'] += 'CorpusMiner '
877 if self.checkBoxFbMiner.isChecked():
878 self.config['MinerRegistry']['MINERS'] += 'FbMiner '
879 if self.checkBoxTwitMiner.isChecked():
880 self.config['MinerRegistry']['MINERS'] += 'TwitterMiner '
881
882
883 self.config['CorpusMiner']['TEXTS'] = ''
884 for index in range(self.listCorpMinerFiles.count()):
885 self.config['CorpusMiner']['TEXTS'] += \
886 self.listCorpMinerFiles.item(index).text() + ' '
887
888 self.config['CorpusMiner']['database'] = \
889 self.lineEditCorpMinertext()
890
891 self.config['CorpusMiner']['n'] = \
892 str(self.spinBoxCorpMinerN.value())
893
894 if self.checkBoxCorpMinerLower.isChecked():
895 self.config['CorpusMiner']['lowercase'] = 'True'
896 else:
897 self.config['CorpusMiner']['lowercase'] = 'False'
898
899
900 self.config['FbMiner']['ACCESSTOKEN'] = \
901 self.lineEditFbMinerAccessToken.text()
902
903 self.config['FbMiner']['database'] = self.lineEditFbMinertext()
904
905 self.config['FbMiner']['n'] = \
906 str(self.spinBoxFbMinerN.value())
907
908 if self.checkBoxFbMinerLower.isChecked():
909 self.config['FbMiner']['lowercase'] = 'True'
910 else:
911 self.config['FbMiner']['lowercase'] = 'False'
912
913
914
915 self.config['PredictorRegistry']['PREDICTORS'] = ''
916 if self.checkBoxCorpNgramPred.isChecked():
917 self.config['PredictorRegistry']['PREDICTORS'] += \
918 'CorpusNgramPredictor '
919 if self.checkBoxInpNgramPred.isChecked():
920 self.config['PredictorRegistry']['PREDICTORS'] += \
921 'InputNgramPredictor '
922 if self.checkBoxFbNgramPred.isChecked():
923 self.config['PredictorRegistry']['PREDICTORS'] += \
924 'FbNgramPredictor '
925 if self.checkBoxLateOccurPred.isChecked():
926 self.config['PredictorRegistry']['PREDICTORS'] += \
927 'LateOccurPredictor '
928 if self.checkBoxMemorizePred.isChecked():
929 self.config['PredictorRegistry']['PREDICTORS'] += \
930 'MemorizePredictor '
931
932
933 self.config['CorpusNgramPredictor']['database'] = \
934 self.lineEditCorpNgramPredtext()
935
936 self.config['CorpusNgramPredictor']['DELTAS'] = ''
937 boxes = [self.doubleSpinBoxCorpNgramPredDelta1,
938 self.doubleSpinBoxCorpNgramPredDelta2,
939 self.doubleSpinBoxCorpNgramPredDelta3,
940 self.doubleSpinBoxCorpNgramPredDelta4,
941 self.doubleSpinBoxCorpNgramPredDelta5,
942 self.doubleSpinBoxCorpNgramPredDelta6,
943 self.doubleSpinBoxCorpNgramPredDelta7,
944 self.doubleSpinBoxCorpNgramPredDelta8]
945 for box in boxes:
946 if box.isEnabled() and box.value() != 0:
947 self.config['CorpusNgramPredictor']['DELTAS'] += \
948 str(box.value()) + ' '
949
950
951 self.config['InputNgramPredictor']['database'] = \
952 self.lineEditInpNgramPredtext()
953
954 deltas = self.config['InputNgramPredictor']['DELTAS'].split()
955 self.spinBoxInpNgramPredN.setValue(len(deltas))
956
957 self.config['InputNgramPredictor']['DELTAS'] = ''
958 boxes = [self.doubleSpinBoxInpNgramPredDelta1,
959 self.doubleSpinBoxInpNgramPredDelta2,
960 self.doubleSpinBoxInpNgramPredDelta3,
961 self.doubleSpinBoxInpNgramPredDelta4,
962 self.doubleSpinBoxInpNgramPredDelta5,
963 self.doubleSpinBoxInpNgramPredDelta6,
964 self.doubleSpinBoxInpNgramPredDelta7,
965 self.doubleSpinBoxInpNgramPredDelta8]
966 for box in boxes:
967 if box.isEnabled() and box.value() != 0:
968 self.config['InputNgramPredictor']['DELTAS'] += \
969 str(box.value()) + ' '
970
971
972 self.config['FbNgramPredictor']['database'] = \
973 self.lineEditFbNgramPredtext()
974
975 deltas = self.config['FbNgramPredictor']['DELTAS'].split()
976 self.spinBoxFbNgramPredN.setValue(len(deltas))
977
978 self.config['FbNgramPredictor']['DELTAS'] = ''
979 boxes = [self.doubleSpinBoxFbNgramPredDelta1,
980 self.doubleSpinBoxFbNgramPredDelta2,
981 self.doubleSpinBoxFbNgramPredDelta3,
982 self.doubleSpinBoxFbNgramPredDelta4,
983 self.doubleSpinBoxFbNgramPredDelta5,
984 self.doubleSpinBoxFbNgramPredDelta6,
985 self.doubleSpinBoxFbNgramPredDelta7,
986 self.doubleSpinBoxFbNgramPredDelta8]
987 for box in boxes:
988 if box.isEnabled() and box.value() != 0:
989 self.config['FbNgramPredictor']['DELTAS'] += \
990 str(box.value()) + ' '
991
992
993 self.config['LateOccurPredictor']['LAMBDA'] = \
994 str(self.spinBoxLateOccurPredLambda.value())
995
996 self.config['LateOccurPredictor']['N_0'] = \
997 str(self.spinBoxLateOccurPredN0.value())
998
999 self.config['LateOccurPredictor']['CUTOFF_THRESHOLD'] = \
1000 str(self.spinBoxLateOccurPredCutoff.value())
1001
1002
1003 self.config['MemorizePredictor']['MEMORY'] = \
1004 self.lineEditMemorizePredMemory.text()
1005
1006 self.config['MemorizePredictor']['TRIGGER'] = \
1007 str(self.spinBoxMemorizePredTrigger.value())
1008
1009
1010 self.config['PredictorActivator']['merging_method'] = \
1011 self.comboBoxMergers.currentText()
1012
1013
1014 self.config['Selector']['SUGGESTIONS'] = \
1015 str(self.spinBoxSelectorSuggestions.value())
1016
1017 self.config['Selector']['GREEDY_SUGGESTION_THRESHOLD'] = \
1018 str(self.spinBoxSelectorGreedy.value())
1019 lg.info('Configuration file saved.')
1020
1022 if path.startswith(self.cwd):
1023 return path.replace(self.cwd, '.')
1024 return path
1025
1027 cwd = path.dirname(path.realpath(__file__))
1028 fName = QtWidgets.QFileDialog.getOpenFileName(
1029 self, "Open text file", cwd)
1030 if fName[0]:
1031 self.listCorpMinerFiles.addItem(self.shorten_path(fName[0]))
1032
1034 listItems = self.listCorpMinerFiles.selectedItems()
1035 if not listItems:
1036 return
1037 for item in listItems:
1038 self.listCorpMinerFiles.takeItem(self.listCorpMinerFiles.row(item))
1039
1041 cwd = path.dirname(path.realpath(__file__))
1042 fName = QtWidgets.QFileDialog.getOpenFileName(
1043 self, "Open text file", cwd)
1044 if fName[0]:
1045 self.listStoplists.addItem(self.shorten_path(fName[0]))
1046
1048 listItems = self.listStoplists.selectedItems()
1049 if not listItems:
1050 return
1051 for item in listItems:
1052 self.listStoplists.takeItem(self.listStoplists.row(item))
1053
1060
1067
1074
1081
1088
1095