|
名前Lingua::JA::Moji - 総合日本文字変換「文字ュール」概要日本の文字の総合変換use Lingua::JA::Moji qw/kana2romaji romaji2kana/; use utf8; my $romaji = kana2romaji ('あいうえお'); # $romaji is now 'aiueo'. my $kana = romaji2kana ($romaji); # $kana is now 'アイウエオ'. 説明本モジュールはあらゆる日本の文字変換を目的とします。全てのfunctionはユニコードを前提とします。全ての入出力はutf-8でやる。 ローマ字変換かな ⇄ ローマ字kana2romaji仮名をローマ字に.use Lingua::JA::Moji 'kana2romaji'; $romaji = kana2romaji ("うれしいこども"); # $romaji = 'uresîkodomo' 仮名をローマ字に変換。 オプションは関数の2番目の引数でハシュリファレンスとして入ります。 use utf8; $romaji = kana2romaji ("しんぶん", {style => "hepburn"}); # $romaji = "shimbun" 可能なオプションは
romaji2kanaローマ字を仮名に.use Lingua::JA::Moji 'romaji2kana'; $kana = romaji2kana ('yamaguti'); # $kana = 'ヤマグチ' ローマ字をカタカナに変換する。ローマ字はできるだけ幅広く受け入れる。 ローマ字をひらがなに変換したいときは"romaji2hiragana"をお使いください。 ローマ字変換のオプションは関数の2番目の引数でハシュリファレンスとして入る。 $kana = romaji2kana ($romaji, {wapuro => 1}); 長音「ou」を「オー」ではなく、「オウ」にしたいときはwapuroを真にする "wapuro => 1"。 $kana = romaji2kana ($romaji, {ime => 1}); "ime => 1"オプションでIMEのような変換ができます。たとえば、"gumma"が「グッマ」、"onnna"が「オンナ」となります。パスポートローマ字 ("Ohshimizu") は無効となります。 romaji2hiraganaローマ字をひらがなに.use Lingua::JA::Moji 'romaji2hiragana'; $hiragana = romaji2hiragana ('babubo'); # $hiragana = 'ばぶぼ' ローマ字をひらがなに変関する。オプションは"romaji2kana"と同じ。wapuroオプション もオンにしたら、「ou」が「おー」ではなく、「おう」になる。 romaji_stylesuse Lingua::JA::Moji 'romaji_styles'; my @styles = romaji_styles (); # Returns a true value romaji_styles ("hepburn"); # Returns the undefined value romaji_styles ("frogs"); 引数があれば、その引数をローマ字方法として認めるなら真、認めないなら偽。 引数がなければ、すべてのローマ字方法をハシュリファレンスの列として戻す。 is_voiceduse Lingua::JA::Moji 'is_voiced'; if (is_voiced ('が')) { print "が is voiced.\n"; } 仮名かローマ字は濁音(゛)、半濁音(゜)がついていれば、真、ついていなければ偽(undef)。 is_romajiuse Lingua::JA::Moji 'is_romaji'; # The following line returns "undef" is_romaji ("abcdefg"); # The following line returns a defined value is_romaji ('loyehye'); # The following line returns a defined value is_romaji ("atarimae"); アルファベットの列はローマ字に見えるなら真、見えないなら偽。 is_romaji_strictuse Lingua::JA::Moji 'is_romaji_strict'; # The following line returns "undef" is_romaji_strict ("abcdefg"); # The following line returns "undef" is_romaji_strict ('loyehye'); # The following line returns a defined value is_romaji_strict ("atarimae"); アルファベットの列はローマ字に見えるなら真、見えないなら偽。"is_romaji"より厳しく、コンピューター入力に見えるかどうかではなく、本当に「日本語」かどうか確認する。 normalize_romajiuse Lingua::JA::Moji 'normalize_romaji'; $normalized = normalize_romaji ('tsumuji'); "normalize_romaji"はかなやローマ字で書いた言葉を比べるため、かなやローマ字の言葉を決まったローマ字の書き方になおします。この「決まった」ローマ字は本モジュール限定のもので、あくまでも違ったかなや違ったローマ字法で書いた言葉を比べるためだけのものに過ぎませんので、正式なローマ字法と間違わないように。 仮名仮名を仮名に変換すること。hira2kataひらがなをカタカナに.use Lingua::JA::Moji 'hira2kata'; $katakana = hira2kata ('ひらがな'); # $katakana = 'ヒラガナ' 平仮名をかたかなに変換します。長音符は変わりません。(「オー」は「おう」になりません。) kata2hiraカタカナをひらがなに.use Lingua::JA::Moji 'kata2hira'; $hiragana = kata2hira ('カキクケコ'); # $hiragana = 'かきくけこ' かたかなを平仮名に変換します。長音符は変換しません。 kana2katakana仮名をカタカナに.use Lingua::JA::Moji 'kana2katakana'; 全角かたかな、ひらがな、半角かたかな、丸かたかななどあらゆる「仮名」を全角かたかなに変換する。 kana_to_largeuse Lingua::JA::Moji 'kana_to_large'; $large = kana_to_large ('ぁあぃい'); # $large = 'ああいい' 「ぁ」など小さい仮名を「あ」に変換する。 nigori_firstuse Lingua::JA::Moji 'nigori_first'; my @list = (qw/カン スウ ハツ オオ/); nigori_first (\@list); # Now @list = (qw/カン スウ ハツ オオ ガン ズウ バツ パツ/); 一番最初のかなに濁点又は半濁点をつける. InHankakuKatakanause Lingua::JA::Moji 'InHankakuKatakana'; use utf8; if ('ア' =~ /\p{InHankakuKatakana}/) { print "ア is half-width katakana\n"; } "InHankakuKatakana"は正規表現に使う半角カタカナにマッチする。 kana2hw仮名を半角カタカナに.use Lingua::JA::Moji 'kana2hw'; $half_width = kana2hw ('あいウカキぎょう。'); # $half_width = 'アイウカキギョウ。' あらゆる仮名文字を半角カタカナに変換する。かたかなのみを変換する場合は"katakana2hw"を使ってください。 hw2katakana半角カタカナをカタカナに.use Lingua::JA::Moji 'hw2katakana'; $full_width = hw2katakana ('アイウカキギョウ。'); # $full_width = 'アイウカキギョウ。' 半角カタカナを全角カタカナに変換する。 katakana2hwカタカナを半角カタカナに.use Lingua::JA::Moji 'katakana2hw'; $hw = katakana2hw ("あいうえおアイウエオ"); # $hw = 'あいうえおアイウエオ' 全角かたかなを半角かたかなに変換し、ひらがなをそのままにする。"kana2hw"も参照。 is_kanause Lingua::JA::Moji 'is_kana'; 入力が仮名のみの場合、真、入力が仮名なでない文字を含む場合、偽(undef)。 is_hiraganause Lingua::JA::Moji 'is_hiragana'; 入力が平仮名のみの場合、真、入力が平仮名なでない文字を含む場合、偽(undef)。「ー」があれば偽になる。 kana_orderuse Lingua::JA::Moji 'kana_order'; $kana_order = kana_order (); 仮名の(適当な)順番を返す。 katakana2syllableuse Lingua::JA::Moji 'katakana2syllable'; $syllables = katakana2syllable ('ソーシャルブックマークサービス'); カタカナをシラブルにわける。たとえば、「ソーシャル」 は'ソ', 'ー', 'シ', 'ャ', 'ル'という意味のない文字ではなく、日本語の 「原子」の'ソー', 'シャ', 'ル'になる。 InKanause Lingua::JA::Moji 'InKana'; $is_kana = ('あいうえお' =~ /^\p{InKana}+$/); # $is_kana = '1' 正規表現に使うカタカナとひらがなにマッチする。 詳しくいうと以下の正規表現 qr/\p{Katakana}|\p{InKatakana}|\p{InHiragana}|ー|゙|゚>/ と殆どおなじ効果ですが、"\p{Katakana}"がマッチする未使用のコードポイントはマッチしません。「・」もマッチしません。 square2katakanause Lingua::JA::Moji 'square2katakana'; $kata = square2katakana ('㌆'); # $kata = 'ウォン' 「㌆」を「ウォン」にするなど。 katakana2squareuse Lingua::JA::Moji 'katakana2square'; $sq = katakana2square ('アイウエオウォン'); # $sq = 'アイウエオ㌆' 可能なかぎり、「ウォン」を「㌆」にするなど。 全角英数字全角英数字の変換・認識。InWideAsciiuse Lingua::JA::Moji 'InWideAscii'; use utf8; if ('A' =~ /\p{InWideAscii}/) { print "A is wide ascii\n"; } 正規表現に使う全角英数字にマッチする。 wide2ascii全角英数字を半角英数字に.use Lingua::JA::Moji 'wide2ascii'; $ascii = wide2ascii ('abCE019'); # $ascii = 'abCE019' 全角英数字を半角英数字(ASCII)に変換する。 ascii2wide半角英数字を全角英数字に.use Lingua::JA::Moji 'ascii2wide'; $wide = ascii2wide ('abCE019'); # $wide = 'abCE019' 半角英数字(ASCII)を全角英数字に変換する。 その他の文字kana2morse仮名を和文モールス符号に.use Lingua::JA::Moji 'kana2morse'; $morse = kana2morse ('しょっちゅう'); # $morse = '--.-. -- .--. ..-. -..-- ..-' かなをモースコードに変換する。日本語のモースコードは「っ」など小さいかなを表現できないので、仮名をモースコードにして、モースコードからまた仮名にする場合は「しょっちゅう」が「シヨツチユウ」になる。 morse2kana和文モールス符号を仮名に.use Lingua::JA::Moji 'morse2kana'; $kana = morse2kana ('--.-. -- .--. ..-. -..-- ..-'); # $kana = 'シヨツチユウ' モースコードをかなに変換する。モースコードは分かち書きが必要だ。 欠点 テストが不十分。 kana2braille仮名を点字に.use Lingua::JA::Moji 'kana2braille'; 仮名を点字に変換する。 欠点 きちんとしたテストがない。日本語を点字に変換することはわたちがきが必要だがこの関数はそれをしないので、不十分な変換機能だ。 braille2kana点字を仮名に.use Lingua::JA::Moji 'braille2kana'; 点字をカタカナに変換。 kana2circled仮名を丸付けカタカナに.use Lingua::JA::Moji 'kana2circled'; $circled = kana2circled ('あいうえお'); # $circled = '㋐㋑㋒㋓㋔' 仮名を丸付けかたかなに変換する。丸付け「ン」がないので、ンはそのままとなる。 丸付け片假名はユニコード32D0〜32FEにある。 circled2kana丸付けカタカナを仮名に.use Lingua::JA::Moji 'circled2kana'; $kana = circled2kana ('㋐㋑㋒㋓㋔'); # $kana = 'アイウエオ' 丸がついているかたかなを全角かたかなに変換する。 漢字new2old_kanji親字体を旧字体に.use Lingua::JA::Moji 'new2old_kanji'; $old = new2old_kanji ('三国 連太郎'); # $old = '三國 連太郎' 親字体を旧字体に変換する 欠点 新旧字体の情報は適当なものだ。「弁」は旧字体が三つなので、変換不可能。 old2new_kanji旧字体を親字体に.use Lingua::JA::Moji 'old2new_kanji'; $new = old2new_kanji ('櫻井'); # $new = '桜井' 旧字体を親字体に変換する circled2kanjiuse Lingua::JA::Moji 'circled2kanji'; $kanji = circled2kanji ('㊯'); # $kanji = '協' 丸付け漢字を普通の漢字に変換する。 kanji2circleduse Lingua::JA::Moji 'kanji2circled'; $kanji = kanji2circled ('協嬉'); # $kanji = '㊯嬉' 漢字を丸付け漢字に変換する。 bracketed2kanjiuse Lingua::JA::Moji 'bracketed2kanji'; $kanji = bracketed2kanji ('㈱'); # $kanji = '株' 括弧漢字を普通の漢字に変換する。 kanji2bracketeduse Lingua::JA::Moji 'kanji2bracketed'; $kanji = kanji2bracketed ('株'); # $kanji = '㈱' 普通の漢字を括弧漢字をに変換する。 日本語のキリル文字表記実験的に仮名とキリル文字の変換をする。キリル文字に詳しい方の確認がない。kana2cyrillic仮名をキリル文字に.use Lingua::JA::Moji 'kana2cyrillic'; $cyril = kana2cyrillic ('シンブン'); # $cyril = 'симбун' cyrillic2katakanaキリル文字をカタカナに.use Lingua::JA::Moji 'cyrillic2katakana'; $kana = cyrillic2katakana ('симбун'); # $kana = 'シンブン' ハングルkana2hanguluse Lingua::JA::Moji 'kana2hangul'; $hangul = kana2hangul ('すごわざ'); # $hangul = '스고와자' 欠点
<http://kajiritate-no-hangul.com/kana.html>を使ってみましたがただしいかどうか証明がありません。 参考資料CPANの本モジュール意外のものは次にありますローマ字かな変換
漢字かな変換
本幣モジュールは冨田尚樹氏の「Perl CPANモジュールガイド」に説明しています。 (ISBN 978-4862671080 WEB+DB PRESS plus, 2011年4月出版)EXPORTThis module exports its functions only on request. To export all the functions in the module,use Lingua::JA::Moji ':all'; 著者Ben Bullock, "<bkb@cpan.org>"COPYRIGHT & LICENSECopyright 2008-2014 Ben Bullock, all rights reserved.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. ACKNOWLEDGEMENTSThanks to Naoki Tomita, David Steinbrunner, and Neil Bowers for fixes.
Visit the GSP FreeBSD Man Page Interface. |