1 稳定リリース
0.1.0 | 2022年11月28日 |
---|
#1345 in テキスト処理
918 件のダウンロード/月
1MB
2K SLoC
kakasi
kakasi
は、ひらがな、カタカナ、および漢字(日本語のテキスト)をローマ字(ラテン/ローマンアルファベット)に変換するRustライブラリです。
これは、Cで書かれた元のkakasiライブラリをPythonでポートしたpykakasiライブラリからポートされています。
使用方法
変換
let res = kakasi::convert("こんにちは世界!");
assert_eq!(res.hiragana, "こんにちはせかい!");
assert_eq!(res.romaji, "konnichiha sekai!");
文字列に日本語文字が含まれているか確認する
use kakasi::IsJapanese;
assert_eq!(kakasi::is_japanese("Abc"), IsJapanese::False);
assert_eq!(kakasi::is_japanese("日本"), IsJapanese::Maybe);
assert_eq!(kakasi::is_japanese("ラスト"), IsJapanese::True);
CLI
$ cargo install kakasi
## Convert to romaji
$ kakasi こんにちは世界!
konnichiha sekai!
## Convert to hiragana
$ kakasi -k こんにちは世界!
こんにちはせかい!
## Read from file
$ kakasi -f rust_article.txt
## Read from STDIN
$ echo "こんにちは世界!" | kakasi
パフォーマンス
CPU: AMD Ryzen 7 5700G
テキスト | 変換時間 | スピード |
---|---|---|
文(161 B) | 7.0911 µs | 22.70 MB/s |
Rustウィキペディア記事(31705 B) | 1.5055 ms | 21.06 MB/s |
CLI比較
100KBのテストファイルをCLIで変換するまでの時間
ライブラリ | 時間 | スピード |
---|---|---|
kakasi (Rust) | 7.4 ms | 13.5 MB/s |
kakasi (C) | 33.5 ms | 2.99 MB/s |
pykakasi (Python) | 810.6 ms | 0.123 MB/s |
テストコマンド
CLIのパフォーマンスはhyperfineで測定されました。
hyperfine --warmup 3 'cat 100K.txt | kakasi-rs'
hyperfine --warmup 3 'cat 100K.txt | kakasi -i utf-8 -Ka -Ha -Ja -Sa -s'
hyperfine --warmup 3 'cat 100K.txt | python bin/kakasi -Ka -Ha -Ja -Sa -s'
ライセンス
kakasiは、GNU GPL-3.0ライセンスで公開されています。
Kakasi辞書(ファイル:codegen/dict/kakasidict.utf8
、codegen/dict/itajidict.utf8
、codegen/dict/hepburn.utf8
)は、GNU GPL-3.0ライセンスで公開されているpykakasiプロジェクトから取得されています。
pykakasi
著作権(C)2010-2021 Hiroshi Miuraおよび貢献者(AUTHORSを参照)
辞書は、GNU GPL-2.0ライセンスで公開されているkakasiプロジェクトから起源を持ちます。
オリジナルのkakasi
著作権(C)1992 1993 1994
Hironobu Takahashi ([email protected]),
Masahiko Sato ([email protected]),
Yukiyoshi Kameyama、Miki Inooka、Akihiko Sasaki、Dai Ando、Junichi Okukawa、
Katsushi SatoおよびNobuhiro Yamagishi
为了测试,我包含了一份日文Rust维基百科文章的副本(tests/rust_article.txt
)。该文章在Creative Commons Attribution-ShareAlike License 3.0许可下发布。