1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! Text / NLP Evaluation Metrics
//!
//! Standalone functions for evaluating text generation, machine translation,
//! and speech recognition systems.
//!
//! # Sub-modules
//!
//! - [`bleu`] -- BLEU score (1 through 4-gram)
//! - [`rouge`] -- ROUGE-1, ROUGE-2, ROUGE-L
//! - [`meteor`] -- METEOR score
//! - [`error_rate`] -- Character Error Rate (CER) and Word Error Rate (WER)
//!
//! # Quick Example
//!
//! ```
//! use scirs2_metrics::text_metrics::bleu::bleu_score;
//! use scirs2_metrics::text_metrics::rouge::{rouge_1, rouge_2, rouge_l};
//! use scirs2_metrics::text_metrics::meteor::meteor_score;
//! use scirs2_metrics::text_metrics::error_rate::{word_error_rate, character_error_rate};
//!
//! let reference = "the cat sat on the mat";
//! let candidate = "the cat sits on a mat";
//!
//! let bleu = bleu_score(reference, candidate, 4, true).expect("Failed");
//! let r1 = rouge_1(reference, candidate).expect("Failed");
//! let r2 = rouge_2(reference, candidate).expect("Failed");
//! let rl = rouge_l(reference, candidate).expect("Failed");
//! let met = meteor_score(reference, candidate).expect("Failed");
//! let wer = word_error_rate(reference, candidate).expect("Failed");
//! let cer = character_error_rate(reference, candidate).expect("Failed");
//! ```
/// Simple whitespace tokenizer that lowercases and strips punctuation.
///
/// This is shared across sub-modules.
pub
/// Extract n-grams from a token sequence.
pub