Saturday,August 27

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

(ねん)ほどむかし、ウェブページにある漢字(かんじ)によみがなを表示(ひょうじ)できる機能(きのう)をなんとか開発(かいはつ)したというおはなしが前編(ぜんぺん)でした。

しかし、漢字(かんじ)によみがなをうつだけでは解決(かいけつ)できない問題(もんだい)(あたま)(なや)ませることになりました。

前編(ぜんぺん)()いたように、よみがなの文字列(もじれつ)成形(せいけい)する機能(きのう)(かなめ)となっているのは「漢字(かんじ)」か「漢字(かんじ)以外(いがい)文字(もじ)」かを識別(しきべつ)するところ。
漢字(かんじ)であれば(つづ)半角括弧(はんかくかっこ)にくくられた部分(ぶぶん)をよみがなと解釈(かいしゃく)して処理(しょり)するという(なが)れです。

でも、これでは不充分(ふじゅうぶん)なレアケースが存在(そんざい)するのです。
「1(ついたち)」という文字(もじ)に「ついたち」というよみがなをふるケースです。

「1(ついたち)」は、2文字(もじ)で「ついたち」と()みますが、1文字目(もじめ)の「1」は漢字(かんじ)ではなく数字(すうじ)です。したがって、プログラムは「1」を「漢字(かんじ)以外(いがい)文字(もじ)」と識別(しきべつ)します。つづく「(にち)」は漢字(かんじ)として識別(しきべつ)するため、よみがなは「(にち)」にしかうたれないという結果(けっか)になってしまうのです。

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

「1(ついたち)(ついたち)」をプログラム処理(しょり)すると、漢字(かんじ)である「(にち)」にしかよみがながうたれない…


ウェブページは横書(よこが)きですから、数字(すうじ)表記(ひょうき)はアラビア数字(すうじ)のほうが(てき)しているケースがほとんどです。
なので、「漢数字(かんすうじ)一日(ついたち)()けばいい」というのは解決(かいけつ)にはなりません。

それに「1(ついたち)」は日付(ひづけ)表記(ひょうき)ですから、比較的(ひかくてき)頻繁(ひんぱん)登場(とうじょう)します。とても無視(むし)はできません。

さらに、1(ついたち)もだめなら、2(ふつか)「ふつか」も3(みっか)「みっか」も4(よっか)「よっか」も5(いつか)「いつか」も…だめということになり、(あたま)(かかえ)えることになったのです。

しかたなく、しばらくのあいだは2文字目(もじめ)の「(にち)」に「ついたち」と4文字(もじ)におよぶよみがなをふって表示(ひょうじ)させていましたが、苦肉(くにく)(さく)なのがあからさまです。

なんとかできないかなー…と(かんが)えつつもとりあえずよみがなが表示(ひょうじ)できるようになった満足感(まんぞくかん)もあり、ながいあいだ問題(もんだい)先送(さきおく)りにしてきました。


そしてつい先日(せんじつ)、その問題(もんだい)解決(かいけつ)()いだして実装(じっそう)となったのです。

「1(ついたち)」を「ついたち」と特殊(とくしゅ)()みかたをするケース、じつはそんなに(おお)くないんです。

リストアップしてみましょう。

(ついたち)=「ついたち」
(ふつか)=「ふつか」
(みっか)=「みっか」
(よっか)=「よっか」
(いつか)=「いつか」
(むいか)=「むいか」
(なのか)=「なのか」
(ようか)=「ようか」
(ここのか)=「ここのか」
10(とおか)=「とおか」
20(はつか)=「はつか」
20(はたち)=「はたち」

さしあたってこれら12のパターンしか(おも)いつきませんでした。
これぐらいならプログラムをちょっと改良(かいりょう)するだけでなんとかなるんじゃないかと(おも)いました。

「1(ついたち)」という2文字(もじ)基軸(きじく)(かんが)えると、「11(にち)」や「21(にち)」と()わけがつきません。
しかし「ついたち」というよみがなを基軸(きじく)(かんが)えれば、それは「1(ついたち)」しかありえません。
さらに、プログラム処理(しょり)でよみがなの文字列成形(もじれつせいけい)()えた出力結果(しゅつりょくけっか)予測(よそく)できます。

そんな(かんが)えに(もと)づいて改良(かいりょう)したのは、プログラム処理(しょり)でよみがなの文字列成形(もじれつせいけい)()えた部分(ぶぶん)です。

(ついたち)(ついたち)という入力(にゅうりょく)にたいして文字列成形(もじれつせいけい)()えた出力結果(しゅつりょくけっか)予測(よそく)できるので、それが12のパターンのいずれかであれば、(ただ)しい結果(けっか)()()えて出力(しゅつりょく)するという(かん)じに改良(かいりょう)したのです。

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

プログラム処理(しょり)文字列成形(もじれつせいけい))による出力結果(しゅつりょくけっか)画一的(かくいつてき)。パターンにあてはまればそれを()()えるという処理(しょり)追加(ついか)しました


これにより、「1(ついたち)」という2文字(もじ)にたいして「ついたち」とよみがながうてるようになりました。

スタジオムーンリーフでは、この12のパターンのみに対応(たいおう)した処理部分(しょりぶぶん)を「ついたち処理(しょり)」と()んでます。
このパターンは()やすこともできるようになっているので、単語登録(たんごとうろく)みたいなこともできます。たとえば、カタカナやアルファベットの文字列(もじれつ)によみがなをうたねばならないようなケースにも対応(たいおう)できるようになりました。

こういうところでひっそり自慢話(じまんばなし)でした((わら)



≫ NEXT_LOG よみがな自動(じどう)処理(しょり)への(みち)【1】その()は「めかぶ」(03 photos)

≪ PREV_LOG 漢字(かんじ)によみがなをうつ【前編(ぜんぺん)(2 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.