Skip to content
An unofficial Sudachi clone in Rust 🦀
Rust Shell
Branch: develop
Clone or download
sorami Merge pull request #5 from sorami/add-resources-dir
Add an empty resources/ dir for the dictionary
Latest commit 3600c8e Dec 5, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Add an empty resources/ dir for the dictionary Dec 5, 2019
.gitignore Initial commit Nov 23, 2019
Cargo.lock Initial commit Nov 23, 2019
Cargo.toml Initial commit Nov 23, 2019
README.md Update README.md Nov 23, 2019
fetch_dictionary.sh Initial commit Nov 23, 2019
logo.png

README.md

sudachi.rs

sudachi.rs logo

An unofficial Sudachi clone in Rust 🦀

日本語 README

Example

Multi-granular Tokenization

$ echo 選挙管理委員会 | sudachi
選挙管理委員会	名詞,固有名詞,一般,*,*,*	選挙管理委員会
EOS

$ echo 選挙管理委員会 | sudachi --mode A
選挙	名詞,普通名詞,サ変可能,*,*,*	選挙
管理	名詞,普通名詞,サ変可能,*,*,*	管理
委員	名詞,普通名詞,一般,*,*,*	委員
会	名詞,普通名詞,一般,*,*,*	会
EOS

Normalized Form

$ echo 打込む かつ丼 附属 vintage | sudachi
打込む	動詞,一般,*,*,五段-マ行,終止形-一般	打ち込む
 	空白,*,*,*,*,*
かつ丼	名詞,普通名詞,一般,*,*,*	カツ丼
 	空白,*,*,*,*,*
附属	名詞,普通名詞,サ変可能,*,*,*	付属
 	空白,*,*,*,*,*
vintage	名詞,普通名詞,一般,*,*,*	ビンテージ

Wakati (space-delimited surface form) Output

$ cat lemon.txt
えたいの知れない不吉な塊が私の心を始終圧えつけていた。
焦躁と言おうか、嫌悪と言おうか――酒を飲んだあとに宿酔があるように、酒を毎日飲んでいると宿酔に相当した時期がやって来る。
それが来たのだ。これはちょっといけなかった。

$ sudachi --wakati lemon.txt
えたい の 知れ ない 不吉 な 塊 が 私 の 心 を 始終 圧え つけ て い た 。
焦躁 と 言おう か 、 嫌悪 と 言おう か ― ― 酒 を 飲ん だ あと に 宿酔 が ある よう に 、 酒 を 毎日 飲ん で いる と 宿酔 に 相当 し た 時期 が やっ て 来る 。
それ が 来 た の だ 。 これ は ちょっと いけ なかっ た 。

Usage

$ sudachi -h
sudachi 0.1.0
A Japanese tokenizer

USAGE:
    sudachi [FLAGS] [OPTIONS] [file]

FLAGS:
    -d, --debug      Debug mode: Dumps lattice
    -h, --help       Prints help information
    -a, --all        Prints all fields
    -V, --version    Prints version information
    -w, --wakati     Outputs only surface form

OPTIONS:
    -m, --mode <mode>    Split unit: "A" (short), "B" (middle), or "C" (Named Entity) [default: C]

ARGS:
    <file>    Input text file: If not present, read from STDIN

Setup

1. Get the source code

$ git clone https://github.com/sorami/sudachi.rs.git

2. Download a Sudachi Dictionary

You can download a dictionary zip file from WorksApplications/SudachiDict (choose one from small, core, or full), unzip it, and place the system_*.dic file to src/resources/system.dic (Note that the file name is changed to system.dic) .

Alternatively, you can use a quick shell script in the source code; This script will download the core dictionary and place it to src/resources/system.dic.

$ ./fetch_dictionary.sh

3. Build, Install

The built executable will contain the dictionary binary.

$ cargo build

or

sudachi.rs/ $ cargo install --path .

$ which sudachi
/Users/<USER>/.cargo/bin/sudachi

$ sudachi -h
sudachi 0.1.0
A Japanese tokenizer
...

ToDo

  • Out of Vocabulary handling
  • Easy dictionary file install & management, similar to SudachiPy
  • Registration to crates.io

References

Sudachi

Morphological Analyzers in Rust

Logo


sudachi.rs - 日本語README

sudachi.rs logo

形態素解析器 Sudachi - 非公式 Rust 🦀 クローン

English README

利用例

複数粒度での分割

$ echo 選挙管理委員会 | sudachi
選挙管理委員会	名詞,固有名詞,一般,*,*,*	選挙管理委員会
EOS

$ echo 選挙管理委員会 | sudachi --mode A
選挙	名詞,普通名詞,サ変可能,*,*,*	選挙
管理	名詞,普通名詞,サ変可能,*,*,*	管理
委員	名詞,普通名詞,一般,*,*,*	委員
会	名詞,普通名詞,一般,*,*,*	会
EOS

正規化表記

$ echo 打込む かつ丼 附属 vintage | sudachi
打込む	動詞,一般,*,*,五段-マ行,終止形-一般	打ち込む
 	空白,*,*,*,*,*
かつ丼	名詞,普通名詞,一般,*,*,*	カツ丼
 	空白,*,*,*,*,*
附属	名詞,普通名詞,サ変可能,*,*,*	付属
 	空白,*,*,*,*,*
vintage	名詞,普通名詞,一般,*,*,*	ビンテージ

分かち書き出力

$ cat lemon.txt
えたいの知れない不吉な塊が私の心を始終圧えつけていた。
焦躁と言おうか、嫌悪と言おうか――酒を飲んだあとに宿酔があるように、酒を毎日飲んでいると宿酔に相当した時期がやって来る。
それが来たのだ。これはちょっといけなかった。

$ sudachi --wakati lemon.txt
えたい の 知れ ない 不吉 な 塊 が 私 の 心 を 始終 圧え つけ て い た 。
焦躁 と 言おう か 、 嫌悪 と 言おう か ― ― 酒 を 飲ん だ あと に 宿酔 が ある よう に 、 酒 を 毎日 飲ん で いる と 宿酔 に 相当 し た 時期 が やっ て 来る 。
それ が 来 た の だ 。 これ は ちょっと いけ なかっ た 。

利用方法

$ sudachi -h
sudachi 0.1.0
A Japanese tokenizer

USAGE:
    sudachi [FLAGS] [OPTIONS] [file]

FLAGS:
    -d, --debug      Debug mode: Dumps lattice
    -h, --help       Prints help information
    -a, --all        Prints all fields
    -V, --version    Prints version information
    -w, --wakati     Outputs only surface form

OPTIONS:
    -m, --mode <mode>    Split unit: "A" (short), "B" (middle), or "C" (Named Entity) [default: C]

ARGS:
    <file>    Input text file: If not present, read from STDIN

セットアップ

1. ソースコードの取得

$ git clone https://github.com/sorami/sudachi.rs.git

2. Sudachi辞書のダウンロード

WorksApplications/SudachiDictから辞書のzipファイル( small 、 core 、 full から一つ選択)し、解凍して、中にある system_*.dic ファイルを src/resources/system.dic として置いてください (ファイル名が system.dic に変わっていることに注意)。

上記のように手動で設置する以外に、レポジトリにあるスクリプトを使って自動的に core 辞書をダウンロードし src/resources/system.dic として設置することもできます。

$ ./fetch_dictionary.sh

3. ビルド、インストール

ビルドされた実行ファイルは、辞書バイナリを内包しています。

$ cargo build

もしくは

sudachi.rs/ $ cargo install --path .

$ which sudachi
/Users/<USER>/.cargo/bin/sudachi

$ sudachi -h
sudachi 0.1.0
A Japanese tokenizer
...

ToDo

リファレンス

Sudachi

Rustによる形態素解析器の実装

ロゴ

You can’t perform that action at this time.