ローマ字 変換 プログラム
RÔMAZI HENKAN PUROGURAMU
はじめに
Hazime ni
ふりがなは ローマ字に 変換 できない
Hurigana wa Rômazi ni henkan dekinai
Microsoft Excel には ふりがなを ローマ字に 変換 する 関数が 用意 されて いません.そんな 関数は ないからです.
完全に 自動で ふりがなを ローマ字に 変換 する ことは できません.ふりがなを ローマ字に 変換 する ツールや ライブラリは たくさん ありますが,それらは すべて 不完全で,まちがった ローマ字を 出力 します.これは ローマ字を しらない 人が プログラムを つくって いるからですインターネットに 公開 されて いる プログラムに よく あるのは,ふりがなを 音節の 単位で 機械的に ABC表記に 変換 する だけか,それに ひきつづいて uu, oo, ou などを u, o, o(または ū, ō, ō)などに かきかえる ものです.しかし,この アルゴリズムでは うまく いきません.「井上 太郎(いのうえ たろう)」と いう 名前で かんがえると,前者は ✕ Inoue Tarou,後者は ✕ Inoe Taro(Inōe Tarō)を 出力 しますが,どちらも まちがいです.ローマ字を しらない 人が プログラムを つくると,プログラミングの スキルに 問題が なくても こう なります.これは しかたが ありません.日本の 政府が ローマ字教育を とことん おさえつけて いる せいで,一般人が ローマ字を しらないのは あたりまえだからです..
ふりがなと ローマ字の 関係
ふりがなと ローマ字に 単純な 対応関係は ありません.ふりがなを ABC表記に 変換 した ものが ローマ字だと おもって いる 人は おおいのですが,それは ちがいます.日本語の 音声を かな文字で かいた ものが ふりがなで,ABCで かいた ものが ローマ字です.これらは 音声を 文字列に 変換 する ところは おなじですが,変換の ルールが ちがうので,一般に ふりがなと ローマ字は つづりが 対応 しません.そのため,機械的に 文字を おきかえる だけの かんたんな 処理では ふりがなを ローマ字に 変換 できません.
| 音声 | ふりがな | ローマ字 | |
|---|---|---|---|
| 格子 | コーシ | こうし | kôsi |
| 子牛 | コウシ | こうし | kousi |
| おはよう | オハヨー | おはよう | ohayô |
| こんばんは | コンバンワ | こんばんは | konbanwa |
「なぜ ふりがなでは ダメなのか?」でも おなじ ことを 説明 しています.
よみかたは ローマ字に 変換 できる
Yomikata wa Rômazi ni henkan dekiru
ふりがなは,すこし 改造 して 音声を そのまま かく ように すれば,ローマ字と 対応 する ように なります.具体的には,「ー」を つかって 長音を かき,助詞の「は」「へ」「を」を 発音どおりに〈わ〉〈え〉〈お〉と かきます.この 改造 した ふりがなを ここでは よみかたと よびますここでは ふりがなと ローマ字を 対応 させる ことが 目的なので これ だけで いいのですが,発音と 表記を 対応 させる ことが 目的なら,漢語の「エ段+い」も 改造 する 必要が あります.たとえば,「映画」の 発音は ほぼ【エーガ】なのに,ふりがなは〈えいが〉,ローマ字は eiga で,発音と 表記が 対応 して いません.これを あらためて〈えーが〉と êga に すれば,発音と 表記が 対応 します.「映画」の ローマ字を êga に かえる かんがえは「もっと 日本語らしい かきかた」で くわしく 解説 して います..
よみかたは ローマ字と つづりが 対応 して いるので,かんたんな プログラムで ローマ字に 変換 できます.
| 音声 | よみかた | ローマ字 | |
|---|---|---|---|
| 格子 | コーシ | コーシ | kôsi |
| 子牛 | コウシ | コウシ | kousi |
| おはよう | オハヨー | オハヨー | ohayô |
| こんばんは | コンバンワ | コンバンワ | konbanwa |
ローマ字 変換 プログラム
Rômazi henkan puroguramu
あらまし
Aramasi
ローマ字の 方式に 対応 した 6種類の VBA関数が あります.じっさいに つかう ときは 関数の 名前を わかりやすい ものに かえて おくと いいでしょう.
| ローマ字の 方式 | 関数 |
|---|---|
| 日本式 | toRoomaziN |
| 訓令式 | toRoomaziKx |
| ヘボン式 | toRoomaziH |
| 「英語式」 | toRoomaziE |
| 「パスポート式」 | toRoomaziP |
| 「パスポートむけ訓令式」 | toRoomaziQ |
もともとは Microsoft Excel で つかう ために つくった ものですが,LibreOffice Calc でも うごきますLibreOffice Calc の マクロは Microsoft Excel の マクロと 互換性が あり,ここに ある VBA関数は 1行 追加 する だけで Calc の マクロと しても つかえます..
関数を つかう ときは つぎの ように します.
VBA関数の つかいかた
くわしい つかいかたは「つかいかた」で 説明 して います.
VBA関数
VBA kansû
日本式
訓令式
ヘボン式
「英語式」
「パスポート式」
「パスポートむけ訓令式」
(おまけ1)ローマ字用の PROPER() Excel ワークシート関数の PROPER() には ken'iti(健一)が Ken'Iti に なって しまう 不具合が あります.ローマ字用の toProperCaseRoomazi() は Ken'iti に なります.
(おまけ2)「姓」「名」の 抽出 空白(全角・半角)・カンマ(全角・半角)・中点で くぎられた 文字列を 分割 して,その 一部を 抽出 する 関数です.extractStringPart("やまだ はなこ", n) で,n が 0 なら "やまだ" に,n が 1 なら "はなこ" に,n が 2 なら "---" に なります.「 やまだ はなこ 」「やまだ , はなこ」「やまだ」の ように 書式が ばらばらの データを 統一的に あつかえます.
つかいかた
Tukaikata
VBA関数を つかうには 準備が 必要です.
Microsoft Excel で つかう ばあい,つぎの 手順で 必要な VBA関数の コードを モジュールに コピー&ペースト して ください.
(手順1)Alt+F11で VBE(Visual Basic Editor)を 起動 する.
(手順2)「挿入」→「標準モジュール」で モジュール(Module1)を つくる.
Excel の 準備
(手順3)必要な VBA関数の コードを コピー&ペースト する.
Excel の 準備
(手順4)VBEの ウインドウを とじる.
LibreOffice Calc で つかう ばあい,つぎの 手順で 必要な VBA関数の コードを モジュールに コピー&ペースト して ください.
(手順1)「ツール」→「マクロ」→「マクロの管理」→「Basic...」.
(手順2)ファイル名(例:無題 1)を えらんでから[新規作成]ボタンを おして モジュール(Module1)を つくる.
Calc の 準備
(手順3)初期内容(Sub Main など)を すべて 削除,「Option VBASupport 1」を 追加 して,その うしろに 必要な VBA関数の コードを コピー&ペースト する.
Calc の 準備
(手順4)モジュールの ウインドウを とじる.
変換 できるのは 全角カタカナ だけです.漢字や ひらがなは 変換 できません.対応 して いない 特殊音も 変換 できません.どこまで 対応 して いるかは ローマ字の 方式に よって ちがいます.引数の 文字列は かならず よみかたに して ください.ふりがなは ただしい ローマ字表記に 変換 できません.
長音が ない ときの よみかたは ふりがなと おなじです.
デンワ(電話)
ジテンシャ(自転車)
長音が ある ときの よみかたは ふりがなと ちがいます.
デンポー(電報)
ジドーシャ(自動車)
よみかたは 発音どおりに かいた かな文字表記ですが,漢字の 音よみで ふりがなが〈えい〉〈けい〉〈せい〉などに なる ものは 例外です.これらの 発音は【エー】【ケー】【セー】などに ちかいですが,よみかたは ふりがなと おなじ【エイ】【ケイ】【セイ】などです.
エイガ(映画)
セイメイ(生命)
「ー」に するのか しないのか まよったら,ふつうは「ー」が ふたつの 漢字を またがない 性質を ヒントに して ください.漢字と 漢字の あいだに「・」を いれた ふりがなを かんがえて,まよう 部分が「・」を またいで いたら「ー」に しません.たとえば,「高利」は〈こう・り〉なので【コーリ】で,「小売り」は〈こ・うり〉なので【コウリ】です.
ローマ字は ことばの あいだに 空白を いれる 分かち書きに しなければ なりませんが,この ツールに ことばを きりはなす はたらきは ありません.そのため,入力の 段階で あらかじめ きりはなして おく 必要が あります.
クーソー カガク ショーセツ(空想科学小説)
セカイ イッシュー リョコー(世界一周旅行)
助詞の「は」「へ」「を」は【ワ】【エ】【オ】と かきます.
ワタシ ワ(私は)
ソレ オ(それを)
日本式を つかう ときは,【ジ/ヂ】【ズ/ヅ】などを つかいわけて ください.
メイヂ(明治)
アヅキ(小豆)
ローマ字の かきかたには 規則が あり,それに あわせて よみかたを 入力 しないと ただしく 変換 できません.【エイ】【ケイ】【セイ】なども そんな 規則の ひとつで,ほかにも 規則が たくさん あります.たとえば,「聞いた」「大きい」は,じっさいには【キータ】【オーキー】に ちかい 発音ですが,【キイタ】【オーキイ】と 入力 しなければ なりません.「~である」「~ですか」は【~デ アル】【~デス カ】と 入力 しなければ なりません.けっきょく,この ツールを つかいこなすには ローマ字の 勉強が 必要です.
確実に 変換 できる 文字列を 入力 して ください.変換 できない 部分が あると,中途半端に 変換 した 結果に なって しまいます.
マクロの 実行が 制限 されて いる ばあいは 実行 できる 設定に して ください.Calc の 設定画面は「ツール」→「オプション」→「LibreOffice」→「セキュリティ」→「マクロセキュリティ」に あります.
おぎない
Oginai
- ふりがなを ローマ字に 変換 する ツールは たくさん ありますが,それらの ほとんどは ローマ字の 方式が 本物の ローマ字と いえない「ワープロ式」か「英語式」です.ふりがなを 訓令式・ヘボン式・「英語式」に 変換 する ツールで 確実に ただしい ローマ字を 出力 できる ものは ひとつも ありません.「松浦」「横内」「広尾」 などの 名前で かんたんに テスト できます.ふりがなの〈こう〉を kou に 変換 するか ko に 変換 するか 指定 できる ツールも ありますが,それでも「城之内」を ただしく 変換 できませんただしい つづりは Matuura, Matsuura, Matsuura(松浦)Yokouti, Yokouchi, Yokouchi(横内)Hiroo, Hiroo, Hiroo(広尾)Zyônouti, Jōnouchi, Jonouchi(城之内)です(左から 訓令式・ヘボン式・「英語式」)..
- 形態素解析ツールには ローマ字を 出力 できる ものが あります.しかし,その 出力は 大抵「ワープロ式」で,ローマ字の ルールに のっとった 分かち書きに されて いませんMeCab は 辞書に よみかたの データを もって います.これを 応用 すれば,漢字かな表記の 単語を ある 程度 ただしく ローマ字に 変換 できます.品詞の 情報を つかって 分かち書きを コントロール すれば,実用的な ツールも つくれるでしょう.ただし,もっとも 要望が おおいと おもわれる 固有名詞は ただしく 変換 できません..
- くせの ある コードですが,「ローマ字表」が ほぼ そのままの 形で うめこんで ありますから,VBAの プログラミングが よく わからない 人でも かんたんに 改造 できるでしょう.