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でやる。
かな ⇄ ローマ字
use Lingua::JA::Moji 'kana2romaji'; $romaji = kana2romaji ("うれしいこども"); # Now $romaji = 'uresîkodomo'
仮名をローマ字に変換。
オプションは関数の2番目の引数でハシュリファレンスとして入ります。
use utf8; $romaji = kana2romaji ("しんぶん", {style => "hepburn"}); # $romaji = "shimbun"
可能なオプションは
ローマ字の種類。
ディフォルトは日本式(「つづり」が「tuduri」, 「少女」が「syôzyo」)。
パスポート式(「伊藤」が「itoh」)
訓令式(少学校4年で習うローマ字法)
ヘボン式(「つづり」が「tsuzuri」, 「少女」が「shōjo」)。 これを選べば、下記のuse_mが真になり、ve_typeがmacronになります。
真なら「しんぶん」が「shimbun」 偽なら「ぐんま」が「gunma」
長い母音はどの様に表現する。
曲折アクセント(ô)を使う。
マクロン(ō)を使う。
「アー」、「イー」、「ウー」、「エー」が「a」, 「i」, 「u」, 「e」になり、「オー」が「oh」になる。
「アー」、「イー」、「ウー」、「エー」ガ「a」, 「i」, 「u」, 「e」, 「o」になる。
「アー」、「イー」、「ウー」、「エー」ガ「a-」, 「i-」, 「u-」, 「e-」, 「o-」になる。「おう」が「ou」など、仮名の長音を仮名で代表するよう、ロー マ字入力のようなことです。
ワープロローマ字。長音符は使わない。「少女」が「shoujo」など。
use Lingua::JA::Moji 'romaji2kana'; $kana = romaji2kana ('yamaguti'); # Now $kana = 'ヤマグチ'
ローマ字をカタカナに変換する。ローマ字はできるだけ幅広く受け入れる。 ローマ字をひらがなに変換したいときは"romaji2hiragana"をお使いください。
ローマ字変換のオプションは関数の2番目の引数でハシュリファレンスとして入る。
$kana = romaji2kana ($romaji, {wapuro => 1});
長音「ou」を「オー」ではなく、「オウ」にしたいときはwapuroを真にする。
use Lingua::JA::Moji 'romaji2hiragana'; $hiragana = romaji2hiragana ('babubo'); # Now $hiragana = 'ばぶぼ'
ローマ字をひらがなに変関する。オプションは"romaji2kana"と同じ。wapuroオプション もオンにしたら、「ou」が「おー」ではなく、「おう」になる。
use Lingua::JA::Moji 'romaji_styles'; my @styles = romaji_styles (); # Returns a true value romaji_styles ("hepburn"); # Returns the undefined value romaji_styles ("frogs");
引数があれば、その引数をローマ字方法として認めるなら真、認めないなら偽。
引数がなければ、すべてのローマ字方法をハシュリファレンスの列として戻す。
use Lingua::JA::Moji 'is_voiced'; if (is_voiced ('が')) { print "が is voiced.\n"; }
仮名かローマ字は濁音(゛)、半濁音(゜)がついていれば、真、ついていなければ偽(undef)。
use Lingua::JA::Moji 'is_romaji'; # The following line returns "undef" is_romaji ("abcdefg"); # The following line returns a defined value is_romaji ("atarimae");
アルファベットの列はローマ字に見えるなら真、見えないなら偽。
use Lingua::JA::Moji 'normalize_romaji'; $normalized = normalize_romaji ('tsumuji');
normalize_romajiはかなやローマ字で書いた言葉を比べるため、かなやローマ字の言葉を決まったローマ字の書き方になおします。この「決まった」ローマ字は本モジュール限定のもので、あくまでも違ったかなや違ったローマ字法で書いた言葉を比べるためだけのものに過ぎませんので、正式なローマ字法と間違わないように。
normalize_romaji
仮名を仮名に変換すること。
use Lingua::JA::Moji 'hira2kata'; $katakana = hira2kata ('ひらがな'); # Now $katakana = 'ヒラガナ'
平仮名をかたかなに変換します。長音符は変わりません。(「オー」は「おう」になりません。)
use Lingua::JA::Moji 'kata2hira'; $hiragana = kata2hira ('カキクケコ'); # Now $hiragana = 'かきくけこ'
かたかなを平仮名に変換します。長音符は変換しません。
use Lingua::JA::Moji 'kana2katakana';
全角かたかな、ひらがな、半角かたかな、丸かたかななどあらゆる「仮名」を全角かたかなに変換する。
use Lingua::JA::Moji 'kana_to_large'; $large = kana_to_large ('ぁあぃい'); # Now $large = 'ああいい'
「ぁ」など小さい仮名を「あ」に変換する。
use Lingua::JA::Moji 'InHankakuKatakana'; use utf8; if ('ア' =~ /\p{InHankakuKatakana}/) { print "ア is half-width katakana\n"; }
InHankakuKatakana is a character class for use in regular expressions with \p which can validate halfwidth katakana.
InHankakuKatakana
\p
use Lingua::JA::Moji 'kana2hw'; $half_width = kana2hw ('あいウカキぎょう。'); # Now $half_width = 'アイウカキギョウ。'
あらゆる仮名文字を半角カタカナに変換する。かたかなのみを変換する場合は"katakana2hw"を使ってください。
use Lingua::JA::Moji 'hw2katakana'; $full_width = hw2katakana ('アイウカキギョウ。'); # Now $full_width = 'アイウカキギョウ。'
半角カタカナを全角カタカナに変換する。
use Lingua::JA::Moji 'katakana2hw'; $hw = katakana2hw ("あいうえおアイウエオ"); # Now $hw = 'あいうえおアイウエオ'
全角かたかなを半角かたかなに変換し、ひらがなをそのままにする。"kana2hw"も参照。
use Lingua::JA::Moji 'is_kana';
入力が仮名のみの場合、真、入力が仮名なでない文字を含む場合、偽(undef)。
use Lingua::JA::Moji 'is_hiragana';
入力が平仮名のみの場合、真、入力が平仮名なでない文字を含む場合、偽(undef)。「ー」があれば偽になる。
use Lingua::JA::Moji 'kana_order'; $kana_order = kana_order ();
仮名の(適当な)順番を返す。
use Lingua::JA::Moji 'InKana'; $is_kana = ('あいうえお' =~ /^\p{InKana}+$/); # Now $is_kana = '1'
正規表現に使うカタカナとひらがなにマッチする。
全角英数字の変換・認識。
use Lingua::JA::Moji 'InWideAscii'; use utf8; if ('A' =~ /\p{InWideAscii}/) { print "A is wide ascii\n"; }
正規表現に使う全角英数字にマッチする。
use Lingua::JA::Moji 'wide2ascii'; $ascii = wide2ascii ('abCE019'); # Now $ascii = 'abCE019'
全角英数字を半角英数字(ASCII)に変換する。
use Lingua::JA::Moji 'ascii2wide'; $wide = ascii2wide ('abCE019'); # Now $wide = 'abCE019'
半角英数字(ASCII)を全角英数字に変換する。
use Lingua::JA::Moji 'kana2morse'; $morse = kana2morse ('しょっちゅう'); # Now $morse = '--.-. -- .--. ..-. -..-- ..-'
かなをモースコードに変換する。日本語のモースコードは「っ」など小さいかなを表現できないので、仮名をモースコードにして、モースコードからまた仮名にする場合は「しょっちゅう」が「シヨツチユウ」になる。
use Lingua::JA::Moji 'morse2kana'; $kana = morse2kana ('--.-. -- .--. ..-. -..-- ..-'); # Now $kana = 'シヨツチユウ'
モースコードをかなに変換する。モースコードは分かち書きが必要だ。
テストが不十分。
use Lingua::JA::Moji 'kana2braille';
仮名を点字に変換する。
きちんとしたテストがない。日本語を点字に変換することはわたちがきが必要だがこの関数はそれをしないので、不十分な変換機能だ。
use Lingua::JA::Moji 'braille2kana';
Converts Japanese braille (tenji) into the equivalent katakana.
use Lingua::JA::Moji 'kana2circled'; $circled = kana2circled ('あいうえお'); # Now $circled = '㋐㋑㋒㋓㋔'
仮名を丸付けかたかなに変換する。丸付け「ン」がないので、ンはそのままとなる。 丸付け片假名はユニコード32D0〜32FEにある。
use Lingua::JA::Moji 'circled2kana'; $kana = circled2kana ('㋐㋑㋒㋓㋔'); # Now $kana = 'アイウエオ'
丸がついているかたかなを全角かたかなに変換する。
use Lingua::JA::Moji 'new2old_kanji'; $old = new2old_kanji ('三国 連太郎'); # Now $old = '三國 連太郎'
親字体を旧字体に変換する
新旧字体の情報は適当なものだ。「弁」は旧字体が三つなので、変換不可能。
use Lingua::JA::Moji 'old2new_kanji'; $new = old2new_kanji ('櫻井'); # Now $new = '桜井'
旧字体を親字体に変換する
use Lingua::JA::Moji 'circled2kanji'; $kanji = circled2kanji ('㊯'); # Now $kanji = '協'
丸付け漢字を普通の漢字に変換する。
use Lingua::JA::Moji 'kanji2circled'; $kanji = kanji2circled ('協嬉'); # Now $kanji = '㊯嬉'
漢字を丸付け漢字に変換する。
use Lingua::JA::Moji 'bracketed2kanji'; $kanji = bracketed2kanji ('㈱'); # Now $kanji = '株'
括弧漢字を普通の漢字に変換する。
use Lingua::JA::Moji 'kanji2bracketed'; $kanji = kanji2bracketed ('株'); # Now $kanji = '㈱'
普通の漢字を括弧漢字をに変換する。
実験的に仮名とキリル文字の変換をする。キリル文字に詳しい方の確認がない。
use Lingua::JA::Moji 'kana2cyrillic'; $cyril = kana2cyrillic ('シンブン'); # Now $cyril = 'симбун'
use Lingua::JA::Moji 'cyrillic2katakana'; $kana = cyrillic2katakana ('симбун'); # Now $kana = 'シンブン'
use Lingua::JA::Moji 'kana2hangul'; $hangul = kana2hangul ('すごわざ'); # Now $hangul = '스고와자'
There is a mailing list for this module and Convert::Moji at http://groups.google.com/group/perl-moji.
This is similar to the present module for Korean.
幣モジュールは冨田尚樹氏の「Perl CPANモジュールガイド」に説明しています。 (ISBN 978-4862671080 WEB+DB PRESS plus, 2011年4月出版)
This 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>
<bkb@cpan.org>
Copyright 2008-2012 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.
Thanks to Naoki Tomita.
To install Lingua::JA::Moji, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lingua::JA::Moji
CPAN shell
perl -MCPAN -e shell install Lingua::JA::Moji
For more information on module installation, please visit the detailed CPAN module installation guide.