Skip to content

Commit f438d48

Browse files
committed
Add total row to entities.csv
1 parent 0d82d52 commit f438d48

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

server/src/main/kotlin/org/ivdnt/galahad/evaluation/entities/CorpusEntities.kt

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,12 @@ class CorpusEntities(
7474
fun toCsv(entities: CorpusEntities): CsvString = buildString {
7575
val header = getHeader(entities)
7676
append(CsvFile.toCsvString(header))
77-
77+
val total = getTotalDocument(entities)
78+
append(CsvFile.toCsvString(total))
79+
// add other docs
7880
getDocs(entities).forEach { doc ->
7981
val row = mutableListOf<Any>(doc)
82+
// labels of each job
8083
getJobs(entities).forEach { job ->
8184
getLabels(entities.jobs[job]!!).forEach { label ->
8285
row.add(entities.jobs[job]!!.documents[doc]?.summary?.get(label) ?: 0)
@@ -96,6 +99,24 @@ class CorpusEntities(
9699

97100
}
98101

102+
private fun getTotalDocument(entities: CorpusEntities): MutableList<Any> {
103+
// add a fake "total" document
104+
val total = mutableListOf<Any>("total")
105+
getJobs(entities).forEach { job ->
106+
getLabels(entities.jobs[job]!!).forEach { label ->
107+
total.add(entities.jobs[job]!!.summary[label] ?: 0)
108+
}
109+
total.add(entities.jobs[job]?.total ?: 0)
110+
}
111+
// stddevs
112+
getLabels(entities).forEach { label ->
113+
total.add(entities.stddev.stddev[label]?.toFixed() ?: 0.0)
114+
}
115+
// stddev average
116+
total.add(entities.stddev.average.toFixed())
117+
return total
118+
}
119+
99120
private fun getLabels(entities: CorpusEntities): List<String> = entities.stddev.stddev.keys.sorted()
100121
private fun getLabels(job: JobEntities): List<String> = job.summary.keys.sorted()
101122
private fun getJobs(entities: CorpusEntities): List<String> = entities.jobs.keys.sorted()

0 commit comments

Comments
 (0)