パーサ作りは向いてない。

HTMLのタグを取り除いて単なるテキストにしようと思っていろいろやってみた。Luceneというやつのデモを見るとJavaCC を利用していたが、情報系?の一般知識が足りないので、パーサを作るとかいう場合に用語が分からず難しい。というか全く分からん。はっきり言って泣きそうだ。日本語の情報を探してみたが、探し方が悪いのか、なかなか思った方法を解説しているようなページを見つけられなかった。


まぁ、でもいろんなサイトを探して、なんとかHTMLのタグを取り除いて、文字列だけをとりあえずようなパーサを作成できた(やってることは単純なんだけどね)。これだけで、とっても時間をかけたが、とりあえず、動いているようだ。おそらく、変なHTML食わせるとエラーになりそうだが気にしない。


TOKENの定義をしていたのだが、複数を並べるとタグ名と、本文とかで別々にマッチングしたいのだが、その辺が別のTOKENに認識されてしまってすぐParserExceptionを出してくれちゃう。タグの中では、こっちを使って欲しいってやるほうほうがやっと分かってなんとか思うように動くようになった。こんな風なやつを知らなかった。

TOKEN:
{
< TAG : ... > : TAG_START
}


TOKEN:
{

}

でも、ほんとにこんな方法で有ってるのかさっぱり不明だ。まぁ、動くだけで今はよしとしよう。必要なら今後修正だな。


これで、HTML -> TXT とできたので、Luceneに食わせてみたらとりあえずは、解釈してくれた。CJKAnalyzerを見てみたが、どうもうまくIndexができない。Analyzer をみてみないと分からないが、Tokenに分けるわけ方が、予想と違うのかもしれない。ファイルの検索をちょっとやりたいのだが、ちょっとその辺を考える必要があるかも。

参考にさせてもらったページ: