Bing Search APIとRubyを使って簡単に検索エンジンを作る方法

検索エンジンと言えばGoogleやYahoo!が有名ですが、2015年2月現在、これらの検索エンジンは検索APIを提供していません。対して、Microsoft社が運営している検索エンジン Bingは現在でもAPIを提供しており、開発者は検索エンジンの機能をAPI経由で使うことができます。しかも、無料です。

概要

  1. APIキーの取得
  2. searchbing Gemのインストール
  3. Rubyによるコード実装

手順

1. APIキーを取得する

Bing Search APIを使うには、APIキーが必要になります。まずは、APIキーを入手しましょう。APIキーは下記のページで手に入ります。

月間5,000トランザクションまでは無料で使えます。右上にある5,000トランザクションの部分のサインアップをクリックします。

ちなみに、開発者向けのポータルは下記のURLになります。

検索API以外にも音声認識や翻訳、シノニムといった人工知能自然言語処理技術を応用した様々なAPIを提供しています。いろいろと応用がきくのでチェックしておくと良いでしょう。

2. Gemをインストールする

RubyからBing Search APIを使うには、gemライブラリの searchbing を使うと簡単です。

rubygemsがインストールされた環境のターミナルから、下記のコマンドを実行します。

searchbingをインストールする
% gem install searchbing
 
Fetching: searchbing-0.2.4.gem (100%)
Successfully installed searchbing-0.2.4
1 gem installed

正常にインストールが完了すると、1 gem installedと表示されます。また、gem list コマンドでも確認できます。

listコマンドで確認する
% gem list
 
*** LOCAL GEMS ***
 
searchbing (0.2.4)

3. Bing検索をRubyで実装する

Rubyで実装したソースコードが下記です。MacOS MountainLionのRuby1.9.3環境にて、動作確認をしています。

APIキーの部分は、アカウント情報ページのプライマリアカウントキーで表示されている文字列を入力します。

query変数には、実際に検索したい検索キーワードを入力します。

Bingによる検索をRubyで行うプログラム
# -*- coding: utf-8 -*-
require 'searchbing'
 
APIKEY  = "自分のAPIキー"
query   = "検索キーワード"
 
bing    = Bing.new(APIKEY, 10, 'Web')
results = bing.search(query)
 
puts "#{results[0][:WebTotal]} 件"
 
results[0][:Web].each do | page |
  puts "=" * 80
  puts page[:Title]
  puts page[:Description]
  puts page[:Url]
  puts page[:DisplayUrl]
  puts "=" * 80
end

動作確認

上記のプログラムを実行すると、次のような検索結果が得られます。

「人工知能」で検索した結果
2420000 件
================================================================================
人工知能 - Wikipedia
人工知能(じんこうちのう、英: artificial intelligence、AI)とは、人工的にコンピュータ上などで人間と同様の知能を実現させようという試み、或いはそのための一連の基礎技術を指す。
http://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD
ja.wikipedia.org/wiki/人工知能
================================================================================
================================================================================
人工知能のやさしい説明「What's AI」
人工知能(Artificial Intelligence; AI)とは何か,どんな人工知能研究が行われているのか,人工知能技術はどのように使われているのかといったことについての説明です. ... 人工知能って何? そもそも人工知能とは何でしょうか?ここで ...
http://www.ai-gakkai.or.jp/whatsai/
www.ai-gakkai.or.jp/whatsai
================================================================================
================================================================================
人工知能とは - IT用語辞典 Weblio辞書
人工知能とは?IT用語辞典。 学習・推論・判断といった人間の知能のもつ機能を備えたコンピューター-システム。応用として,自然言語の理解,機械翻訳,エキスパート-システムなどがある。 AI 。 「人工知能」に似た言葉»&...
http://www.weblio.jp/content/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD
www.weblio.jp/content/人工知能
================================================================================
================================================================================
人工知能の歴史 - Wikipedia
人工知能 (AI) の歴史は、古代の神話、物語、噂などから始まる。名匠が人工物に知性または意識を与えたという話である。パメラ・マコーダック (英語版) はAIの起源について「神を人の手で作り上げたいという古代人の希望」だと ...
http://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD%E3%81%AE%E6%AD%B4%E5%8F%B2
ja.wikipedia.org/wiki/人工知能の歴史
================================================================================
================================================================================
凄いけど恐ろしい…着実に人に近づいてる人工知能 - NAVER まとめ
凄いけど恐ろしい…着実に人に近づいてる人工知能
http://matome.naver.jp/odai/2138897243453506001
matome.naver.jp/odai/2138897243453506001
================================================================================
================================================================================
人工知能って何? - 人工知能学会 (The Japanese Society for ...
人工知能って何? 「人工知能」とは何だと思うでしょうか?まるで人間のようにふるまう機械を想像するのではないでしょうか?これは正しいとも,間違っているともいえます.なぜなら,人工知能>の研究には二つの立場があるから ...
http://www.ai-gakkai.or.jp/whatsai/AIwhats.html
www.ai-gakkai.or.jp/whatsai/AIwhats.html
================================================================================

検索対象の変更方法

Web検索だけでなく、画像検索、動画検索、ニュース検索をすることもできます。上記ソースコードの“Web”の部分を下記のいずれかに変更すれば、それぞれの検索方法での検索結果が取得できます。

検索APIを使うと、検索エンジンが取得している様々なデータを得ることができるようになります。自前でクローラーを使って、すべてのWebページを取得するのは現実的ではないので、APIを有効活用するのがおすすめです。

関連