#nlp #syllable #language #language-model #text

syllarust

一个用于快速计数的简单crate

2个版本

0.1.1 2024年5月7日
0.1.0 2024年3月12日

#680 in 文本处理

Apache-2.0

19KB
305

syllarust

一个在Rust中本地实现的简单音节计数器。这是基于python-syllables团队的工作,该团队在Python中实现了相同的功能。

我的目标是给Rust带来同样的便利/简单性——并使用Rust的无畏并发模型来帮助提高音节计数生成的速度/质量。这意味着如果你正在尝试为大型NLP/LLM应用程序生成音节计数,其中速度很重要,这可能正是你需要的crate!

使用Rayon的并行代码片段

use syllarust::estimate_syllables;
use rayon::prelude::*;

fn main() {
    let test_strs: Vec<&str> = vec![
        "Apple",
        "Tart",
        "plate",
        "Pontificate",
        "Hello"
    ];
    
    let start = Instant::now();
    let results: Vec<usize> = test_strs.par_iter()
        .map(|s| estimate_syllables(s))
        .collect();

    let stop = Instant::now();
    println!("{:?}", stop - start);
    println!("{:?}", results);
}

贡献/问题

这是一个正在进行的仓库。如果你有任何功能请求/发现错误,请给我留一个问题,我会尽力解决。我也欢迎合理的PR。

如果你是一个更有经验的Rust开发者,你发现任何低效之处,我将非常感激你的反馈。我是一个相对较新的Rustacean 🦀,全职作为一名Python原生ML工程师,因此我有时可能会做一些愚蠢的事情。

依赖项

~3.5–4.5MB
~79K SLoC