Friday,August 26

漢字(かんじ)によみがなをうつ【前編(ぜんぺん) (2 photos)

(ねん)ほどむかし、ウェブページにある漢字(かんじ)によみがなを表示(ひょうじ)できる機能(きのう)搭載(とうさい)しました。
じつは、ウェブページにある漢字(かんじ)によみがなを表示(ひょうじ)するのは、ちょっとややこしいんです。

まず、スタジオムーンリーフではHTMLで漢字(かんじ)によみがなをうつ方法(ほうほう)としてrubyタグを使用(しよう)しています。
といっても、HTMLを()らない(ひと)にはなんのことやらわかりませんよね。

つまりウェブページで「漢字(かんじ)」という文字(もじ)によみがなをうつためには、画像(がぞう)のようなややこしいコーディングをしないといけないのです。

漢字によみがなをうつ【前編】_sb_01.jpg


ruby、rp、rtという3つのタグ記号(きごう)使(つか)ってようやく「漢字(かんじ)」に「かんじ」というよみがなが表示(ひょうじ)されます。

(みじか)熟語(じゅくご)のひとつやふたつなら手入力(てにゅうりょく)でもやろうと(おも)えばできますが、ブログやニュース記事(きじ)のような(なが)文章(ぶんしょう)となると、とても()いつきません。

このコーディングをなんとかラクにする方法(ほうほう)はないかと(かんが)えました。

そのひとつめに(かんが)えたのが、国語辞典(こくごじてん)漢和辞典(かんわじてん)のような辞書(じしょ)データを使(つか)って、プログラムで漢字(かんじ)によみがなをあてる「全自動方式(ぜんじどうほうしき)」でした。

はい、無理(むり)です。

国語辞典(こくごじてん)漢和辞典(かんわじてん)のデータは膨大(ぼうだい)です。
漢字(かんじ)()みかたは(おく)仮名(がな)などの前後(ぜんご)使(つか)われている文字(もじ)()まってきますし、地名(ちめい)人名(じんめい)といった特殊(とくしゅ)()みかたをする固有名詞(こゆうめいし)もふくめて(かんが)えると、音読(おんよ)みと訓読(くんよ)みだけでは()みかたを()めることができません。
開発(かいはつ)コストと、維持(いじ)コストもばかにならないので即却下(そくきゃっか)となりました。

ふたつめに(かんが)えたことが、(のち)実装(じっそう)となった「半自動方式(はんじどうほうしき)」です。

まず「入力(にゅうりょく)する文字列(もじれつ)漢字(かんじ)には(かなら)ずよみがなをつける」という()まりごとをつくり、漢字(かんじ)(うし)ろに半角括弧(はんかくかっこ)でくくられたよみがなを()きます。

漢字(かんじ)(かんじ)」といった具合(ぐあい)です。
これなら()()にもわかりやすいし、文章(ぶんしょう)()くうえでもあまり()になりません。

そしてプログラム(じょう)文字列(もじれつ)を「漢字(かんじ)」と「漢字以外(かんじがい)文字(もじ)」を識別(しきべつ)して、「漢字(かんじ)文字(もじ)につづく半角括弧(はんかくかっこ)でくくられた文字(もじ)はよみがなとしてあつかい、ruby、rp、rtタグでコーディングされた文字列(もじれつ)成形(せいけい)して出力(しゅつりょく)する」という処理(しょり)(とお)すことで、ウェブページの漢字(かんじ)によみがなをうてる機能(きのう)実装(じっそう)することができました。

漢字によみがなをうつ【前編】_sb_02.jpg


()()くとシンプルですが、プログラム処理(しょり)部分(ぶぶん)はちょっと複雑(ふくざつ)です。
(なが)文章(ぶんしょう)のなかにある漢字(かんじ)すべてにたいして有効(ゆうこう)機能(きのう)せねばなりません。

文章(ぶんしょう)のなかにある漢字(かんじ)は1文字(もじ)とは(かぎ)りません。
文章(ぶんしょう)には漢字(かんじ)文字(もじ)以上(いじょう)構成(こうせい)される熟語(じゅくご)だってたくさん登場(とうじょう)します。

しかし、これをなんとかクリアしたプログラムをつくることに成功(せいこう)しました。

でもでも。
これだけでは解決(かいけつ)できない問題(もんだい)があることに(なが)いあいだ(なや)まされることになるのですが、それはまた後編(こうへん)で……。


≫ NEXT_LOG 漢字(かんじ)によみがなをうつ【後編(こうへん)(02 photos)

≪ PREV_LOG 飯能(はんのう)まつり(17 photos)

PAGE UP

Google+

スタジオムーンリーフ(2005年1月開設/Since 2005)
代表者:野口 卓洋(Takuhiro Noguchi)
Add:356-0006 埼玉県ふじみ野市霞ヶ丘3-1-22-504

Twitter:@StudioMoonLeaf
Facebook:facebook.com/noguchi.takuhiro


©2017 STUDIO MOON LEAF ALL RIGHTS RESERVED.