Skip to content

Commit

Permalink
fix: Merge pull request #229 from UniversalDataTool/feat/new-compute-…
Browse files Browse the repository at this point in the history
…dataset-variables

Compute dataset variables for some new variables (label help)
  • Loading branch information
seveibar authored Jul 21, 2020
2 parents c4d9984 + 7e7f3c7 commit 0d50ef5
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions src/utils/compute-dataset-variable.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,41 @@ export default (dataset, varName) => {
}
case "number_of_classifications":
return dataset.interface.labels.length
case "average_number_of_interactions_per_image":
// find completed samples
const completedSamples = dataset.samples.filter((s) => s.annotation)
let totalInteractions = 0
let totalSamplesConsidered = 0
for (const { annotation } of completedSamples) {
if (totalSamplesConsidered > 10) break
if (typeof annotation === "object" && annotation.length) {
totalSamplesConsidered += 1
for (const { points } of annotation) {
if (points) {
totalInteractions += points.length
} else {
totalInteractions += 1
}
}
}
}
if (totalSamplesConsidered < 1)
throw new Error(
"Not enough completed samples to compute average_number_of_interactions_per_image"
)
return totalInteractions / totalSamplesConsidered
case "number_of_exclusive_classifications":
return dataset.interface.multiple ? 0 : dataset.interface.labels.length
case "number_of_nonexclusive_classifications":
return dataset.interface.multiple ? dataset.interface.labels.length : 0
case "average_text_length":
return (
dataset.samples
.map((s) => s.document.length)
.reduce((acc, l) => acc + l, 0) / dataset.samples.length
)
case "number_of_labels":
return dataset.interface.labels.length
default:
throw new Error(`Don't know how to compute "${varName}"`)
}
Expand Down

0 comments on commit 0d50ef5

Please sign in to comment.