Wikipediaチャンク頻度解析プログラムの実行&デバッグ

 前回のWikipediaページの文字コードバグについて原因を調べたところ、前にも引っかかったHTML特殊文字の変換失敗が悪さをしているようでした。今回はRubyを使用しているので、RubyでHTML特殊文字を正しく変換してくれるものを探したところ、CGI.unescape()を利用すれば良いということが分かりました。
 また前回までは日本語を含むURLを用いてgetするためにAddressable::URI#normalizeを用いていましたが、コレを使うと「=」などの特定の文字が正しくURIエンコードされないことが判明しました。よって使い方を変えて、Addressable::URI.escape()で変換することで、全ての日本語表記をURIエンコードされるようにしました。
 以上の修正点をふまえて、HTMLを取得してNokogiriに渡すところまでは以下のように書くことにしました。

begin
document = Nokogiri.HTML(CGI.unescape(open(Addressable::URI.escape(url), 'User-Agent' => 'ruby').read))
rescue => exc
puts "Error occurred at #{url}:"
puts exc
return
end

エラー処理も加えて、あるウェブページにアクセスできなかった場合などに、強制終了せず残りのページの処理を行わせるようにしました。
 このプログラムを牧場のクラスタで実行してみて、20分ほどかけて約600ページほどから頻度解析を行うことができました。以下に解析結果の一部を表示します。

この 2542
ある 2174
その 2025
ことが 1614
ことを 911
なる 786
する 759
また、 647
ため、 585
ことに 505

 ここで得られた高頻度チャンクは一般的に良く用いられるものなのであまり意味が無いものと考え、新着論文レビューから得たチャンクリストから同じチャンクを除いていこうと思います。次回、考察とチャンクの選別を行っていこうと思います。