def get_json_data(self, request, *args, **kwargs): doc_class_name = kwargs.get('document_class') doc_class_fields = DOCUMENT_FIELDS.get(doc_class_name) if not doc_class_fields: return [] return sorted([{ 'code': f.field_code, 'name': f.name, 'type': f.field_type.value } for f_name, f in doc_class_fields.items()], key=lambda k: k['name'])
def process(self, **kwargs): self.log('Going to train field detector model based on the datasets stored in DB...') document_class = kwargs.get('document_class') task_id = kwargs.get('task_id') if document_class: TrainFieldDetectorModel.train_model_for_document_class( document_class, task_id) else: for document_class, fields in DOCUMENT_FIELDS.items(): TrainFieldDetectorModel.train_model_for_document_class( document_class, task_id)
class TrainFieldDetectorModelForm(forms.Form): header = 'Train Field Detector Model' _document_classes = list(DOCUMENT_FIELDS.keys()) _document_classes.sort() _document_classes = [('', 'All')] + [(d, d) for d in _document_classes] document_class = forms.ChoiceField(choices=_document_classes, required=False) def _post_clean(self): super()._post_clean() self.cleaned_data['module_name'] = MODULE_NAME
def process(self, **kwargs): self.log_info('Going to train field detector model based on the datasets stored in DB...') document_class = kwargs.get('document_class') if document_class: TrainFieldDetectorModel.local_train_model_for_document_class(self, document_class) else: train_model_for_document_class_args = [] for document_class, fields in DOCUMENT_FIELDS.items(): train_model_for_document_class_args.append((document_class,)) self.run_sub_tasks('Train Model For Each Document Class', TrainFieldDetectorModel.train_model_for_document_class, train_model_for_document_class_args)
def process(self, **kwargs): self.log_info( "Going to prepare datasets based on the pre-coded regexps and annotations" "entered by users...") document_class = kwargs.get('document_class') document_ids = kwargs.get('document_ids') if document_class: self.build_sentences_to_fields_relations_dataset( document_class, document_ids) else: for document_class, fields in DOCUMENT_FIELDS.items(): self.build_sentences_to_fields_relations_dataset( document_class, document_ids)
def get_json_data(self, request, *args, **kwargs): if request.method == 'PUT': data = json.loads(request.body.decode('utf-8')) field_code = data.get('field') if not field_code: return { 'error': None, 'value': data.get('value') } doc_class_name, field = field_code.split('__') value = data['value'] doc_class_fields = DOCUMENT_FIELDS.get(doc_class_name) if not doc_class_fields: return { 'error': 'Unknown document class: {0}'.format(doc_class_name), 'value': None } field_config = doc_class_fields.get(field) if not field_config: return { 'error': 'Field {1} is not configured for document class: {0}'.format( doc_class_name, field), 'value': None } doc_id = kwargs.get('document_id') doc_class = field_config.document_class doc = doc_class.objects.get(pk=doc_id) if field_config: val = field_config.set_value_from_selection(doc, value) doc.save() return { 'error': None, 'value': val } else: return { 'error': 'No such field: {0}'.format(field), 'value': None } return None
def process(self, **kwargs): self.task.log_info( "Going to prepare datasets based on the pre-coded regexps and annotations" "entered by users...") document_class = kwargs.get('document_class') document_ids = kwargs.get('document_ids') task_count = 0 if document_class: task_count += BuildFieldDetectorDataset.build_sentences_to_fields_relations_dataset( document_class, document_ids, self.task) else: for document_class, fields in DOCUMENT_FIELDS.items(): task_count += BuildFieldDetectorDataset.build_sentences_to_fields_relations_dataset( document_class, document_ids, self.task) self.task.update_subtasks_total(task_count)
def _get_doc_class(doc_class_name: str): field_configs = DOCUMENT_FIELDS.get(doc_class_name) if not field_configs: return None for field_config in field_configs.values(): return field_config.document_class