IT系ニュース専用検索エンジン:Yahoo! JAPANのSearch APIとはてなブックマークのマッシュアップ

» IT系ニュース専用検索エンジン – Web Services by Yahoo! JAPAN, はてブ

Yahoo!ニュースもGoogle Newsも古い記事は検索できないのがちょっと不便だなぁ、と思ってつくってみました。CNETやITmediaなど主要と思われるIT系のニュースサイトだけを検索対象にした検索エンジンです。

はてなブックマーク件数取得APIを一度使ってみたかったので検索結果の各ページの被はてブ数を載せています。

おまけとして、「被はてブ総数が一番多い検索結果は?」と検索結果の最初の10件の被はてブ数の合計のランキングも出しています。今のところ「Web2.0」が1位。

PEAR::Cache_Liteで一応キャッシュも作っていますが、違うユーザで同じ検索を短時間のうちに行うとは思えず、リアルタイムに2つのAPIにアクセスするとレスポンスが少々悪い。そこでAjaxload。Submitした瞬間にJavaScriptでこのNowLoadingのアニメーションを表示させると、次のページを読み込んでいる間、何となく間を持たせてくれるような気がします。最初はAjaxではてブを後から読み込むようにしようかとも思いましたが、このアニメーションで数秒待つのを我慢してもらえるならお手軽かなぁ、と。

また、検索結果の中で同じ内容の記事はひとまとめにしよう、と当初考えていました。

「すべての漢字を取り出す正規表現」をPHPで試す:phpspot開発日誌

を参考に、JavaScriptで

var res = str.match(/[一-龠]{2,}|[ァ-ヴー]{2,}|[a-zA-Z\.]{2,}|[a-zA-Z]{2,}/g);

こんな風に書くと記事の中からキーワードっぽいものを拾ってくれます。あとはTF-IDF風にキーワードに重みをつけて(CNETなどは記事のタイトルごとに”CNET Japan”が含まれるのでそういったキーワードの重みが下がるように)、共起率で記事の類似度を計る。許せるレベルの精度は出たのですが、2、3個の記事がグルーピングされてもあまり嬉しくなく、その割に共起の計算がそれなりに重いので一瞬待たされるのがネックでした。Safariで先ほどの正規表現が動かなかったのも難点。

今回はお蔵入りですが、クライアントサイドのCPUを使ってこういった計算をさせるのも面白いはず。

追記:

AjaxLoad、というよりIEの問題でちゃんとアニメーションしないことを教えてもらいました。ホリデープログラミングなので許容範囲?
» Ajaxload – Ceekz Logs

This entry was posted in つくる. Bookmark the permalink. Both comments and trackbacks are currently closed.

One Trackback

  • By IT trends by 渡辺翔太 on 2006/04/26 at 11:16 am

    簡易形態素解析javascriptプログラム

    日本語を利用する際に「単語解析」を如何にするかは悩ましい問題の一つだ。 英語であ…

Page optimized by WP Minify WordPress Plugin