2016年度の未踏事業の応募資料を公開します。
https://drive.google.com/file/d/0B3_gFEFI2149VEdKeWxsWnJsNlU/view?resourcekey=0-tiHOfGdyOg54X3ZUTVLzZA
テーマは「単語の共起情報を利用したかな漢字変換システム」です。
(資料内では「このひとことでげんきになった」を変換対象の文字列の例として挙げていますが,「けんきゅうする」の間違いです)
なぜ公開するか
一言で言うと、落ちたからです。しかし誰かの趣味や研究テーマになれば、未踏に落ちたとしてもアイデアの有効活用にはなるだろうと考えてます。
なぜ落ちたか
未踏の審査をして下さった方からは次のようなコメントを頂いています。
- 「提案手法なしとありとで、提示される候補を比較し、改善の程を評価するというのでは、ソフト開発ではなく研究となってしまいます」
- 「全く独自にかな漢字変換システムを全部作るのではなく、既存のかな漢字変換ソフトウェアに組み込むという方法を取らないと、なかなか世の中には受け入れてもらえないでしょう」
- 「共起情報ではなく、広い意味での熟語的な辞書をどんどん作っていくという方法ではだめでしょうか?」
提案手法なしとありとで改善の程を評価するというのでは、ソフト開発ではなく研究となってしまいます
全くそのとおりです。来年は気をつけます
広い意味での熟語的な辞書をどんどん作っていくという方法ではだめでしょうか
もちろん辞書を作ったほうがコストが低く済むなどの利点があります。
一方で、私は単語の情報をもっとぼんやりと(例えばword2vecのような形で)保持したほうが精度が上がるだろうと考えています。
既存のかな漢字変換にcontributeしないのはなぜ?
D言語で書いたからです。
コード
途中まで作ったものがGitHubに置いてあります。
以下の部分は既に実装済みです。
- 2単語のつながりまたは2品詞のつながりを学習する部分
- 単語の出現頻度を計測する部分
- 経路探索アルゴリズム
内部で辞書として用いているTrie木もD言語のライブラリとして公開しています。
なぜD言語で書いたの?
- 保守しやすいからです。D言語はC/C++に比べると読みやすく、また単体テストも自然に書けるようになっています
- かな漢字変換はネイティブで動作する必要性があります。かな漢字変換を使うためにJavaやPythonの実行環境をユーザーにインストールさせるわけにはいきません
- かな漢字変換は高速に、なめらかに動作する必要があります。RubyやPythonは遅すぎてとても使えません
- 既存の資産を活用できるからです。D言語はC/C++のライブラリを呼び出すことができます
Go言語とかHaskellもあるよ?
他にも優れた言語はたくさんありますが、習得するのが難しかったり、いまいち好きになれなかったりということがありました(例えばGoだと抽象化まわりが好きになれなかった)
作り続けないの?
作りたいとは思うのですが、今はもっと面白いと思える研究に取り組んでいるため、しばらくかな漢字変換には手を付けていません。また興味が湧いたら作ろうかなと思います。
おわりに
来年もがんばる