full_scores/
full_scores.rs1use kenlm::Model;
2use std::env;
3
4fn main() -> Result<(), kenlm::KenlmError> {
5 let mut args = env::args().skip(1);
6 let model_path = args.next().unwrap_or_else(|| "lm/test.arpa".to_string());
7 let sentence = args.collect::<Vec<_>>().join(" ");
8 let sentence = if sentence.is_empty() {
9 "looking on a little"
10 } else {
11 sentence.as_str()
12 };
13
14 let model = Model::new(model_path)?;
15 let scores = model.full_scores(sentence, true, true)?;
16
17 for (word, score) in sentence
18 .split_whitespace()
19 .chain(std::iter::once("</s>"))
20 .zip(scores)
21 {
22 println!(
23 "{word}\tlog10={:.6}\tngram_length={}\toov={}",
24 score.log_prob, score.ngram_length, score.oov
25 );
26 }
27
28 Ok(())
29}