-
Alice Brenon authored2fbe96cd
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])