text_score/commons.rs
1
2/// Represents precision, recall, and F1 score.
3///
4/// The `Score` struct contains three floating-point fields: `precision`, `recall`, and `f1`.
5/// These fields represent evaluation metrics commonly used in natural language processing and information retrieval.
6///
7/// ### Examples
8/// ```
9/// use text_score::commons::Score;
10///
11/// // Create a Score instance
12/// let score = Score {
13/// precision: 0.8,
14/// recall: 0.7,
15/// f1: 0.75,
16/// };
17///
18/// // Access individual fields
19/// assert_eq!(score.precision, 0.8);
20/// assert_eq!(score.recall, 0.7);
21/// assert_eq!(score.f1, 0.75);
22/// ```
23pub struct Score{
24 pub precision: f32,
25 pub recall:f32,
26 pub f1:f32,
27}
28pub fn precision(true_pos:u32, false_pos:u32) -> f32{
29 return true_pos as f32 /((true_pos+false_pos) as f32);
30}
31pub fn recall(true_pos:u32, false_neg:u32) -> f32{
32 return true_pos as f32 /((true_pos+false_neg) as f32);
33}
34pub fn f1(precision: f32, recall: f32) -> f32{
35 return 2.0*(precision*recall)/(precision+recall);
36}