#![warn(missing_docs)]
pub mod coref {
pub use anno_core::core::coref::*;
}
pub mod types {
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Serialize, Deserialize, Default)]
pub struct CorefChainStats {
pub long_chain_count: usize,
pub short_chain_count: usize,
pub singleton_count: usize,
pub long_chain_f1: f64,
pub short_chain_f1: f64,
pub singleton_f1: f64,
}
impl CorefChainStats {
#[must_use]
pub fn total_chains(&self) -> usize {
self.long_chain_count + self.short_chain_count + self.singleton_count
}
#[must_use]
pub fn weighted_f1(&self) -> f64 {
let total = self.total_chains();
if total == 0 {
return 0.0;
}
let weighted_sum = self.long_chain_f1 * self.long_chain_count as f64
+ self.short_chain_f1 * self.short_chain_count as f64
+ self.singleton_f1 * self.singleton_count as f64;
weighted_sum / total as f64
}
}
}
pub mod coref_metrics;
pub mod cluster_encoder;