前にも書きましたが、ブログに、今読まれている内容の類似エントリを推奨してくれる機能が無いものかと考えておりました。この様に考えついたのは*1、最近のニュース系サイトでは、当然の機能だからです。
例えば、CNETの「この記事を読んだ人におすすめ」、IT mediaとMYCOMの「関連記事」が該当します。この機能の建前は、読者により記事を理解してもらうためでしょうし、本音は、ページビューを増やすためでしょう。それでも、お互いにメリットがある仕組みではないかと思っています。
また、Googleでは、ページの内容から類似ページを表示する「Google Related Links」があるのですが、日本語ではあまりうまく動いていないようです。
ブログでは、関連エントリを推奨してくれる機能は見られません。確かに、月毎、カテゴリ毎、タグクラウド等で、過去の類似エントリを参照できますが、それは、読者が能動的に行動することを期待した機能です。
これでは、どれほど過去に優秀なエントリを掲載していても見られない可能性は少なくないでしょう。ブログは、過去のエントリを見られることはあまり多くは無いのではないかと思っています*2。新規の読者に過去のエントリを読ませるには、よほど最初に見たエントリが優秀で、ぜひ過去のエントリを見たいと衝動に駆らせないとだめなのではないかと考えています。
そこで、読者に過去のエントリを探す行動を取ってもらわなくても、興味が引きそうなエントリを紹介すれば、万が一でも過去のエントリも読んでもらえれるのではないかと思い、今回のツールを作成することにしました。
当初は、Google SOAP Search APIのデータをこねくり回せばできるかと思っていたのですが、そういえば新規顧客は打ち切っていました。
変わりにGoogle Ajax Search APIを用いることにします。Google Ajax Search APIは、検索対象サイト*3、検索キーワードを付与すれば、検索結果が表示されます。これを使用すれば、類似エントリ(≒特定サイト&キーワード検索結果)を表示することが可能ではないかと考えました。
但し、できるだけコンパクトにするために、検索窓を配置しません。以下がそのサンプルです。
これは、以下の文を設置しただけです。
<br>src='http://www.mizuao.com/SimilarEntrySeach/similarentry.php?
tag=Intel,AMD&unsearch=rblog-tech.japan.cnet.com/0061/2006/12/intelamdcpu130n_9e1b.html
&key=ABQIAAAA2RUFceGKQVqf9go66awiWxQZJw3MKgUWuULSQ3HJRKRmmPlgwBT56qCBq-bjH9
MsSUKAyDkW7ZjNzA&site=http://rblog-tech.japan.cnet.com/0061/&blogname=%25E5%25B0%2586%2
5E6%259D%25A5%25E3%2581%25AE%25EF%25BC%25B0%25EF%25BC%25A3%25E6%25A5%25AD%25E7%2
595%258C%25E3%2583%2591%25E3%2583%25AF%25E3%2583%25BC%25E3%2583%2590%25E3%2583%25A
9%25E3%2583%25B3%25E3%2582%25B9'>
私のサイトにおいてあるsimilarentry.phpに、幾つかのデータを渡すことにより、Google Ajax Search APIを実現しているだけです。設定する項目は以下の通りです。
| 項目 | 中身 |
|---|---|
| tag | 検索するキーワード(2バイト文字不可) tagが複数ある場合は、","で区切って設定 |
| key | Google Ajax Search API から取得するkey |
| site | 検索対象にするURL |
| blogname | ブログ名 (2バイト文字はencodeURIすればOK) |
| untag | 検索しないキーワード |
| unsite | 検索対象から外す*4 |
これらを、上記のサンプルの様にづらづらと並べると、本ブログの類似エントリを表示可能になります。ブログ名だけ2バイト文字をencodeURIして設定してください。encode及びdecodeは、ここで行ってみてください。
この方式ならば、ほとんどの設定可能なので、融通が利くのではないかと思っています。もし、similarentry.phpのソースが必要な方は、ここから持っていってください。このスクリプトをPHPが動作するサイトに置けば、動くと思います。
当然の様に検索対象のURLを変更すれば、どこのサイトでも検索することが可能です。そう、CNETの記事を幾つかのキーワードで検索して、表示することも可能です。
但し、この方式では幾つかの問題があります。
もう少し練る必要があります。ただ、思い立ってから短時間でここまでできたのは、Googleに感謝しています。でも、もう少し細かい設定ができるとなおうれしいのですが...
それでも、構文解析ができない私には、Googleの検索の力を借りざるを得ないのが本音ではあるのですが。
3番の項目だけは、対処は可能です。もし、そのサイト特有のCGIにしてしまえば、key、site、blognameの設定項目を減らすことは可能です。汎用性を高めるために、各種設定可能にしていますが、用途によっては邪魔以外何ものでも無いでしょう。
5番の項目は、MovableTypeの様なサイトならば、解決策を見出すことができると考えています。ここでは制約が多すぎて不可能です。
上記のクリティカルな問題以外にも、小さい問題は山積みですが、それは、また時間をかけて解決をしていきます。
作っておいてなんですが、設定項目が多すぎて、手軽ではありません。できるだけ、人の手を煩わせない方式で、類似エントリを表示できるように、今後も考えてみたいと思っています。
しばらくは、エントリの最後の方に邪魔にならない程度に貼ってみようかと思っています。
*1:似たような理論を再度展開しても申し訳ありません。
*2:これは、ブログが日単位をベースにしているからではないかと思っています。
*3:blog可。
*4:あるエントリで紹介する類似エントリが、そのものだと辟易するため、除外するURLを指定できるようにしました。
※このエントリは CNET Japan ブロガーにより投稿されたものです。シーネットネットワークスジャパン および CNET Japan 編集部の見解・意向を示すものではありません。
コンテンツ市場14兆円の中身と行方
原宿で野宿を含む15時間 - iPhone行列完全ドキュメント
「あなたとは違うんです」首相の存在感
我が家のD4もようやく機能強化に旅立ちます
iPhoneの「手書き入力」を試してみた
まず10年間は泥のように働け2
火災報知機と情報伝達(意見募集、 2008 年秋)
Joomla CMSに投票しよう!
Google Chrome Parallelsでも爽快です。
ストレス厳しい職場を生き抜くたった1つの知恵みんなのお題では、ブロガー同士で質問を出し合いそれに対する回答や意見を集めています。今日はどんな話題が盛り上がっているでしょう?
サーバ仮想化・グリーン化の利点を最大化!CNET Japan ブログネットワークは、元はCNET Japanの一読者であった読者ブロガーと、編集部の依頼により執筆されているアルファブロガーたちが、ブログを通じてオンタイムに批評や意見を発信する場である「オピニオンプレイス」、また、オピニオンを交換するブロガーたちが集うソサエティです。
広い視野と鋭い目を持ったブロガーたちが、今日のIT業界や製品に対するビジョンや見解について日々熱く語っています。
CNET Japanやその他サイトが提供するITニュースやコンテンツへの意見や分析、 ビジネスやテクノロジーに対するビジョンや見解について語っていただける方を 募集しています。ご応募はこちらから
ブログの投稿はこちらから(※ブロガー専用)
今年最も活躍したブロガーを表彰します。詳細はこちらから
これは、CNET Japan 編集部の依頼に基づいて執筆されているCNET Japan アルファブロガーによるブログの印です。
CNET Japan ブログネットワーク内で拍手の代わりに使用する機能です。ブログを読んで、感激した・役に立ったなど、うれしいと思ったときにクリックしてください。多くGood!を獲得した記事は、より多くの人に読まれるように表示されます。
[レビュー]高い信頼性を普通に使う地球に優しい電源ユニット--Antec EarthWattsシリーズ EA-650
今週の新製品総チェック:ノート、デスクトップ、UMPCまでPC秋モデルが続々
今週の新製品総チェック:薄さ13.9mmのサイバーショット登場!NEC「LaVie」はデザインモデルが