当サイトについて&オススメ特集記事PickUp!
gn_banner

【無料翻訳API】IBMのWatson Language Transferで翻訳機能を実装しよう!PHPでの使用例あり

この記事は約4分で読めます。

こんちは。オタク総研という名前に変えたにもかかわらず閲覧者を厳選する内容ですんません。

今回はIBMの人工知能Watsonの翻訳APIをご紹介します。まぁWeb開発の備忘録ですね~

API概要

Watson Language Translator
IBM Watson Language Translatorは、ニュース、特許文書、会話型文書を動的に翻訳を可能にするサービスです。

利用制限

無料と言っても慈善行為でやってるわけではもちろんありません。企業向けにもある一定のリクエスト以上だとアクセス制限を書けられてしまいます。以下公式サイトからの引用です。

ライト

1カ月あたり100万文字が無料で、デフォルトの翻訳モデルが含まれています。有料プランにアップグレードすると、カスタム・モデルを作成できます。

標準

標準プランには基本の翻訳モデルが含まれますが、カスタム・モデルは含まれません。最初の25万文字は無料です。

その他拡張やプレミアムなどもあります。

月100万文字無料なら個人開発のサービスなら余裕ですね。

APIの使い方

無料で始めるからIBM Cloudの無料アカウントを作ってください。無料で使う分はクレジットカード等の情報は不要です。ありがたい。

会員登録が完了するとリソース作成画面に遷移します。ここでリソース名やプランなどを選択してください。

しばらくするとリソースが完成するのでチュートリアルでcURLのリクエストの投げた例を見てみて、管理タブをクリック。APIキーとアクセスURLが表示されるのでコピーしましょう。

実際に使ってみよう

ターミナルで使用

単純にドキュメンテーションに記載してあるcURLをコピペしたらOKです。{APIKey}と{url}を適宜入れてください。JSONで返してきやがります。

curl -X POST -u "apikey:{apikey}" --header "Content-Type: application/json" --data "{\"text\": [\"Hello, world! \", \"How are you?\"], \"model_id\":\"en-es\"}" "{url}/v3/translate?version=2018-05-01"

PHPでの使用例

PHPで使うには単純にCURLを投げつける処理を書けばいいですが、cURLコマンドをPHPコードに変換する神サービスがあるのでそれを使いましょう。

cURLリクエストを投げて配列にデコードするプログラムです。これをいじれば十分でしょう。

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"text\": [\"Hello, world! \", \"How are you?\"], \"model_id\":\"en-es\"}");
curl_setopt($ch, CURLOPT_USERPWD, 'apikey' . ':' . 'api key here');

$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

var_dump(json_decode($result, true));

是非ご参考にしてみてください!

帰ってくるJSON配列は以下の感じです~

array(3) {
["translations"]=>
array(2) {
[0]=>
array(1) {
["translation"]=>
string(15) "¡Hola, mundo! "
}
[1]=>
array(1) {
["translation"]=>
string(15) "¿Cómo estás?"
}
}
["word_count"]=>
int(8)
["character_count"]=>
int(26)
}

コメント

タイトルとURLをコピーしました