top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
Google Translate を呼び出して機械翻訳を実現するための簡単なサンプルを作成しました。これをメモしておきます。
Google Translate を呼び出して機械翻訳を実現するための簡単なサンプルを作成しました。これをメモしておきます。
使用上の注意
Google Translate 側の仕様変更により、将来、このコードは動作しなくなる可能性があります。
このサンプルを利用して不用意に大量のリクエストを発信することはしないでください。Google さんに迷惑がかかってしまいます。
Google Translate の利用許諾に従ってください。
その他、インターネットの一般的なモラルに従ってください。
このサンプルを動作させるうえで依存する jar ファイル
httpcomponents-client-4.0.1-bin.zip http://hc.apache.org/httpcomponents-client/
httpcomponents-core-4.0.1-bin.zip http://hc.apache.org/httpcomponents-core/
commons-codec-1.4-bin.zip http://commons.apache.org/codec/
commons-logging-1.1.1-bin.zip http://commons.apache.org/logging/
プロキシ設定方法
不明点
import java.io.IOException;
import java.net.ProxySelector;
import java.net.URLEncoder;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.ProxySelectorRoutePlanner;
public class Sample {
public static void main(String[] args) throws Exception {
final String result = translateByGoogle("en", "ja", "This is a pen.");
// final String result = translateByGoogle("ja", "en", "これはペンです。");
System.out.println(result);
}
public static String translateByGoogle(final String sourceLang,
final String targetLang, final String input) throws IOException {
final String sourceLine = URLEncoder.encode(input, "UTF-8");
final DefaultHttpClient httpClient = new DefaultHttpClient();
{
// Proxy 設定を Java 実行環境にゆだねる。
final ProxySelectorRoutePlanner routePlanner = new ProxySelectorRoutePlanner(
httpClient.getConnectionManager().getSchemeRegistry(),
ProxySelector.getDefault());
httpClient.setRoutePlanner(routePlanner);
}
final String uri = "http://translate.google.co.jp/translate_a/t?client=t&text="
+ sourceLine
+ "&hl=ja"
+ "&sl="
+ sourceLang
+ "&tl="
+ targetLang + "&pc=0";
final HttpGet httpGet = new HttpGet(uri);
httpGet.setHeader("User-Agent", "Mozilla/5.0 (Java) MyLocal Ext.");
httpGet.setHeader("Accept-Language", "en-us");
httpGet.setHeader("Accept-Charset", "UTF-8");
System.out.println("trace: S:[" + httpGet.getURI() + "]");
final ResponseHandler<String> responseHandler = new BasicResponseHandler();
return httpClient.execute(httpGet, responseHandler);
}
}