Subscribed unsubscribe Subscribe Subscribe

sci

最果て風呂

mto に関するメモ書き

いろいろな方法を試してみよう(2012.06.28)

開発も公開も停止している訳だけど、いろいろと練習するための題材になってくれているスクリプト

ファイルから一行ずつ読み込んで処理する、というのがボトルネックになっていることに気付いてはいた。オーダーは O(m x n)、つまり「辞書の単語数×処理する行数」なのだから。改行も含めてすべて連結してしまって、それに対して処理をすれば O(m) になるのではないかと予想する。

ただ、こうすると現在付けている「クオート記号で挾まれた部分への置換処理をしない」というオプションが使えなくなってしまう。なにしろ、行を読み込んだ時に記号の有無によってフラグを立てて、それによって処理をする・しない判定しているのだから。残すなら別のアプローチが必要になってくる。

これまでに自分が使ってきて、このオプションは不要であるように思った。文字列の置換を自動化しても誤りは残っているわけで、どうしても目視による確認が必要になる。そうすると「エディタで範囲を指定しながら少しずつ置換していく」という方法が、遠回りであるように見えて、実は早くて確実なのだ。

実際、RubyLua 等のスクリプト版はベンチマークに使うだけとなり、常用しているのは Emacs LispVim script 版の方だ。以前にも書いたけど、各言語の文法やデータ型を知るためのいわば hello world 的な題材だったから、どうでもいい感がある。

最近 Vim の勉強に力を入れている自分としては、Vim 版と Emacs 版で 25 倍もの開きが出てしまったのを見過すことは出来ない。Vim script を良く知らないこともあるけど、なんとか差を縮めたいと思っている今日この頃なのだった。:help を読む理由付けができた。

漢字辞書に登録する漢字(2012.04.01)

perl 版のオプション表示が他のスクリプト版と異なっていたので統一した。

C# 版の新旧漢字変換の挙動がおかしくて、どうやら辞書の適用順に関するものらしい。ハッシュではなく二次元配列を使って要素番号順に変換するようにしてあるのだが、そうなっていないようだ。あれ?順番が問題という訳ではなさそうだよ?

「今回」は「今囘」になるし「日付」も「日附」になる。しかし「気付」や「気追」は「気」のみが「氣」に変換されて「附」や「魄」は変換されない。おかしい。

GuNunU、Web 版もおかしい。iBook で変換する分には問題ないのだけど、Windows で変換するとダメになる。その挙動が C# 版と同じなので、文字コード関係が原因なのかな?Shift-JIS というか CP932 の所為?

しまった、辞書を更新していなかったのが原因だった。辞書の原本は iBook で作成しているのだけど、それを Windows 側にコピーしていなかったのでした。最近はかな辞書ばかり修正していたので、漢字辞書の方の更新を忘れていたのだ。ただ、「氣魄」は変換できていない。

お〜、なんということでしょう!「迫」と「追」を間違ってたよ。これでは変換できないですお。何事もそうだけど他者の目による確認というものは必要だ。個人なら他人、会社なら社外、国なら国外というように。漢字や仮名使いに詳しい人にチェックしてもらった方が良いね。

今回の件で知った事は、C# は内部的には utf-8 で処理しているのではないか?ということ。

Web 版のレイアウトを Windows GUI 版と同じようにした。CSS についてはよくわかないので html に直書きをした。ページは 2 枚だけなので、あれこれ悩むよりは書いちゃう方が良い。

携帯電話からもアクセスして変換することが出来るのを確認。お金が無いので 3G ではなく家の wifi から接続したけど。自分のものは画面解像度が 480 なので、縦にして見るとテキストエリアが行送りになる。パソコンのウェブブラウザで「左右で表示されている」ものが携帯では「上下になる」という状況だが、これは良いでしょう(つまりブラウザのウインドウ幅を狭めた状態)。

ラベルとテキストエリアとボタンをひとつの塊として配置したいので、table ではなく float を使って p タグで括ってレイアウトした。ボタンに色も付けた。この色は VimEmacs で置換した時に強調色として使っているものと同じ。

また、無駄なパケット転送が発生しないように、説明文を表示するのはトップページのみとした。これで変換を繰り返すだけなら、以後は説明文は表示されない。JavaScript を使えばもっと減らせるのだろうけどね。

先日辞書に「って.」を登録したのだけど、このピリオドは正規表現の任意の一文字に相当するので、「って」が「つて.」のように変換されてしまう。う〜む、これはダメだ。単純置換なので正規表現を使う必要はないのだけど、何となくそれで実装しちゃったからなぁ。辞書に問題ありあり。

Web 版に下記のようなアクセスがあった。蝋燭や蜜蝋で使われるやつだけど、これって常用漢字じゃないので辞書に登録していなかった。でも、通常使うのは「蠟」の方なので追加しておいた。

%E8%A0%9F%
蠟

これってもの凄く助かる。他人の目ってホント助かる。