@@ -36,6 +36,41 @@ export default (dataset, varName) => {
3636 }
3737 case "number_of_classifications" :
3838 return dataset . interface . labels . length
39+ case "average_number_of_interactions_per_image" :
40+ // find completed samples
41+ const completedSamples = dataset . samples . filter ( ( s ) => s . annotation )
42+ let totalInteractions = 0
43+ let totalSamplesConsidered = 0
44+ for ( const { annotation } of completedSamples ) {
45+ if ( totalSamplesConsidered > 10 ) break
46+ if ( typeof annotation === "object" && annotation . length ) {
47+ totalSamplesConsidered += 1
48+ for ( const { points } of annotation ) {
49+ if ( points ) {
50+ totalInteractions += points . length
51+ } else {
52+ totalInteractions += 1
53+ }
54+ }
55+ }
56+ }
57+ if ( totalSamplesConsidered < 1 )
58+ throw new Error (
59+ "Not enough completed samples to compute average_number_of_interactions_per_image"
60+ )
61+ return totalInteractions / totalSamplesConsidered
62+ case "number_of_exclusive_classifications" :
63+ return dataset . interface . multiple ? 0 : dataset . interface . labels . length
64+ case "number_of_nonexclusive_classifications" :
65+ return dataset . interface . multiple ? dataset . interface . labels . length : 0
66+ case "average_text_length" :
67+ return (
68+ dataset . samples
69+ . map ( ( s ) => s . document . length )
70+ . reduce ( ( acc , l ) => acc + l , 0 ) / dataset . samples . length
71+ )
72+ case "number_of_labels" :
73+ return dataset . interface . labels . length
3974 default :
4075 throw new Error ( `Don't know how to compute "${ varName } "` )
4176 }
0 commit comments