多言語工房PHPライブラリチュートリアル
0. 共通の準備
前準備
言語グリッドを利用するには,言語グリッドユーザIDとパスワードが必要です.お持ちでない方は言語グリッド京都オペレーションセンター - 言語グリッドへの参加より申し込んで下さい.
ダウンロードと配備
以下のリンクよりライブラリをダウンロードして下さい.利用条件は,アーカイブファイルに含まれるREADMEを参照して下さい.この言語グリッドPHPライブラリは,PHP5.3以上で動作します.
ダウンロードしたファイルを解凍し,以下の様に配備します.
アプリケーションルート |- yourfile.php [サービスを利用するphpスクリプト] |- langrid-php-library [ライブラリのルート] |- MultilingualStudio.php |- client |- config |- ・・・
各クライアントを利用するためにはライブラリのインポートが必要です. インポートはライブラリのルートディレクトリにある「MultilingualStudio.php」をインポートすることで行います.
1. 原子サービスを使う
原子サービスは,単体で動作するサービスです.J-Server (Kyoto-U)という翻訳サービスを利用する例を示します.
サービスタイプの選択とサービスの検索
はじめに,使用するサービスのタイプを選びます.Language Grid Service Managerのサービスタイプページから,自分の使用したいServiceを選び出します.ここでは,Translationを選んだとします.
つづいて,使用するサービスを決定します.Language Grid Service Managerのlanguage servicesページにおいて,Service TypeにTranslationを指定し,Searchボタンを押すと,Service TypeがTranslationであるサービスが列挙されます.ここで,J-Server (Kyoto-U)を使うサービスとして決めたとします.
J-Server (Kyoto-U)をクリックすると,J-Server (Kyoto-U)サービスの詳細が表示されます.Atomic or Compositeの欄を見ると,Atomic Serviceであることが分かります.また,WSDLの欄を見ると,WSDLのURLがhttp://langrid.org/service_manager/wsdl/kyoto1.langrid:KyotoUJServerであることが分かります.
APIの確認
Service TypeがTranslationのサービスクライアントは,TranslationClientになります.TranslationClientのAPIのページを見ると,translateというメソッドを持つことが分かります.
ソースコード
「0. 共通の準備」で指定した位置にyourfile.phpを作成し,以下のコードを書き込みます.このPHPファイルを実行すると,J-Server (Kyoto-U)を使って翻訳をすることができます.
2. 原子サービス呼び出しのサンプル
原子サービスを呼び出す簡易なサンプルを2つ紹介します.
2.1 BilingualDictionaryサービスの利用
BilingualDictionaryサービスはサービスグリッドが保有する辞書データを検索するサービスを提供します.
2.2 TextToSpeechサービスの利用
TextToSpeechサービスは文字列を指定した言語で発音させることができます.
3. 複合サービスを使う
複合サービスは,複数のサービスを組み合わせて実行するサービスです.複合サービスを使用するには,開発者はある一つの複合サービスを選び,さらにその複合サービスが必要とするサービスを指定してやる必要があります.例えば,「辞書を使った翻訳」をする複合サービスでは「辞書サービス」と「翻訳サービス」を指定する必要があります.
以下では,辞書付翻訳(TranslationCombinedWithBilingualDictionary)という複合サービスを利用する例を示します.
サービスタイプの選択とサービスの検索
はじめに,使用するサービスのタイプを選びます.Language Grid Service Managerのサービスタイプページから,自分の使用したいServiceを選び出します.辞書付翻訳なので,ここでは,TranslationWithTemporalDictionaryを選んだとします.
つづいて,使用するサービスを決定します.Language Grid Service Managerのlanguage servicesページにおいて,Service TypeにTranslationWithTemporalDictionaryを指定し,Searchボタンを押すと,Service TypeがTranslationWithTemporalDictionaryであるサービスが列挙されます.ここで,Translation Service Combined With Bilingual Dictionaryを使う複合サービスとして決めたとします.
Translation Service Combined With Bilingual Dictionaryをクリックすると,複合サービスであるTranslation Service Combined With Bilingual Dictionaryサービスの詳細が表示されます.Atomic or Compositeの欄を見ると,Composit Service(複合サービス)であることが分かります.また,WSDLの欄を見ると,WSDLのURLがhttp://langrid.org/service_manager/wsdl/kyoto1.langrid:TranslationCombinedWithBilingualDictionaryであることが分かります.
バインドするサービスの選択
Service in Useの欄をみると,Binding Servicesが列挙されています.この列挙されているサービスのInvocation Nameに,具体的なサービスを割り当てる必要があります.例えば,TranslationPLというInvocation Nameに,Google翻訳サービスやJ-Server翻訳サービスなど具体的なサービスを割り当てる必要があります.
TranslationCombinedWithBilingualDictionary複合サービスでは,BilingualDictionaryPL, MorphologicalAnalysisPL, TranslationPLの三つにサービスを指定できます.
TranslationPLに指定するサービスを探します.TranslationPLのサービスタイプを見るとTranslationであることが分かります.Language Grid Service Managerのlanguage servicesページにおいて,Service TypeにTranslationを指定し,Searchボタンを押すと,Service TypeがTranslationであるサービスが列挙されます.ここで,列挙されるサービスをTranslationPLに割り当てることが出来ます.使用したいサービスのリンクをクリックし,サービスIDをメモしておきます.
BilingualDictionaryPL, MorphologicalAnalysisPLに割り当てられるサービスの探し方に関してもTranslationPと同様です.
APIの確認
Service TypeがTranslationWithTemporalDictionaryのサービスクライアントは,TranslationWithTemporalDictionaryClientになります.TranslationWithTemporalDictionaryClientのAPIのページを見ると,translateというメソッドを持つことが分かります.このメソッドを使って,辞書付の翻訳を行います.
ソースコード
「0. 共通の準備」で指定した位置にyourfile.phpを作成し,以下のコードを書き込みます.このPHPファイルを実行すると,辞書付翻訳(Translation Combined With Bilingual Dictionary)を使って翻訳をすることができます.
ソースコード補足
addBindings
で,利用する外部サービスの名前を指定します.このサンプルでは,翻訳時に参照する辞書としてKyotoTourismDictionaryDb
を指定しています.
これにより旅行関連(KyotoTourismDictionaryDbに登録されている単語)の翻訳精度が向上します.
また翻訳エンジンにはJ-Server
を指定しています.翻訳エンジン毎に翻訳結果の癖が異なります.