#segmentation #search-engine

jiebars

Jieba 词分割 Rust 版本实现

1 个不稳定版本

0.1.0 2022年11月7日

#17 in #segmentation

MIT 协议

2MB
36K SLoC

jiebars

jieba分词Rust版实现

特点

  • 支持4种模式
    • 全模式:将句子中所有可成词的词语都扫描出来,速度非常快,但不能解决歧义
    • 精确模式:试图将句子最精确地切开,适合文本分析
    • 新词识别模式:对于未登录词,采用基于汉字成词能力的 HMM 模型,使用 Viterbi 算法
    • 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

代码示例

use jiebars::Jieba;

fn main() {
    let jieba = Jieba::new().unwrap();

    //全模式
    let mut words = jieba.cut("我来到北京清华大学", true, false);

    println!("\n【全模式】:{}\n", words.join(" / "));

    //精确模式
    words = jieba.cut("他来到了网易杭研大厦", false, false);

    println!("【精确模式】:{}\n", words.join(" / "));

    //新词识别模式
    words = jieba.cut("他来到了网易杭研大厦", false, true);

    println!("【新词识别模式】:{}\n", words.join(" / "));

    //搜索引擎模式
    words = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造");

    println!("【搜索引擎模式】:{}\n", words.join(" / "));
}

输出

【全模式】:我 / 来 / 来到 / 到 / 北 / 北京 / 京 / 清 / 清华 / 清华大学 / 华 / 华大 / 大 / 大学 / 学

【精确模式】:他 / 来到 / 了 / 网易 / 杭 / 研 / 大厦

【新词识别模式】:他 / 来到 / 了 / 网易 / 杭研 / 大厦

【搜索引擎模式】:小明 / 硕士 / 毕业 / 于 / 中国 / 科学 / 中国科学院 / 计算 / 计算所 / 后 / 后在 / 日本 / 京都 / 日本京都大学 / 深造

依赖

~2.8–4.5MB
~78K SLoC