(0:24) どうも体調が悪い。
ちょっと寒気がする。
というわけで、体調不良の原因にはやはり普通の風邪があったようだ。
(もちろん睡眠不足はそれに輪をかける)
最近、また高次CRF に手をつけている。
CRFSuite をもとにした C の実装があまりに汚いので、Java できれいに書き直そうかと。
先行研究のものをベースに。
それにしても、C の実装が汚すぎていろいろ大変だ。
C のやつでは BOS と EOS の特別扱いをしているけれど、後から考えてみるとその手の特別扱いは高次の場合は一切必要がないと気づいた(考えが合っていれば)。
だからもちろん Java 版ではそれをしないで書いているけれど、そうすると C の実装との答え合わせ(同じ結果になるかどうか)がうまくいかない。
それで、C の実装でもその処理をしないように書き直そうかと思ったけれど、汚すぎて手がつけられない。
元々、CRFSuite 自体が C でオブジェクト指向っぽいことをしているので、非常に見にくい。
この前翻訳した「C言語プログラミングの覚え書き(改訳)」では「特別なオブジェクト指向言語なしでも、余計な手間なしでオブジェクト指向のいいところの90%を手に入れることができ、結果についても自分でコントロールしやすくなります。これほどお勧めできる実装スタイルはありません。」なんて書いてあったけれど、ありゃあ嘘だね(英文和訳口調)。
そりゃあ、オブジェクト指向のプログラムはオブジェクト指向言語で書いたほうがいいに決まってるじゃないか。
それでちょっと時間を無駄にしたけど、考えてみると Java 側で素性をいじって BOS・EOS があるかのようにして C の実装に合わせたほうがよかったかもしれない。
明日はその方針で行こう。
(本来なら、家で仕事のことについて考えるなんて労働のダンピングだから厳に慎むべきところだが、そもそも自分の興味のあることを職場でやってしまっているのでその辺の境界線が曖昧だ)
(今の職場はいろいろゆるいので(職場というか、直属の上司がというべきか)、そういうことができる)
(まあ、仕事とまったく関係がないとは思わないし、そう考えてやってるんだけど)
さて、風邪気味だし早めに寝よう。