| Crates.io | japanese-text |
| lib.rs | japanese-text |
| version | 0.1.0 |
| created_at | 2025-11-17 01:49:46.513044+00 |
| updated_at | 2025-11-17 01:49:46.513044+00 |
| description | 日本語テキスト正規化ライブラリ - 全角半角変換、ひらがなカタカナ変換 |
| homepage | |
| repository | https://github.com/0809android/japanese-text |
| max_upload_size | |
| id | 1936137 |
| size | 45,754 |
日本語テキスト正規化のための軽量なRustライブラリ
Cargo.tomlに以下を追加してください:
[dependencies]
japanese-text = "0.1.0"
use japanese_text::*;
fn main() {
// 全角→半角変換
let half = to_half_width("ABC123");
assert_eq!(half, "ABC123");
// 半角→全角変換
let full = to_full_width("ABC123");
assert_eq!(full, "ABC123");
// カタカナ→ひらがな変換
let hiragana = to_hiragana("カタカナ");
assert_eq!(hiragana, "かたかな");
// ひらがな→カタカナ変換
let katakana = to_katakana("ひらがな");
assert_eq!(katakana, "ヒラガナ");
// 半角カタカナ→全角カタカナ変換
let full_kana = half_width_katakana_to_full_width("カタカナ");
assert_eq!(full_kana, "カタカナ");
// 文字種判定
assert_eq!(is_hiragana('あ'), true);
assert_eq!(is_katakana('ア'), true);
assert_eq!(is_kanji('漢'), true);
}
to_half_width(input: &str) -> String全角ASCII文字を半角に変換します。
assert_eq!(to_half_width("ABC"), "ABC");
assert_eq!(to_half_width("123"), "123");
assert_eq!(to_half_width("!@#"), "!@#");
to_full_width(input: &str) -> String半角ASCII文字を全角に変換します。
assert_eq!(to_full_width("ABC"), "ABC");
assert_eq!(to_full_width("123"), "123");
to_hiragana(input: &str) -> Stringカタカナをひらがなに変換します。
assert_eq!(to_hiragana("カタカナ"), "かたかな");
to_katakana(input: &str) -> Stringひらがなをカタカナに変換します。
assert_eq!(to_katakana("ひらがな"), "ヒラガナ");
half_width_katakana_to_full_width(input: &str) -> String半角カタカナを全角カタカナに変換します。濁点(゛)と半濁点(゜)も正しく結合されます。
assert_eq!(half_width_katakana_to_full_width("カタカナ"), "カタカナ");
assert_eq!(half_width_katakana_to_full_width("ガギグ"), "ガギグ");
assert_eq!(half_width_katakana_to_full_width("パピプ"), "パピプ");
is_hiragana(c: char) -> bool文字がひらがなかどうかを判定します。
assert_eq!(is_hiragana('あ'), true);
assert_eq!(is_hiragana('ア'), false);
is_katakana(c: char) -> bool文字がカタカナかどうかを判定します。
assert_eq!(is_katakana('ア'), true);
assert_eq!(is_katakana('あ'), false);
is_half_width_katakana(c: char) -> bool文字が半角カタカナかどうかを判定します。
assert_eq!(is_half_width_katakana('ア'), true);
is_kanji(c: char) -> bool文字が漢字(CJK統合漢字)かどうかを判定します。
assert_eq!(is_kanji('漢'), true);
assert_eq!(is_kanji('字'), true);
is_full_width(c: char) -> bool文字が全角文字かどうかを判定します。
assert_eq!(is_full_width('A'), true);
assert_eq!(is_full_width('1'), true);
count_character_types(input: &str) -> CharacterTypes文字列内の各文字種の数をカウントします。
let counts = count_character_types("あア漢ABC123");
println!("ひらがな: {}", counts.hiragana); // 1
println!("カタカナ: {}", counts.katakana); // 1
println!("漢字: {}", counts.kanji); // 1
println!("ASCII: {}", counts.ascii); // 6
normalize_whitespace(input: &str) -> String文字列内の空白文字を正規化します(全角スペース、タブなどを半角スペースに統一)。
assert_eq!(normalize_whitespace("Hello World"), "Hello World");
assert_eq!(normalize_whitespace("A\t\tB"), "A B");
normalize_prolonged_sound(input: &str) -> String長音記号を正規化します(〜、~をーに統一)。
assert_eq!(normalize_prolonged_sound("コ〜ヒ〜"), "コーヒー");
expand_iteration_marks(input: &str) -> String繰り返し記号を展開します。
assert_eq!(expand_iteration_marks("いろゝ"), "いろろ");
assert_eq!(expand_iteration_marks("かゞ"), "かが");
# サンプルプログラムを実行
cargo run --example basic
# テストを実行
cargo test
# ドキュメントを生成
cargo doc --open
このライブラリは、外部依存や複雑なロジックなしにシンプルな文字マッピングを使用しているため、非常に高速でオーバーヘッドが最小限です。
プルリクエストを歓迎します!気軽にご投稿ください。
このプロジェクトは、以下のいずれかのライセンスでデュアルライセンスされています:
お好みのライセンスをお選びください。
このライブラリは、大規模な日本語テキスト処理ライブラリの軽量な代替として、最も一般的なテキスト正規化のニーズに焦点を当てて作成されました。
A lightweight Rust library for Japanese text normalization, supporting: