A3RTのTalk APIを試してみるツール

A3RTはリクルートが開発した人工知能に関するプロジェクトです。
これらのAPIは一般に公開されています。

A3RT

リコメンドリストを作ったり、文章を推敲したりする機能が提供されています。
今回はこれらのうち「Talk API」の機能を試すツールを作ってみました。 (さらに…)

文章から「俳句」を見つける「五七五検索機」

ちょっと前にウィキペディアから短歌と同じく五七五七七になっている箇所を探し出してツイートするという仕組みがあったかと思います。
これは形態素解析APIを使えばできるかも、と思い、自分でも実験的に作ってみました。 (さらに…)

gooラボAPIを利用した「日本語解析ツール」

日本語の文章を解析するツールを作りました。
gooラボAPIの形態素解析、固有表現抽出、ひらがな化に対応しています。

日本語解析ツール

gooラボの「固有表現抽出API」を試す

NTTレゾナントが日本語解析技術に関するAPIを「gooラボ」で公開しました。
いくつかありますが、その中の「固有表現抽出API」を試してみました。

固有表現抽出API:文字列中の人名・地名などを抽出する技術 - gooラボ

サンプルは次のとおりです。PHPで書きました。 (さらに…)

「2点間距離API」を使う

Yahoo!デベロッパーネットワークで「2点間距離API」というものを見つけました。
地図上の2点の緯度経度を与えるとその間の距離を算出するAPIです。
今まではサイン、コサインを使って複雑な計算をしていましたが、これを使えば簡単にできそうです。

YOLP(地図):2点間距離API - Yahoo!デベロッパーネットワーク

サンプルは次の通りです。PHPです。
東京駅から大阪駅までの距離を求めます。
使うときは、登録して自分のアプリケーションIDを取得する必要があります。

$points[0] = array(139.766084, 35.681382);//東京駅
$points[1] = array(135.494977, 34.701909);//大阪駅

$appid = "{アプリケーションID}";
$output = "json";
$coordinates = implode(",", $points[0]) . "%20" . implode(",", $points[1]);

$url = "http://distance.search.olp.yahooapis.jp/OpenLocalPlatform/V1/distance";
$url .= "?coordinates=" . $coordinates;
$url .= "&appid=" . $appid;
$url .= "&output=" . $output;

$json = file_get_contents($url);
$arrs = json_decode($json, TRUE);

print $arrs["Feature"][0]["Geometry"]["Distance"];

ちょっと引っかかったのは、座標の指定方法です。
「東経カンマ北緯スペース東経カンマ北緯」とするのですが、サンプルを真似すると次の通りになります。
「coordinates=139.766084,35.681382 135.494977,34.701909」
しかしこれだとエラーになります。スペースは「%20」とする必要があるので次の通りになります。
「coordinates=139.766084,35.681382%20135.494977,34.701909」

実行すると距離がキロメートル単位で表示されます。

こうなると座標も自動的に取得したいところですが、Yahoo!には飲食店などの位置を取得するAPIはありますが、駅など公共機関を取得するAPIがありません(あるのかもしれませんが見つかりませんでした)。
Googleは「東京駅」から座標を取得することができますので、GoogleとYahoo!を組み合わせる、ということになりそうです。

「NHK番組表API」を使う

NHKが番組情報をJSONで取得できるAPIを公開しました。

NHK番組表API

メールアドレス等を登録すると使用することができます。
「http://api.nhk.or.jp/v1/pg/list/{area}/{service}/{date}.json?key={apikey}」のように指定するとJSONが返ります。これをPHPなどで加工すればテレビ番組表を作れます。
「{apikey}」はメールアドレスを登録しURLやアプリケーション名を指定すると取得できます。

NHKは都道府県によって放送内容が違いますし、BSやラジオなどチャンネルもいろいろあります。これらを取得できます。
今のところ、取得できるのは今日と明日の二日分だけのようです。
回数制限は24時間で300回です。
本格的なアプリケーションを作ると300回は軽く超えてしまうので、キャッシュで処理することになるでしょう。一方、二日分だけなので全データを取得してキャッシュしても大したことはないかもしれません。なお47都道府県×8チャンネル=376なので網羅は無理です。

NHKの番組だけ、二日分だけということでは、実際には使えないと思います。民放も含め同じフォーマットで全番組をせめて一週間分くらい提供しないと意味がないでしょう。

漢字をひらがなに変換

漢字を平仮名に変換するツールを作りました。

漢字をひらがなに変換

テキストエリアに文章を入力して変換ボタンをクリックすると読みがなに変換して下に表示します。
Yahoo!のAPIを使っています。
まれにおかしな変換がありますので注意してください。

PHPでTwitterAPIを使う「codebird」

TwitterAPIは1.1に切り替えられます。2013年3月5日にブラックアウトテストが行われ、古いAPIだとエラーになるそうです。

PHPでTwitterAPI1.1を使うためのプログラムを紹介します。 (さらに…)

Yahoo!スタティックマップAPI入門

Yahoo!スタティックマップAPIを使うと地図を簡単に描くことができます。
Yahoo!デベロッパーネットワーク - YOLP(地図) - Yahoo!スタティックマップAPI

色々なことができますが、ここでは地図を描くための最低限の使い方を紹介します。

次のようなURLを使うと画像データが返ってきます。本来は改行しません。

http://map.olp.yahooapis.jp/OpenLocalPlatform/V1/static?
    appid=【APPID】&
    z=【ズームレベル】&
    pin1=【緯度】,【経度】&
    width=【幅】&
    height=【高さ】

width,height

幅と高さはピクセルで指定します。

pin1,pin2

マーカーの位置を「緯度,経度」の形式で指定します。pin1,pin2のように複数のマーカーをセットできます。
マーカーをそれぞれ表示し、すべてのマーカーが表示されるように縮尺が適当に調整されます。

以上です。これだけで地図が表示されます。

「皇居」と「大阪城」(の緯度、経度)を指定した場合は次の通りです。

http://map.olp.yahooapis.jp/OpenLocalPlatform/V1/static?
    appid=【APPID】&
    pin1=35.687880,139.757344&
    pin2=34.687394,135.525844&
    width=300&
    height=300

少し補足します。

z

ズームレベル、縮尺をセットすることができます。1が地球全体です。

pinのラベル

「pin1=35.6,139.7,Tower」のように、3番目に文字列を指定するとそれが表示されます。

Googleとの違い

Googleスタティックマップとの違いは次の通りです。

  • Yahoo!はユーザーID(APPID)が必要だが、Googleは不要。
  • Googleは緯度経度だけでなく住所や地名が指定できる。
  • Yahoo!はズームレベルの値がGoogleより1大きい。※Googleが17だとYahoo!は18です。

Yahoo!(z=18)

Google(zoom=17)

Google Static Maps API 入門

Google Static Maps APIを使うとGoogleマップを表示できます。
JavaScript等を使わず「静止画像」として表示します。
Static Maps API V2 デベロッパー ガイド - Google Maps API — Google Developers

以前、「Google Static Maps APIを使う」という記事を書いたのですが、改めて、最低限の部分だけを採り上げ、とりあえず地図を表示する方法を紹介します。

次のようなURLを使うと画像データが返ってきます。
http://maps.google.com/maps/api/staticmap?size=幅x高さ&markers=住所&sensor=false

size

幅と高さはピクセルで指定します。「400x300」とすると幅400ピクセル、高さ300ピクセルとなります。
最大で640x640ピクセルです。

markers

住所を指定するとGoogle側で検索して場所を特定し、地図とマーカーを表示します。ありえない住所を与えると無視されます。
また「国会議事堂」「大阪城」など特定できる場所ならば住所の代わりに使えます。
「|」で区切ると複数の住所が指定できます。マーカーをそれぞれ表示し、すべてのマーカーが表示されるように縮尺が適当に調整されます。
ただし、住所はエンコードする必要があります。「東京都」ならば「%E6%9D%B1%E4%BA%AC%E9%83%BD」とします。
これはGoogleで「東京都」などの文字列を検索したときにアドレスに表示されるものと同一です(「q=%E6%9D%B1%E4%BA%AC%E9%83%BD」の部分)。JavaScriptならばencodeURIを使います。

以上です。これだけで地図が表示されます。

「東京都中央区」と「大阪府大阪市」を指定した場合は次の通りです。

<img src='http://maps.google.com/maps/api/staticmap?size=400x400&markers=%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%7C%E5%A4%A7%E9%98%AA%E5%BA%9C%E5%A4%A7%E9%98%AA%E5%B8%82&sensor=false'>

次にその他のオプションを紹介します。

zoom

ズームレベル、縮尺を表します。0が地球全体で、20くらいで建物が特定できます。

center

地図の中心となる場所を住所で指定します。
また住所は緯度と経度で指定することもできます(markersも同様です)。「35.123456,135.123456」のように指定します。小数第6位までです。地球一周4万キロと考えると0.000001度は11センチに相当するので充分でしょう。

zoomとcenterを指定するとこちらが優先されるので、markersを正しく指定しないと範囲を外れて、マーカーが表示されないことになります。

古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報