ほぼ辞書完成

思いっきり予定を過ぎてしまったのだが、ようやく辞書が完成しました。「ほぼ」というのは、まだやらなあかんことがあるから。プログラムソースのコメントも最近はしっかり書いてなかったので、暇見つけて、これらは書いていきたいと思っている。また、環境設定系のドキュメントも一通りそろえないといけないしね。あと、見た目的に残っているのは著作権関係のルーマニア語ドキュメント。英語は翻訳サイトを使いまくり「へーこんな言い回しがあるのか?」と思いつつ、参考にさせてもらった。



が、とりあえず辞書完成。今のところ辞典の単語数は、13246単語。ルーマニア語は7150単語。日本語は、6096単語。初期状態としては、まぁまぁかなと思う。が、できればとある人の辞書データをどうしても手に入れたかった。彼の辞書データは、およそ15000単語(両方合わせて)。なので、本当に欲しかったのだが、完成と同時には提供できそうにない。マージが大変だし。。。彼のがあれば、重複抜かして約20000単語ぐらいにはなったんじゃないかと思ってる。そして、そのデータは解説・例文文句なし。たとえ間違いがあったとしても、修正可能だしなぁ。ほんと欲しかった。



ま、今回の目玉はなんといってもAjaxだ。あ、俺がプログラミングしたわけじゃないけれどね。そのプログラムを使って日本語入力を容易にしている。容易の意味は、あえて日本語環境を構築しなくてもいいこと。一般の人には検索画面で、しかも一箇所しか見ることが出来ないけれど、編集する人にはいろいろと見れる。テキストボックスクリックすると直下に日本語変換テキストボックスが現れるから。しかも、この機能使うと、日本語の読みとローマ字を入力せずにすむ優れもの(自画自賛*1



あとは、この辞書をレンタルサーバーにアップするのみ。無事に行くかなぁ。それだけが心配。いろいろとモジュールや他のソフトも使っているしね。



今後の予定としては、みんな辞書を使ってもらってデータを増やすことと精度を上げること。精度については今のところひどいからなぁ。間違った訳や読み方も、たまに見かける。まぁ、GNU FDLというライセンシング方式で提供するからいいんだけどね。GNU FDLは内容無保証&著作権表示が必須だけど、ユーザは自由に複製・改変・頒布ができるのだ。今のルーマニア語・日本語関係の状況を言うと、正確性の前に肝心のデータさえも集まっていない。だから、これを元にデータを集積して、だれか志がある人がデータを自由に使って新しくそして正確な辞書にしてくれればいいと思う。まぁ、言ってみれば辞書の元データを集積する装置だね。



また、最近やっていたことと言えば、「チューニング」。約13000語のデータがあるんだけど、内部的には15万件のデータが詰まっている。なので、今後のデータ量が増えたとしても対応できるように、少し頑張った。SQLのチューニングはもちろん、アプリのチューニングもかなりやった。関数呼び出しやめたりというあんまり使わない手も使ったし。でも、不思議なことにデータベースはアプリに比べると十分早いんだよなぁ。F1なみのチューニングはしてないのに(笑)。一応、100万単語ぐらいまでは、対応できるんじゃないかな?少なく見積もっても30万語程度までは対応できているはず。100万を越えたらサーバも、もっといいのにしないとね。レンタルサーバじゃきついでしょ?バックアップも実は早くて15万件で約1分以内。100万語ぐらいになったとしても、2時間以内程度。耐えられる時間だと思う。



実は、このサーバのデータはPDICで使えるようにもしている。隠しでDLできるようにしている。そうすればネットが無い環境でも使えるしね〜。が、PDIC用のデータを作るのに時間がかかってしまって困っていた。Windowsだと1万語で約30分もかかった。しかし、今はチューニングをかなりしたので10分以内だなぁ。Linux上だと3分。100万語だと300分、5時間。週末の夜間バッチで流せる時間だ。また、メモリーにも気をつけている。Linux上で1万語だと50M程度食ってしまう。単純計算だと100万語対応するためには5Gも必要になる。そんなメモリーはどこにもないので、改修しておいた。250M程度で今は対応できるようになっている。その分少しだけ時間がかかるようになったが、4分までは行かない程度だからこれもOKでしょ?



ということで、かなり長い期間にわたって作ってきたわけだけど、かつてやってきた仕事がかなり生きている。プログラムの長時間走行対策などの性能面・セッションハイジャックなどの安全面への対応も、それなりにしたつもりだ。何せ、ボタン押すごとに、そのボタンが正しいものかチェックしているしね。が、その分、時間がかかった。



PHPなんて初めてだし、mysqlも初めて、開発環境eclipseも本格的に使うのは初めて(名前は知ってた)、Subversionも使ったし、コメントのドキュメント化プログラム(PHP & Javascript)も初めて使った。ということで、チャレンジをかなりしたつもり。がPHP4はもう使いたくないなぁ。おもちゃだよ、ほんと。PHP5は知らないけれどオブジェクト指向的(あくまで「的」なのがポイントだと思うが、、)らしい。mysqlpostgresqlに比べてメリットをあんまり感じないので、今後使うことは無いと思う。だって、お金出して初めてトランザクション機能使えるんだよね。PostgreSQLだったら金かけずにトランザクション機能とかついてる。独自の関数(?呼び名忘れた)も容易に組み込めるし。MySQLだとCだからな〜(4.1での話です。5.xxは知りません)。C使えるけれど、だるいからなぁ〜。ポインタが特に。ポインタのポインタとかは全然考え方楽勝だけど(javaもそんな感じだし)、関数へのポインタって一体?って感じです。一回使ったけれど、恐ろしく疲れた覚えがある。

*1:正確にはローマ字ではなく、入力したアルファベットである。入力したものと表示したいローマ字はほとんど一緒だ