(1:08) 最近、寝るのがいつも2時ぐらいになってしまってる。
よくない。
1時半には寝たい。
そのためには日記を早めに片付けないと…。
今日はルーチンワーク的な感じで、面白いことはできなかった。
しかし、合間合間にいろいろ考えたりはしていた。
MeCab は、考えれば考えるほどあまりにも日本語に特化している気がしてきた。
(それ自体は悪いことではない)
(予防線)
(誰に対して?)
まず、「右連接」「左連接」のようないかにも膠着語向けの概念がある。
例えば、タイ語のような孤立語ではそういうのはあまり必要ないだろう。
それに、rewrite.def のようなものはかなり言語に対する直感が必要だ。
feature.def 的なものなら、言語について詳しく知らないでも作れるだろうけど。
CRF 的に考えると、MeCab でのラベルはrewrite.defによって作られる数千個単位のIDということになる。
(右連接・左連接・Unigramとあってややこしいけど)
それに、MeCab の場合、その Unigram ID がわかって終わりということではなく、辞書の見出し語まで復元する。
これは日本語の特性によるものだ。
というのは、日本語では「空」という文字があったときにそれに「名詞」というラベルをつけるだけでは不足で、読み(「そら」「から」「くう」など)も知りたいということがある。
それは ID が同じなら不可能なので、それをやりたければ「空/そら」「空/から」「空/くう」などを別の ID にしなければならない。
かなり職人芸っぽくなってくる。
ぼくは言語に興味があるほうなので職人芸を否定するわけじゃないけれど、それでももうちょっと職人芸成分を減らせないかというのは思う。
別の言語への応用も考えたいし。
いまちょっと考えているのが、「単語分割」と「見出し語判別」をツーパスでやるということ。
単語分割は文字単位の CRF でやる。
(そうなると、KyTea の http://www.phontron.com/paper/neubig11aclshort.pdf とかも読んでおかないと)
それから、それぞれのセグメントが辞書のどの見出し語にあたるかをセグメント単位の CRF で判別する。
これなら、セグメントに対応する見出しが辞書になければ未知語という感じでやりやすい。
それに、文字単位・セグメント単位の CRF なら plain old な linear-chain CRF なので、ぼくの高次化がそのまま適用できる。
もちろん MeCab よりはだいぶ重くなりそうだけど、今の時代ならありかもしれない。
テーマ別日記は、今日は「夢の将来」。
上記のアイデアがうまくいって、MeCab 越えの精度を出しているというのが夢の将来ということにしておこう。
(あからさまな手抜き感)
(でも、この日記シリーズ自体はいいと思っている)
(もうちょっと早く書き始めないと)
(もう1:31だ)
(寝よう)