Skip to content
Snippets Groups Projects
evaluate.py 1.17 KiB
#!/usr/bin/env -S PYTHONPATH=lib/python python3

from GEODE.Visualisation import heatmap
from GEODE.Classification import discursiveFunctions, knowledgeDomains
import pandas
from sklearn.metrics import classification_report, confusion_matrix
from sys import argv

def evaluate(truth, predictions, outputDirectory):
    matrix = confusion_matrix(truth,
                              predictions,
                              labels=knowledgeDomains,
                              #labels=discursiveFunctions
                              normalize='true')
    heatmap(matrix,
            f"{outputDirectory}/confusion.png",
            labels=knowledgeDomains)
            #labels=discursiveFunctions)
    with open(f"{outputDirectory}/report.json", 'w') as json:
        print(classification_report(truth, predictions, output_dict=True),
              file=json)
    with open(f"{outputDirectory}/report.txt", 'w') as txt:
        print(classification_report(truth, predictions),
              file=txt)

if __name__ == '__main__':
    truth = pandas.read_csv(argv[1], sep='\t')
    predictions = pandas.read_csv(argv[2], sep='\t')
    evaluate(truth['super_domain'], predictions['label'], argv[3])