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 中使用
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
另请参阅
- pyawabi https://github.com/nakagami/pyawabi Python 封装
- exawabi https://github.com/nakagami/exawabi Elixir 封装
- goawabi https://github.com/nakagami/goawabi Go 实现
- pure-pyawabi https://github.com/nakagami/pure-pyawabi Python 实现
- Awabi.jl https://github.com/nakagami/Awabi.jl Julia 实现
依赖
~2.8–4MB
~62K SLoC