1use char_trie::Trie;
2use std::fs::File;
3use std::io::{BufRead, BufReader};
4
5pub fn main() {
6 let mut trie = Trie::new_big();
8
9 let start = std::time::Instant::now();
10
11 for line in BufReader::new(File::open("dict/default.dic").unwrap()).lines() {
12 let line = line.unwrap();
13 let parts: Vec<&str> = line.split('\t').collect();
14 if parts.len() == 3 {
15 trie.insert(
16 parts[0],
17 (parts[1].to_string(), parts[2].parse::<i32>().unwrap()),
18 );
19 }
20 }
21
22 trie.insert("中国人", (String::from("ud"), 10000));
23
24 println!("load dict use {:?}", start.elapsed());
25
26 let text = "我爱北京天安门,天安门上太阳升。我是中国人,我爱中国。";
27
28 for token in trie.iter_all(text) {
29 println!("{:?}", token);
30 }
31
32 let c: Vec<_> = trie.iter_all(text).map(|t| t.0).collect();
33 println!("{:?}", c);
34}