このページでは、kizAPIを使ってある言葉の関連語を取得する方法を紹介します。
kizAPIとは
kizAPIとは、kizasi.jpというブログ検索サイトが提供しているWeb APIです。機能としては、ある言葉に関連する言葉を取得したり、今話題になっている言葉を取得できたりします。利用規約はここの最下部「利用規約」にあるので、利用する場合はあらかじめご確認ください。
関連語の取得
下記index.htmlをブラウザで表示すると、「sho」に関連する言葉が表示されます。依存モジュールとしてjQueryとjquery.xdomainajax.jsを利用しています。jquery.xdomainajax.jsはクロスドメイン対策で利用しています。ここからダウンロードして下さい。
<!-- index.html --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>kizAPI</title> </head> <body> <h1>Terms</h1> <div id="terms"></div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="js/jquery.xdomainajax.js"></script> <script src="js/kizapi.js"></script> <script src="js/index.js"></script> </body> </html>
kizAPIにアクセスしているのがkizapi.jsです。引数で渡した検索語の関連語を取得できます。
// js/kizapi.js
/**
* @fileOverview kizapi API
*/
(function(global) {
'use strict';
var kizapi = {
/**
* 関連語を取得する
* @param {string} key 検索語
* @param {string} span '24':1日, '1w':1週間 or '1m':1月
* @return {object} レスポンス
* @property {string[]} terms 関連語
*/
getRelatedTerms: function(key, span) {
var defer = $.Deferred();
if (this._reqFlag && this._reqId.abort) {
this._reqId.abort();
}
this._reqFlag = true;
var that = this;
this._reqId = $.ajax({
type: 'GET',
url: 'http://kizasi.jp/kizapi.py',
data: {
span: span,
kw_expr: key,
type: 'coll'
}
}).done(function(data, statusText, jqXHR) {
var xml = data.results[0];
var json = $.parseXML(xml);
var terms = [];
$(xml).find('channel').find('item').each(function() {
var item = $(this).text();
var items = item.split(/\r?\n/g);
var term = items[1].trim();
terms.push(term);
});
defer.resolve({
terms: terms
});
}).always(function() {
that._reqFlag = false;
});
return defer.promise();
},
_reqId: {},
_reqFlag: false
};
if ('process' in global) {
module.exports = kizapi;
}
global.kizapi = kizapi;
}((this || 0).self || global));
kizAPIを呼び出しているのがindex.jsです。検索語「sho」の関連語を画面に表示しています。
// js/index.js
$(function() {
var key = 'sho';
kizapi.getRelatedTerms(key, '1m').done(function(data) {
var html = '';
var terms = data.terms;
for (var i = 0, len = terms.length; i < len; i++) {
html += '<span>' + terms[i] + '</span>;';
}
$('#terms').html(html);
});
});
関連語取得サービス
上記のモジュールを利用して作ったのが「ke」です。「ke」は検索したいキーワードの関連語を表示してくれます。

感想
以上、いろいろなWebAPIを試してみて、何に活用できるかを考えるのは楽しいですね。