はじめに ScalaMatsuri 2016で「ScalaとSparkによる日本語テキストマイニング」を聞いて面白そうだったので、まずは日本語形態素解析エンジンkuromojiを触ってみることにしました。 といっても形態素解析するだけなら、ただ単にkuromojiを呼びだすだけなので、もうちょっと賢そうなことをしたいなぁと思っていたところ、「kuromoji.js使って構文解析した」という記事を読みました。 確率自由文脈文法による構文解析……これは何だか凄そうです! 自由文脈文法って何だか聞き覚えあるなと思っていたら、そうそうプログラミング言語でも親しみのあるBNF(バッカス・ナウア記法)で記述できる文法のことでした。まぁ単純な置換ルールによる再帰的な文法のことですね。その置換ルールに確率を付けたのが確率自由文脈文法、と。 「文脈自由文法の話」というスライドがとても分かりやすかったです。