らかぁ4挺

4行日記

続・コーパス

そういえばperlを再開するにあたって「なるべくコードを書かない」なんて高らかに宣言しておいて、200ライン超のコードを書いて凹んでいます。しかも1行1行内容が濃ければまだ救いようがあるのですが、たいした事やっていないのになんだかなぁって気持ちでいっぱいです。
というわけでその200ラインかけて某新聞の記事抜き出し処理を行ったのですが、何だか記事抜き出しに漏れがあるような気がしてちょっと調べてみたら、結構深刻な問題が。

記事抜き出しプログラムのアルゴリズム

  1. RSSからitem情報を1件抜き出し
  2. 最終更新タイムスタンプより新しければ情報追加。古ければ読み捨て
  3. 1〜2を件数分繰り返し
  4. 今回取得した中で一番新しいタイムスタンプを最終更新タイムスタンプとする

ってな具合で、重複項目を削除していたのですが、某新聞の場合、後から古いタイムスタンプのデータが追加されることがあるのを知りました。当然上記アルゴリズムに当てはめると読み捨ててしまうため、漏れが出ていたというわけです。
結局これまで保存したURLを保持しておいて、重複するかどうかを判定するくらいしか無さそうです。それをperl側でやるのは、まあたいした事がないんですけど、なにせ、これ以上コードを大きくしたくないんで、DB側に任せてしまおうかと。ただ今一番の問題が、MySQLの日本語入力でトラブっているんで、本当にうまくいくかどうかは不明。ま、コーパスとして使うだけなら今のままでも十分だって、小生の左の耳元で黒いシッポの尖った羽の生えた小動物(?)が囁いていますけど...。