#words #correct #auto #service #edit #english-words #suggestions

auto_correct

提供自动更正建议的库。目前支持 EN-US。

7 个版本

使用旧的 Rust 2015

0.1.9 2019 年 4 月 3 日
0.1.8 2019 年 3 月 17 日
0.1.5 2018 年 6 月 13 日
0.1.2 2018 年 5 月 16 日

#14#english-words

MIT 许可证

5.5MB
1.5K SLoC

Rust 1K SLoC // 0.1% comments Python 164 SLoC // 0.1% comments

[Auto_Correct] docsrs

Rusty_Express on crates.io Rusty_Express on docs.rs

这是什么

此库提供在 1 ~ 3 修改距离内的单词自动更正建议服务。其中 1 修改距离表示以下操作之一:插入、删除、替换或交换。请注意,编辑距离的学术定义不包括交换操作,通常将替换操作视为 2 修改距离,这并不反映人类倾向于犯的典型打字错误。

目前该项目仅支持英语单词更正,我们计划将服务扩展到更多语言。

如何使用

在项目的 Cargo.toml 中添加依赖项

[dependencies]
auto_correct = "^0.1.0"
...

src\main.rs

extern crate auto_correct;

use auto_correct::prelude::*;

fn main() {
    // Initialize the service. By default we use the EN-US dictionary with frequency pre-defined, and only give suggestions
    // within 1 edit distance.
    let correct_service = AutoCorrect::new();

    // Vector `results` contains an array of the `Candidate` objects, which is sorted by scores
    let results = correct_service.candidates("wodr");

    // Print out the result to the screen
    for idx in 0..results.len() {
        println!("Suggestion #{}: {}; Score: {}; Edit Distance: {}",
                    idx, results[idx].word, results[idx].score, results[idx].edit);
    }
}

或者,如果您想使用更响应式的方法,可以使用 candidate_async 函数来获取更正

extern crate auto_correct;

use std::sync::mpsc;
use auto_correct::prelude::*;

fn main() {
    // Initialize the service
    let correct_service = AutoCorrect::new();
    let (tx, rx) = mpsc::channel();

    // Vector `results` contains an array of the `Candidate` objects, which is sorted by scores
    correct_service.candidates_async("wodr", tx);

    // Print out the result to the screen when receiving new suggestions. Note that the received results are not ranked.
    for result in rx {
        println!("Suggestion: {}; Score: {}; Edit Distance: {}",
                 result.word, result.score, result.edit);
    }
}

依赖项