def report(self, show_flag: bool = True)\ -> Dict[str, Dict[str, Dict[str, float]]]: """ :param show_flag: if True, output reports to a console :return: reports for all, unknown only and known only NEs {'all': {'NELABEL1': {'precision': 0.000, 'recall': 0.000, 'f1_score': 0.00}, 'NELABEL2': {'precision': ...}, ... 'unknown': ..., 'known': ..., 'misses': ... }} """ sentences = self._dataset.get_sentences('test') known_words = self._dataset.known_NEs() predicts = self._model.predict_all(self.test_data[0]) miner = Miner(self.test_data[1], predicts, sentences, known_words) return { 'all': miner.default_report(show_flag), 'unknown': miner.unknown_only_report(show_flag), 'known': miner.known_only_report(show_flag), 'misses': miner.return_miss_labelings(), 'seg': { type_: miner.segmentation_score(type_, show_flag) for type_ in ['all', 'unknown', 'known'] } }