awabi

Crates.ioawabi
lib.rsawabi
version0.3.0
sourcesrc
created_at2020-03-13 12:12:41.212309
updated_at2021-12-26 01:28:34.303389
descriptionA morphological analyzer using mecab dictionary
homepage
repositoryhttps://github.com/nakagami/awabi
max_upload_size
id218127
size55,156
Hajime Nakagami (nakagami)

documentation

README

awabi

awabi is a morphological analyzer using mecab dictionary, written in Rust.

Requirements and how to install

MeCab https://taku910.github.io/mecab/ and related dictionary is required.

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

How to use

use as library

Best tokens

example

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);
    }
}

result

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

N-best tokens

example

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);
        }
    }
}

result

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

Use the specified 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 command

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

See also

Commit count: 60

cargo fmt