日本語を扱うために考えるべき5つのこと

Nutchを日本語対応するためにやるべきことを整理してみました。
対応はこのあと順次やっていこうと思います。

クロールした結果を日本語で検索したり表示したりする場合に必要になります。これはTomcatの日本語対応として一般に知られている方法を行えばOKです。以下を参考にしてください。
Linux で root 権限なしでも最新の Tomcat をインストールする1つのやりかた - 日本語化設定付き

  • jp, ja問題

Nutchの検索ページではブラウザの言語設定を取得して、各言語向けページにリダイレクトするようになっているのですが、そのJSPが日本語ではうまく動きません。IEでもFierFoxでも日本語はjpなのですが、Nutchで用意されているがjaのためリダイレクトがうまく行っていません。なんでこんなことになっているのか....

  • キャッシュが文字化け

検索結果からcachedをクリックしても表示されるHTMLが文字化けすることがあります。というかほとんど文字化けします。

クロールして取得したHTMLの文字コードUTF-8ばかりなら問題ないのですが、実際にはEUCやSihtJISがあったりします。クローラ内部の文字コードは統一してしまった方が便利だと思うので、文字コードの変換処理が必要になります。このときMETAタグのcharsetをUTF-8に変更するのか、オリジナルのまま残しておくのかはどっちがいいのか...

Nutchデフォルトのトークナイザは、Luceneのスタンダードトークナイザーぽい動きをします。英数は単語単位に分かれる一方、日本語は1文字単位に分割されます。いわゆる1-Gramの感じです。
Nutchの検索窓に「クローラ」と入れると、「ク」、「ロ」、「−」、「ラ」に分割され、検索式としては「ク OR ロ OR ー OR ラ」になります。
" でくくってフレーズ検索にするとトークナイズされずに「クローラ」で検索されます。
形態素単位に分割したい場合や、CJKアナライザなどの2-Gram等でトークナイズする場合にはトークナイザーの変更が必要です。


ではでは