def __init__(self, reader, graph_builder, ranker, eval_parameters, ranking_cutoff, mesh_tree_filename, distance_matrix_filename, distance_function, umls_converter_data_filename, umls_concept_data_filename, output_file): logging.debug("Setting up a Workflow instance.") logging.debug("My reader is: %r", reader) self._reader = reader logging.debug("My graph builder is: %r", graph_builder) self._graph_builder = graph_builder self._ranker = MappedRanker(ranker) logging.debug("My ranker is: %r", self._ranker) self._ranking_cutoff = ranking_cutoff logging.debug("My ranking cutoff is: %r", self._ranking_cutoff) logging.debug("Creating a Tree instance from %s", mesh_tree_filename) self._mesh_tree = Tree(mesh_tree_filename) logging.debug( "Creating SAVCC distance matrix with %r and distance " "function %r", distance_matrix_filename, distance_function) self._matrix = SavccNormalizedMatrix( open(distance_matrix_filename, "rb"), distance_function) logging.debug("Filling in the rest of the evaluation parameters.") self._eval_parameters = eval_parameters self._eval_parameters.mesh_tree = self._mesh_tree self._eval_parameters.savcc_matrix = self._matrix logging.debug("My evaluation parameters are: %r", self._eval_parameters) if umls_converter_data_filename is None: converter_data = None else: converter_data = pickle.load( open(umls_converter_data_filename, "rb")) self._umls_converter = RankedConverter( Converter(self._mesh_tree, converter_data)) logging.debug("My converter is: %r", self._umls_converter) logging.debug("Initializing Concept storage from %s", umls_concept_data_filename) if umls_concept_data_filename is None: Concept.init_storage() else: Concept.init_storage(StringDBDict(umls_concept_data_filename)) self._output_file = output_file logging.debug("My output file is: %r", self._output_file) return
def create_converter(self, mesh_tree, converter_data): """Creates and returns the UMLS converter we'll use - override for easy customization""" return RankedConverter(Converter(mesh_tree, converter_data))