11 月 21
[php][WebAPI]EJ, JE translation APIは翻訳WebAPIとして使える
前回のWebserviceX.NET Translation Engineに引き続き、翻訳WebAPIの調査。今回はEJ, JE translation APIの調査です。
EJ, JE translation APIは、Yahoo! Babel Fish を Yahoo! Pipes経由で呼び出すことによって文章を翻訳するAPIです。下記が本家APIのURLとMASHAPEDIAの紹介記事です。
英語←→日本語の翻訳APIとして使えるYahoo Pipesを作った
http://muumoo.jp/news/2007/05/09/0translationapi.html
JSON形式で翻訳「EJ, JE translation API」 : WEBAPI一覧 : MASHUPEDIA - マッシュペディア - : Web API x Mashup
http://www.mashupedia.jp/webapis/view/292
概要としては、REST形式でAPIにアクセスし、翻訳結果をRSS/JSON/JSONPで返す感じです。
- APIのURL
- http://pipes.yahoo.com/pipes/pipe.run
- パラメータ
- _id
- 翻訳の種類
- EJ(英語→日本語)なら、「ZM5oVmX92xGrFWiRJhOy0Q」
- JE(日本語→英語)なら、「ohZnaGr92xG36xIFyzUFzw」
- _run
- 「1」で固定
- _render
- レスポンス形式
- 「rss」または「json」
- _callback
- _render = jsonのとき、JSONP用のコールバック関数名
- text
- 翻訳する文章(エンコード済み)
- JavaScriptから実行する場合、encodeURIComponent()関数をかける必要がある
- phpから実行する場合、urlencode()関数をかける必要がある
- _id
さきほどの本家のページにはJavaScriptのみで実装するサンプルが公開されています。今回はphpでJSONを分解するサンプルを試してみました。
-
require_once 'HTTP/Client.php';
-
-
// 翻訳したいテキスト
-
$text = 'This is a pen.';
-
// HTTP_Clientの初期化パラメータ
-
'timeout' => 10,
-
'allowRedirects' => true,
-
'maxRedirects' => 3
-
);
-
-
'Accept-Language' => 'ja-JP,ja;q=0.9,en;q=0.8'
-
);
-
// POSTする先のURIとそのパラメータ
-
$uri = 'http://pipes.yahoo.com/pipes/pipe.run';
-
'_id' => 'ZM5oVmX92xGrFWiRJhOy0Q', // EJ
-
//'_id' => 'ohZnaGr92xG36xIFyzUFzw', // JE
-
'_run' => 1,
-
'_render' => 'json', // or rss
-
//'_callback' => 'example20070509callback', // JSONP
-
);
-
// レスポンスの発行
-
$client =& new HTTP_Client($http_client_default_param, $http_client_default_header);
-
$client->post($uri, $param);
-
$response = $client->currentResponse();
-
// JSON形式をPHPで操作可狽ネ形式にデコード
-
$ret = json_decode($response['body']); //>= php 5.2.0
-
$tuple = $ret->value->items[0];
-
// 表示
実行結果のサンプルは以下のようになります。
Title: This is a pen. Description: これはペンである。
いくつかプログラムの補足をしておきます。
1. レスポンスの発行にはPEAR::HTTP_Clientライブラリを使用しました。簡単なライブラリなので何をしているのかはすぐにわかると思います。
2. json_decode()関数は、php 5.2.0から標準で組み込まれるようになったJSON 拡張モジュールに依存しています。それ以前のバージョンの方は、PEAR::Services_JSONやphp-jsonなどの拡張ライブラリをインストールしてください。
これなら簡単な文章を翻訳するのに十分使えますね!
1 Comment so far
Leave a comment
[php][CakePHP]日英・英日翻訳コンポーネント
ようやくCakePHPの勉強を開始しました。『CakePHPガイドブック』と『…