1use char_trie::Trie;
2use std::fs::File;
3use std::io::{BufRead, BufReader};
4
5pub fn main() {
6 let mut trie = Trie::default();
7 let start = std::time::Instant::now();
8
9 for line in BufReader::new(File::open("dict/default.dic").unwrap()).lines() {
10 let line = line.unwrap();
11 let parts: Vec<&str> = line.split('\t').collect();
12 if parts.len() == 3 {
13 trie.insert(
14 parts[0],
15 (parts[1].to_string(), parts[2].parse::<i32>().unwrap()),
16 );
17 }
18 }
19
20 println!("load dict use {:?}", start.elapsed());
21
22 let file = std::fs::read_to_string("dict/big_text.txt").unwrap();
23
24 let start = std::time::Instant::now();
25 let mut len = 0;
26
27 file.lines().for_each(|line| {
28 let result: Vec<_> = trie.iter_max(line).map(|t| t.0).collect();
29 len += result.len();
30 println!("{:?}", result);
31 });
32
33 println!("text parse token:{} use {:?}", len, start.elapsed());
34}