top / index / prev / next / target / source

2010-03-31 diary: Java: サンプル: Google Translate をもちいた機械翻訳

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

Java: サンプル: Google Translate をもちいた機械翻訳

Google Translate を呼び出して機械翻訳を実現するための簡単なサンプルを作成しました。これをメモしておきます。

Java: サンプル: Google Translate をもちいた機械翻訳

Google Translate を呼び出して機械翻訳を実現するための簡単なサンプルを作成しました。これをメモしておきます。

使用上の注意

このサンプルを動作させるうえで依存する jar ファイル

プロキシ設定方法

不明点

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);
    }
}

この日記について