Skip to content
Snippets Groups Projects
Select Git revision
  • 067f000ffa597492db309397ebee69c6348e5352
  • main default protected
2 results

report.py

Blame
  • report.py 1.99 KiB
    #!/usr/bin/python3.10
    # -*-coding:Utf-8 -*
    
    #==============================================================================
    # ontoScorer: [brief description of the module]
    #------------------------------------------------------------------------------
    # Detailed module description, if needed
    #==============================================================================
    
    class Report:
        def __init__(self, reference_ontology, generated_ontology, comparison_result, metrics):
            self.reference_ontology = reference_ontology
            self.generated_ontology = generated_ontology
            self.comparison_result = comparison_result
            self.metrics = metrics
    
        def generate(self):
            report_str = "=== Ontology Evaluation Report ===\n"
    
            report_str += f"\nReference Ontology: {self.reference_ontology.path}"
            report_str += f"\nNumber of classes in Reference Ontology: {len(self.reference_ontology.classes)}"
    
            report_str += f"\n\nGenerated Ontology: {self.generated_ontology.path}"
            report_str += f"\nNumber of classes in Generated Ontology: {len(self.generated_ontology.classes)}"
    
            # Comparison of the number of classes
            report_str += "\n\nComparison Result: "
            if len(self.reference_ontology.classes) > len(self.generated_ontology.classes):
                report_str += "The generated ontology has fewer classes than the reference ontology."
            elif len(self.reference_ontology.classes) < len(self.generated_ontology.classes):
                report_str += "The generated ontology has more classes than the reference ontology."
            else:
                report_str += "The generated ontology and the reference ontology have the same number of classes."
    
            report_str += "\n\nEvaluation Metrics:"
            report_str += f'\nPrecision: {self.metrics.scores["overall"]["precision"]}'
            report_str += f'\nRecall: {self.metrics.scores["overall"]["recall"]}'
            report_str += f'\nF1 Score: {self.metrics.scores["overall"]["f1"]}'
    
            return report_str