Crate haoxue_dict

source ·
Expand description

§haoxue-dict

A Chinese dictionary and word segmenter.

§Dictionary usage

use haoxue_dict::DICTIONARY;

let entry = DICTIONARY.get_entry("你好").unwrap();
assert_eq!(entry.simplified(), "你好");
assert_eq!(entry.pinyin(), "ni3 hao3");
assert_eq!(prettify_pinyin::prettify(entry.pinyin()), "nǐ hǎo");
use haoxue_dict::DICTIONARY;

let entry = DICTIONARY.get_entry("们").unwrap();
assert_eq!(entry.traditional(), "們");
assert_eq!(entry.pinyin(), "men5");
assert_eq!(prettify_pinyin::prettify(entry.pinyin()), "men");
use haoxue_dict::DICTIONARY;

// 们 is more common than 大学
assert!(DICTIONARY.frequency("们") > DICTIONARY.frequency("大学"));

§Segmenter usage

use haoxue_dict::{DICTIONARY, DictEntry};
use either::Either;

let segments = DICTIONARY.segment("明天我会去图书馆。")
                .iter()
                .map(|segment| segment.map_left(DictEntry::simplified))
                .collect::<Vec<_>>();
assert_eq!(segments, vec![
    Either::Left("明天"),
    Either::Left("我"),
    Either::Left("会"),
    Either::Left("去"),
    Either::Left("图书馆"),
    Either::Right("。")
]);

§Feature flags

  • embed-dict: Embed the dictionary in the binary. This is the default feature and adds about 12.4 MiB to the binary size.

Structs§

  • Represents a single dictionary entry in the CC-CEDICT format.
  • A Chinese dictionary and word segmenter.

Statics§

  • Built-in dictionary. Requires the embed-dict feature.