Ermitejo - エスペラント語日本語翻訳

#BLOGO
形態素解析機能がエスペラント検定に合格 >
2007/9/10

字上符付き文字の葛藤 (単語辞書引き機能 versio 0.9.4)

分類: 公開, 開発記 / タグ: , , , , ,

音韻関係のモジュールを先の辞書引き機能の改版に合わせて新規に作成したのですが、予想通り、初物の機能はなかなか安定しませんでした。それというのも、エスペラントの規則性を過大評価したというかこれに甘えてしまい、乏しいテストケースしか用意しなかったのが敗因と言えます。結果、連日連夜の改版を行うこととなりました。大多数の場合は問題なかったとはいえ、誤った発音が表示されたり、処理が異常終了したりすることがあり、反省しています。

もう少し具体的に述べますと、エスペラントの規則性に例外があるというのではなく(sam/ide/an/oやらといった場合は除きますが)、Perlで字上符付き文字を実装する際に手抜きをしており、これが後々尾を引いているといったところでしょうか。

実は、エスペラント語日本語翻訳システム「Ermitejo」は、21世紀、このUnicodeの時代に、字上符付き文字の内部処理を前時代的なx後置式の代用表記で行っています。関数名やら変数名やらをエスペラント式に名付けているだけなら特に問題がないのですが、取り扱うデータを代用表記すると、色々不都合が起きます。

普通に処理している場合には、外部から正書法ないし代用表記で突っ込まれたデータのアルファベートを変換して内部で使い、外部に表示する際には逆変換して正書法で返しているので問題はありませんでした。しかし、エスペラントの誇る1文字1音という原則が崩れ、「ĉ」の音「ʧ」を「cx」と2文字で表現することになりますので、音韻関係の機能の実装で舞台裏が拙さが露見したという次第です。

責任転嫁するつもりは毛頭ありませんが、コーディングに使っているエディタのサクラエディタがUTF-8への対応が甘く、なかなかこうした悪癖を改められないという思いもあります。サクラエディタは内部コードがUTF-8等ではなくShift-JISなので、UTF-8のファイルの読み書き自体は出来ますが、エスペラントの字上符付き文字等やIPA等は保存出来ないので、痛いところです。今更秀丸にも戻れませんが、さりとてサクラエディタの抜本的な書き直しを行える技量も時間も私には無いので、開発者の方々に声援を送ることしか出来ません。

【追記】kobake氏のウェブサイト「digital hole」にて、UNICODE版サクラエディタの開発が進められています。

ということで、そうした発音関係の修正を中心として、ここ数日での改版点の委細を以下に転記します。

修正点 versio 0.9.2 ~ 0.9.4

 その他の改版履歴は、「改版履歴」ページにあります。

versio 0.9.4 (22-a publikigo, en 2007/09/10)

  • 【仕様変更】標準辞書の元データである『実用エスペラント小辞典』(PEJVo)の類義語・同義語・反意語・関連語に付与された訳語を削除しないようにしました。単純にこれらの用語へのリンクを張った場合、リンクに訳語部分も含んでしまい、versio 0.8.0での追加機能の動作を妨げていたためにversio 0.8.2で除いていましたが、表示時の処理を改めることでこれを改善したものです。
  • 【仕様変更】標準辞書の元データである『実用エスペラント小辞典』(PEJVo)に於いて、一部複合語の語根・接辞の区切り文字が文法的に正しくない場合にも、正しく発音を字訳出来るようにしました。例えば、これまで「akv/aj animal/oj」をそのまま「アクヴアイ アニマルオイ」と読んでいましたが、これを「akv/a/j animal/o/j」であると解釈して「アクヴァイ アニマーロイ」と正しく読めるようにしました。
  • 【表示修正】見出し語のインクリメンタルサーチで、表示順を一部改めました。ピリオドやハイフンを含む語は、それらの記号がなかったものとしてソートするようにしました。例えば、t.n.はこれまでtabakbutiko(tで始まる一番最初の語)よりも前に表示されていましたが、PEJVoの並び順通り、tizanoとtoboganoの間に表示するようにしました。空白については仕様を変えていません。
  • 【表示修正】ŭを含む文字のアクセントの誤りを修正しました。例えば、これまでsaŭrkraŭtoを「サゥルクラウート」と読んでいましたが、これを正しく「サゥルクラゥト」と読むようにしました。
  • 【障害対応】「!」や「’」等の記号や、数字を含む語の発音の字訳に失敗して全体が異常終了する不具合を是正しました。

versio 0.9.3 (21-a publikigo, en 2007/09/09)

  • 【機能追加】略語の場合もversio 0.9.2のようにアルファベートを読み下すようにしました。例えば、KDは「クド」ではなく「コードー」と読むようにしました。
  • 【表示修正】versio 0.7.0と0.5.0の一連の日本語化表示について、一部に変換漏れがあったため、これを是正しました。
  • 【障害対応】ピリオド・ハイフン・空白で区切られた語が1音節のみとなっていた場合に、発音の字訳に失敗して全体が異常終了する不具合を是正しました。これはversio 0.9.2の過剰作用によるエンバグによるものでした。
  • 【その他】プレゼンテーション層のモジュールについて、保守性・可読性を高めるよう書き改めました。

versio 0.9.2 (20-a publikigo, en 2007/09/08)

  • 【表示修正】辞書引き結果の表組みについて、行の順番を整理しました。これまでPerlのハッシュが取り出すがまま(順番は場合により異なる)の状態であったものを改めたものです。
  • 【機能追加】辞書引きに失敗した場合には、その旨を「意味」行に明記するようにしました。
  • 【障害対応】複合語の形態素で、品詞語尾により派生する場合には、派生結果の候補として(「本来副詞」等の)「辞書に品詞が書いてある」単語が選択されないようにしました。例えば、-/ti/-という形態素候補があった場合、形容詞語尾aを加えてtiaという形容詞を派生結果候補としてこれまで得て来たものを改めたものです。
  • 【機能追加】ピリオドで区切られた単語(k.a.等)の検索時には、発音はアルファベートを読み下すようにしました。例えば、k.a.は「クア」ではなく「コーアー」と読むようにしました。
  • 【障害対応】ピリオドで区切られた単語(k.a.等)の検索時に音韻関連の解析に失敗して全体が異常終了する不具合を是正しました。
  • 【障害対応】字上符付き文字の後ろに母音が融合しない場合の発音の解析に失敗して全体が異常終了する不具合を是正しました。

こうしてみると、怒濤の更新というよりも頻繁なデバッグ、そしてその裏には今般の膨大なエンバグがあったという感があります。反省反省。

#33 (2007/09/10 01:47:08), Gardejo

コメントはまだありません »

コメントはまだありません。

このコメント欄の RSS フィード トラックバック URL

ご意見・ご感想をお寄せください

形態素解析機能がエスペラント検定に合格 >
< 脇書非表示 > 脇書表示