Skip to content
Snippets Groups Projects
Commit 14c1d786 authored by Franck Dary's avatar Franck Dary
Browse files

Added more stats

parent ebab4ba3
No related branches found
No related tags found
No related merge requests found
......@@ -97,6 +97,8 @@ class Block() :
"nbErr" : 0,
"avgDist" : 0.0,
"avgIndex" : 0.0,
"maxIndex" : 0.0,
"maxDist" : 0.0,
})
#-------------------------------------------------------------------------------
......@@ -189,6 +191,16 @@ class History() :
"backPrecision" : 0.0,
"backRecall" : 0.0,
"backFScore" : 0.0,
"nbRedone" : 0,
"nbRedoneDiminishErr" : 0,
"nbRedoneAugmentErr" : 0,
"redoneAvgErrChange" : 0,
"nbRedoneErrErr" : 0,
"nbRedoneErrCorrect" : 0,
"nbRedoneCorrectErr" : 0,
"nbRedoneCorrectCorrect" : 0,
"redoneErrErrAvgDistChange" : 0.0,
"redoneErrErrAvgIndexChange" : 0.0,
}
for sentence in self.sentences :
globalStats["nbWords"] += len(sentence[0])
......@@ -212,11 +224,33 @@ class History() :
stats["nbErr"] += 1
stats["avgDist"] += step.distance
stats["avgIndex"] += step.oracleIndex
stats["maxDist"] = max(stats["maxDist"], step.distance)
stats["maxIndex"] = max(stats["maxIndex"], step.oracleIndex)
if i == 0 :
globalStats["nbActions"] += len(version)
globalStats["nbErr"] += stats["nbErr"]
if len(block.versions) > 1 :
globalStats["nbErrFound"] += stats["nbErr"]
if i == 1 :
prevStats = block.stats[i-1]
globalStats["nbRedone"] += 1
distChange = prevStats["maxDist"] - stats["maxDist"]
indexChange = prevStats["maxIndex"] - stats["maxIndex"]
if prevStats["nbErr"] > 0 and stats["nbErr"] > 0 :
globalStats["nbRedoneErrErr"] += 1
globalStats["redoneErrErrAvgDistChange"] += distChange
globalStats["redoneErrErrAvgIndexChange"] += indexChange
if prevStats["nbErr"] == 0 and stats["nbErr"] > 0 :
globalStats["nbRedoneCorrectErr"] += 1
if prevStats["nbErr"] == 0 and stats["nbErr"] == 0 :
globalStats["nbRedoneCorrectCorrect"] += 1
if prevStats["nbErr"] > 0 and stats["nbErr"] == 0 :
globalStats["nbRedoneErrCorrect"] += 1
if prevStats["nbErr"] > stats["nbErr"] :
globalStats["nbRedoneDiminishErr"] += 1
if prevStats["nbErr"] < stats["nbErr"] :
globalStats["nbRedoneAugmentErr"] += 1
globalStats["redoneAvgErrChange"] += stats["nbErr"] - prevStats["nbErr"]
if stats["nbErr"] > 0 :
stats["avgDist"] /= stats["nbErr"]
stats["avgIndex"] /= stats["nbErr"]
......@@ -243,21 +277,32 @@ class History() :
if backOnErr :
globalStats["backOnErr"] += 1
if globalStats["nbActions"] > 0 :
globalStats["actionAccuracy"] = (globalStats["nbActions"]-globalStats["nbErr"])/globalStats["nbActions"]
globalStats["actionAccuracy"] = 100.0*(globalStats["nbActions"]-globalStats["nbErr"])/globalStats["nbActions"]
if globalStats["nbActionsParser"] > 0 :
globalStats["actionAccuracyParser"] = (globalStats["nbActionsParser"]-globalStats["nbErrParser"])/globalStats["nbActionsParser"]
globalStats["actionAccuracyParser"] = 100.0*(globalStats["nbActionsParser"]-globalStats["nbErrParser"])/globalStats["nbActionsParser"]
if globalStats["nbArcs"] > 0 :
globalStats["arcsAccuracy"] = (globalStats["nbArcs"]-globalStats["nbMissedArcs"])/globalStats["nbArcs"]
globalStats["arcsAccuracy"] = 100.0*(globalStats["nbArcs"]-globalStats["nbMissedArcs"])/globalStats["nbArcs"]
if globalStats["nbErr"] > 0 :
globalStats["avgErrCost"] /= globalStats["nbErr"]
if globalStats["nbErr"] > 0 :
globalStats["avgErrCostParser"] /= globalStats["nbErrParser"]
if globalStats["nbErr"] > 0 :
globalStats["backRecall"] = globalStats["nbErrFound"] / globalStats["nbErr"]
globalStats["backRecall"] = 100.0*globalStats["nbErrFound"] / globalStats["nbErr"]
if globalStats["nbBack"] > 0 :
globalStats["backPrecision"] = globalStats["backOnErr"] / globalStats["nbBack"]
globalStats["backPrecision"] = 100.0*globalStats["backOnErr"] / globalStats["nbBack"]
if globalStats["backPrecision"] + globalStats["backRecall"] > 0.0 :
globalStats["backFScore"] = 2*(globalStats["backPrecision"] * globalStats["backRecall"])/(globalStats["backPrecision"] + globalStats["backRecall"])
if globalStats["nbRedone"] :
globalStats["redoneAvgErrChange"] /= globalStats["nbRedone"]
globalStats["nbRedoneDiminishErr"] /= globalStats["nbRedone"] * (1/100)
globalStats["nbRedoneAugmentErr"] /= globalStats["nbRedone"] * (1/100)
globalStats["nbRedoneCorrectCorrect"] /= globalStats["nbRedone"] * (1/100)
globalStats["nbRedoneErrErr"] /= globalStats["nbRedone"] * (1/100)
globalStats["nbRedoneCorrectErr"] /= globalStats["nbRedone"] * (1/100)
globalStats["nbRedoneErrCorrect"] /= globalStats["nbRedone"] * (1/100)
if globalStats["nbRedoneErrErr"] :
globalStats["redoneErrErrAvgDistChange"] /= globalStats["nbRedoneErrErr"]
globalStats["redoneErrErrAvgIndexChange"] /= globalStats["nbRedoneErrErr"]
return globalStats
#-------------------------------------------------------------------------------
......@@ -334,6 +379,11 @@ class History() :
#-------------------------------------------------------------------------------
################################################################################
################################################################################
def prettyNumber(num) :
return ("%.2f"%num).rstrip(".0")
################################################################################
################################################################################
if __name__ == "__main__" :
parser = argparse.ArgumentParser()
......@@ -356,6 +406,9 @@ if __name__ == "__main__" :
history.printHumanReadable(sys.stdout)
if args.stats :
print(stats)
asList = [list(stats.keys()), list(stats.values())]
maxLen = max(map(len, asList[0]))
for i in range(len(asList[0])) :
print("%s %s"%(asList[0][i]+"."*(1+maxLen-len(asList[0][i])), prettyNumber(asList[1][i])))
################################################################################
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment