Skip to content

Commit 3fbf1f1

Browse files
committed
compute dataset variables for some new variables
1 parent c4d9984 commit 3fbf1f1

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/utils/compute-dataset-variable.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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 { regionType, 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

Comments
 (0)