def validate(self): # type: () -> None """Ensures that the loaded training data is valid, e.g. has a minimum of certain training examples.""" logger.debug("Validating training data...") examples = self.sorted_intent_examples() different_intents = [] for intent, group in groupby(examples, lambda e: e.get("intent")): size = len(list(group)) different_intents.append(intent) if size < self.MIN_EXAMPLES_PER_INTENT: template = "Intent '{}' has only {} training examples! minimum is {}, training may fail." warnings.warn(template.format(intent, size, self.MIN_EXAMPLES_PER_INTENT)) different_entities = [] for entity, group in groupby(self.sorted_entity_examples(), lambda e: e["entity"]): size = len(list(group)) different_entities.append(entity) if size < self.MIN_EXAMPLES_PER_ENTITY: template = "Entity '{}' has only {} training examples! minimum is {}, training may fail." warnings.warn(template.format(entity, size, self.MIN_EXAMPLES_PER_ENTITY)) logger.info("Training data stats: \n" + "\t- intent examples: {} ({} distinct intents)\n".format( self.num_intent_examples, len(different_intents)) + "\t- found intents: {}\n".format(list_to_str(different_intents)) + "\t- entity examples: {} ({} distinct entities)\n".format( self.num_entity_examples, len(different_entities)) + "\t- found entities: {}\n".format(list_to_str(different_entities)))
def validate(self): # type: () -> None """Ensures that the loaded training data is valid, e.g. has a minimum of certain training examples.""" logger.debug("Validating training data...") examples = self.sorted_intent_examples() different_intents = [] for intent, group in groupby(examples, lambda e: e.get("intent")): size = len(list(group)) different_intents.append(intent) if size < self.MIN_EXAMPLES_PER_INTENT: template = "Intent '{}' has only {} training examples! minimum is {}, training may fail." warnings.warn(template.format(intent, size, self.MIN_EXAMPLES_PER_INTENT)) different_entities = [] for entity, group in groupby(self.sorted_entity_examples(), lambda e: e["entity"]): size = len(list(group)) different_entities.append(entity) if size < self.MIN_EXAMPLES_PER_ENTITY: template = "Entity '{}' has only {} training examples! minimum is {}, training may fail." warnings.warn(template.format(entity, size, self.MIN_EXAMPLES_PER_ENTITY)) logger.info("Training data stats: \n" + "\t- intent examples: {} ({} distinct intents)\n".format( self.num_intent_examples, len(different_intents)) + "\t- found intents: {}\n".format(list_to_str(different_intents)) + "\t- entity examples: {} ({} distinct entities)\n".format( self.num_entity_examples, len(different_entities)) + "\t- found entities: {}\n".format(list_to_str(different_entities)))
def print_stats(self): logger.info( "Training data stats: \n" + "\t- intent examples: {} ({} distinct intents)\n".format( len(self.intent_examples), len(self.intents)) + "\t- Found intents: {}\n".format(list_to_str(self.intents)) + "\t- entity examples: {} ({} distinct entities)\n".format( len(self.entity_examples), len(self.entities)) + "\t- found entities: {}\n".format(list_to_str(self.entities)))
def print_stats(self): logger.info("Training data stats: \n" + "\t- intent examples: {} ({} distinct intents)\n".format( len(self.intent_examples), len(self.intents)) + "\t- Found intents: {}\n".format( list_to_str(self.intents)) + "\t- entity examples: {} ({} distinct entities)\n".format( len(self.entity_examples), len(self.entities)) + "\t- found entities: {}\n".format( list_to_str(self.entities)))