#mecab #形态 #词典 #分析器 #标记 #me-cab

bin+lib awabi

基于 MeCab 词典的形态分析器

13 个版本

0.3.0 2021 年 12 月 26 日
0.2.10 2021 年 6 月 12 日
0.2.8 2020 年 8 月 22 日
0.2.6 2020 年 7 月 26 日
0.1.0 2020 年 3 月 13 日

#1079 in 文本处理


pyawabi 中使用

MIT 许可证

50KB
983

awabi

awabi 是一个使用 MeCab 词典的形态分析器,用 Rust 编写。

要求和安装方法

需要 MeCab 及相关词典。

Debian/Ubuntu

$ sudo apt install mecab mecab-ipadic-utf8
$ cargo install awabi

Mac OS X (homebrew)

$ brew install mecab
$ brew install mecab-ipadic
$ cargo install awabi

使用方法

作为库使用

最佳标记

示例

use awabi::tokenizer;
fn main() {
    let tokenizer = tokenizer::Tokenizer::new(None).unwrap();
    let tokens = tokenizer.tokenize("すもももももももものうち");
    for token in tokens.iter() {
        println!("{}\t{}", token.0, token.1);
    }
}

结果

すもも	名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	助詞,係助詞,*,*,*,*,,,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,,,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
の	助詞,連体化,*,*,*,*,,,ノ
うち	名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ

N-best 标记

示例

use awabi::tokenizer;
fn main() {
    let tokenizer = tokenizer::Tokenizer::new(None).unwrap();
    let tokens_list = tokenizer.tokenize_n_best("すもももももももものうち", 3);
    for tokens in tokens_list.iter() {
        println!("------------------------------------------------------");
        for token in tokens.iter() {
            println!("{}\token{}", token.0, token.1);
        }
    }
}

结果

------------------------------------------------------
すもも	oken名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	oken助詞,係助詞,*,*,*,*,,,モ
もも	oken名詞,一般,*,*,*,*,もも,モモ,モモ
も	oken助詞,係助詞,*,*,*,*,,,モ
もも	oken名詞,一般,*,*,*,*,もも,モモ,モモ
の	oken助詞,連体化,*,*,*,*,,,ノ
うち	oken名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
------------------------------------------------------
すもも	oken名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	oken助詞,係助詞,*,*,*,*,,,モ
もも	oken名詞,一般,*,*,*,*,もも,モモ,モモ
もも	oken名詞,一般,*,*,*,*,もも,モモ,モモ
も	oken助詞,係助詞,*,*,*,*,,,モ
の	oken助詞,連体化,*,*,*,*,,,ノ
うち	oken名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
------------------------------------------------------
すもも	oken名詞,一般,*,*,*,*,すもも,スモモ,スモモ
もも	oken名詞,一般,*,*,*,*,もも,モモ,モモ
も	oken助詞,係助詞,*,*,*,*,,,モ
もも	oken名詞,一般,*,*,*,*,もも,モモ,モモ
も	oken助詞,係助詞,*,*,*,*,,,モ
の	oken助詞,連体化,*,*,*,*,,,ノ
うち	oken名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ

使用指定的 mecabrc

use awabi::tokenizer;
fn main() {
    let tokenizer = tokenizer::Tokenizer::new(Some("/some/where/mecabrc")).unwrap();
    let tokens = tokenizer.tokenize("すもももももももものうち");
    for token in tokens.iter() {
        println!("{}\t{}", token.0, token.1);
    }
}

awabi 命令

$ echo 'すもももももももものうち'  | awabi
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
$ echo 'すもももももももものうち'  | awabi -N 2
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
      助詞,係助詞,*,*,*,*,も,モ,モ
      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

另请参阅

依赖

~2.8–4MB
~62K SLoC