Hatena Blog Tags

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

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


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

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

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

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

変更履歴

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

API仕様の解説

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

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

uri
http://d.hatena.ne.jp/xmlrpc
encoding
utf8
methodName
hatena.getSimilarWord
parameters
以下を参照
  • wordlist(array): はてなキーワードを配列で指定します。

この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をご利用ください。

このタグの解説についてこの解説文は、すでに終了したサービス「はてなキーワード」内で有志のユーザーが作成・編集した内容に基づいています。その正確性や網羅性をはてなが保証するものではありません。問題のある記述を発見した場合には、お問い合わせフォームよりご連絡ください。