@@ -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