diff --git a/UD_any/print_results.py b/UD_any/print_results.py index a17da5e77fd9e2649971d3cb4db8a9de034b3b73..976b85a9e370796810539964c76e8c4598cf1f68 100755 --- a/UD_any/print_results.py +++ b/UD_any/print_results.py @@ -18,9 +18,10 @@ if __name__ == "__main__" : print("\t"+line,end="", file=sys.stderr) for pathToFile in glob.iglob("" + '*stdout') : - model = pathToFile.split('.')[0] - corpus = (".".join(pathToFile.split('.')[1:])).split('.')[0] - index = (".".join(pathToFile.split('.')[1:])).split('.')[1] + splited = pathToFile.split('.') + model = ".".join(splited[:-3]) + corpus = splited[-3] + index = splited[-2] if corpus not in outputByModelScore : outputByModelScore[corpus] = dict() @@ -50,29 +51,32 @@ if __name__ == "__main__" : standardDeviation += (float(exp[2])-score)**2 standardDeviation /= len(outputByModelScore[corpus][model][metric]) standardDeviation = math.sqrt(standardDeviation) + baseScore = score if standardDeviation > 0 : score = "%.2f[±%.2f]%%"%(score,standardDeviation) else : score = "%.2f%%"%score + if '-' in score : + score = score.replace('-','').replace('%','') output.append(outputByModelScore[corpus][model][metric][0]) output[-1][2] = score + output[-1] = [baseScore] + output[-1] if len(output) == 0 : print("ERROR : Output length is 0", file=sys.stderr) print(" did you run evaluate.sh ?", file=sys.stderr) exit(1) + output.sort() + output = [val[1:] for val in output] + maxColLens = [0 for _ in range(len(output[0]))] output = [["Corpus","Metric","F1.score","Model"]] + output for line in output : for i in range(len(line)) : - maxColLens[i] = max(maxColLens[i], len(line[i])) - - output = output[1:] - output.sort() - output = [["Corpus","Metric","F1.score","Model"]] + output + maxColLens[i] = max(maxColLens[i], len(str(line[i]))) dashLine = '-' * 80 for i in range(len(output)) : @@ -81,6 +85,6 @@ if __name__ == "__main__" : elif i > 0 and output[i][1] != output[i-1][1] : print("") for j in range(len(output[i])) : - padding = (' '*(maxColLens[j]-len(output[i][j])))+" "*3 + padding = (' '*(maxColLens[j]-len(str(output[i][j]))))+" "*3 print(output[i][j], end=padding) print("")