スマートフォン用の表示で見る

はてなキーワード連想語API

はてな

はてなキーワード連想語API

はてなきーわーどれんそうごえーぴ

このページは古い情報を掲載しています

このページの情報は更新されていません。新しい情報は「はてなキーワード連想語API - Hatena Developer Center」に移転しました。

本ドキュメントに関する注意事項

本ドキュメントははてなダイアリーにおける、『はてなキーワード連想語API』の実装を解説するものです。主にはてなスタッフがその作成と更新を行っています。

変更履歴

  • 2009年 9月11日 名称変更
  • 2006年 2月15日 リリース

API仕様の解説

キーワードのリストを送信すると、はてなダイアリーキーワードデータベースと照合し、関連するキーワードを返信するAPIです。

APIXML-RPC APIを用いて実装を行っており、メソッド名および指定可能な各属性は、以下の通りです。

uri
http://d.hatena.ne.jp/xmlrpc
encoding
utf8
methodName
hatena.getSimilarWord
parameters
以下を参照

このAPIを用いてやり取りを行った場合のサンプルは以下のようになります。

<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
<methodCall>
  <methodName>hatena.getSimilarWord</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>wordlist</name>
            <value>
              <array>
                <data>
                  <value>
                    <string>Hatena</string>
                  </value>
                  <value>
                    <string>Perl</string>
                  </value>
                </data>
              </array>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>
<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
<methodResponse>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>wordlist</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>wordpress</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>大文字</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>インタプリタ</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>開発者</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>Larry Wall</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>リスト</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>日記</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>システム</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>言語</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>OS</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>レポート</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>スクリプト</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>処理系</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>はてな</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>移植</string></value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>word</name>
                        <value><string>プログラミング言語</string></value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodResponse>

サンプルプログラム

外部アプリケーションにおいて、あるキーワードに対して関連キーワードを取得するサンプルスクリプトは以下のようになります。

Perl

#!/usr/bin/perl
use strict;
use warnings;
use encoding 'utf8';
use XMLRPC::Lite;

my $res = XMLRPC::Lite
    ->new
    ->proxy('[]http://d.hatena.ne.jp/xmlrpc[]')
    ->call(
        'hatena.getSimilarWord',
        {
            wordlist => [
                'Hatena',
                'Perl'
            ]
        });

if ( my $fault = $res->fault ) {
    warn "$_ => $fault->{$_}"
        for ( keys %$fault );
} else {
    print $_->{word},"\n"
        for ( @{$res->result->{wordlist}} );
}

exit;

Ruby

#!/usr/bin/env ruby

$KCODE = "u"
require "xmlrpc/client"

server = XMLRPC::Client.new("d.hatena.ne.jp", "/xmlrpc")
result = server.call("hatena.getSimilarWord", {
  "wordlist" => %w[ Hatena Ruby ]
})

puts result['wordlist'].map {|v| v['word'] }.join(', ')

補注

任意のテキストに対するはてなキーワードの抽出は、はてなキーワード自動リンクAPIをご利用ください。