機械翻訳を使って日本語→英語→日本語…(Bing版)

「翻訳に不動点はあるか—我々は生活の中で美しいを破壊している by Google」では、Google Translate APIを使って「日本語→英語→日本語」や「英語→日本語→英語」を1クリックでできるようにしていました。Google Translate APIが終了してしまうということなので、作り直さなければなりません。

先日で紹介したMicrosoft Translator V2がここでも使えます。翻訳APIを使えるようになるとまず、日本語→英語→日本語…みたいなことを試したくなるものなので、練習にもちょうどいいでしょう。

Open Questions

翻訳エンジン自体が不変のものではないので結論を出せるものではないかもしれませんが、以下のそれぞれに該当するものはあるでしょうか。

  1. 収束しない(測定可能な周期での振動もしない)
  2. 測定可能な周期で振動する

お約束ですが、ボタンを押した時の動作の実装方法やAPIを使う基本的な方法については、拙著『Webアプリケーション構築入門』に書いてあります。

Bingを使ってTwitter上のさまざまな言語のつぶやきをひとつずつ翻訳するユーザーサイドスクリプト

2011年11月末でサービスを終了するGoogle Translate API。これを利用していたアプリその他の対応に追われるという話、その2です。

ある言語で書かれたウェブページをまとめて翻訳するというような場合には、その1で紹介したTranslate Elementで何とかなりそうです(ページのコンテンツが動的に変更される場合には対応できませんが)。

しかし、Twitterのタイムラインに対しては、Translate Elementは無力です。Twitterのタイムラインには複数の言語のつぶやきが同時に存在するため、「ある決まった言語の文書を別の言語に翻訳する」という仕掛けでは対応できないのです。

APIを使ってつぶやきを一つずつ翻訳するというのがよい解決策で、Google Translate APIを使ってそれを実装したのがTwitter上のさまざまな言語のつぶやきをひとつずつ翻訳するユーザーサイドスクリプトでした。一つのつぶやきの中に複数の言語の文章があるときはダメでしたが、たいていの場合はこれで十分でした。

Google Translate APIが使えなくなるということなので、代わりのAPIとしてMicrosoft Translator V2を試すことにします。

GoogleのAPIと違って、まずBing Developer CenterでBing AppIDを取得しなければなりませんが、それさえ済めば。あとはAPIリファレンスを見ながら問題なく使えるでしょう。(お約束ですが、APIを使う基本的な方法については、拙著『Webアプリケーション構築入門』に書いてあります。)

というわけで、Microsoft Translator V2を使ってつぶやきを一つずつ翻訳するユーザーサイドスクリプトを書きました。

FirefoxとChrome 13 betaで動作を確認しています。Chrome 12では動作しません。

インストール方法

  1. Bing Developer CenterでBing AppIDを取得する
  2. (Firefoxの場合)Greasemonkeyをインストールする
  3. Twitter Translator (Bing)をインストールする
  4. Twitterにアクセスする
  5. (最初に利用する時のみ)Bing AppIDを入力する
  6. (最初に利用する時のみ)ブラウザ(あるいはタブ)を一度閉じ、再度Twitterにアクセスする

Bing AppIDをリセットしたい時は、twitter.comの「Bing_AppID」というcookieを削除してください。

Bing AppIDを設定しなければならないので、ちょっと面倒なスクリプトになってしまいましたが、とりあえずはこれでよしとしましょう。

2011/12/10 Twitterの新しいUIに対応しました。

HootSuite上のさまざまな言語のつぶやきをひとつずつ翻訳するユーザーサイドスクリプト

注意:一度にあまりたくさん翻訳させるとGoogleからIPではじかれるようです。残念ですが、タイムラインが忙しい人は使えないでしょう。というわけで、このスクリプトはメンテナンスしていません。

Twitter上のさまざまな言語のつぶやきをひとつずつ翻訳するGreasemonkeyスクリプトで使った方法を、HootSuiteでも使えるようにしました。Twitter本家よりもHootSuiteのほうが、画面に表示できる情報が多いので便利だと思います。

HootSuite Translatorインストール

翻訳後のHootSuite

Googleは、翻訳時のエラーメッセージを英語で返します。これまでは、この英語のメッセージも翻訳していましたが、それに失敗すると、何が起きているのかわからなくなってしまうので、翻訳しないことにしました。(使いすぎるとIPではじかれるようです。)

ブラウザ上で動くHootSuiteは、このようにちょっとしたことをすぐに試せていいです。クライアントアプリケーションでは、こういうわけにはいきません。

お約束ですが、こういう話を基本から学びたいという方には、拙著『Webアプリケーション構築入門 実践!Webページ制作からマッシュアップまで 』(森北出版, 2011)がおすすめです。

Twitter上のさまざまな言語のつぶやきをひとつずつ翻訳するユーザーサイドスクリプト

このスクリプトが利用しているGoogle Translate APIは廃止されることが決まっています。ですから、このスクリプトの代わりにBingを使ってTwitter上のさまざまな言語のつぶやきをひとつずつ翻訳するユーザーサイドスクリプトを利用することを検討してください。

Twitterは言葉の通じる相手とのコミュニケーションツールとして使うのが一般的ですが、大量の情報が集まっているわけですから、何か他のことにも活用してみたいと思うわけです。

何らかのキーワードを指定して、それを含んだつぶやきを検索してみる、なんていうことは、試したことのある人も多いでしょう。例として、「mathematica」というキーワードで検索した結果を挙げてみます。英語やスペイン語、中国語、ポルトガル語などがあるようです。よくわかりませんが。

「mathematica」というキーワードで検索した結果

日本語と英語はともかくとして、他の言語はよくわからないので、とりあえず、機械翻訳にかけてみたいところです。精度はともかく、使い勝手は向上している機械翻訳ですが、Twitter上で使うには、少し工夫が必要です。というのも、Twitterにはさまざまな言語のつぶやきがあるので、まとめて翻訳するわけにはいかないからです。

Google Chromeという親切なブラウザは、ユーザが設定した言語以外で書かれたページを、読みやすいように翻訳してくれます。しかし、元の言語を一つに決めなければならないので、Twitterでは失敗します。下の例では、英語以外のつぶやきは翻訳できていません。

Google Chromeの翻訳結果

ですから、Twitterのつぶやきは、ひとつずつ翻訳しなければならないのです。そのためのユーザーサイドスクリプトTwitter Translatorを書きました。

FirefoxとChrome 13で操作を確認しています。Chrome 12では動作しません。

インストール方法

  1. (Firefoxの場合)Greasemonkeyをインストールする
  2. Twitter Translatorをインストールする

つぶやきをひとつずつ翻訳した結果

翻訳先の言語は、ブラウザの言語設定で決まります。ふつうにFirefoxを使っている人は、特に何か設定する必要はないでしょう。言語設定を変更したい場合は、Google を使ったなんちゃって地域化で紹介したQuick Locale Switcherを使うといいでしょう。

一度にあまりたくさん翻訳させるとGoogleからIPではじかれるようです。残念ですが、タイムラインが忙しい人は使えないでしょう。

お約束ですが、こういう話を基本から学びたいという方には、拙著『Webアプリケーション構築入門 実践!Webページ制作からマッシュアップまで 』(森北出版, 2011)がおすすめです。

3次元版Twitearth この星のつぶやき

Twitterのつぶやきのうち、位置情報の付いているものの一部を翻訳して表示するWebアプリを作ったら、

TwitearthというよりもTwitmapですね

と言われてしまいました。たしかに、2次元的に表示するGoogle Mapsと3次元的に表示するGoogle Earthとの関係から言えば、あれはTwitmapになるのかもしれません。でも、閲覧者の環境にGoogle Earth Pluginがインストールされていれば、下の動画のように3次元的な表示が可能です。

iPhone問題は、Google Earth Pluginが動く環境が限られていることです。Windowsでは、IEとFirefox、Chrome、MacではFirefoxとChrome、Safariで動きます。iPhoneのSafariでは動きません。特に、TwitearthはIEでは動かないので、Windowsは結局FirefoxとChromeだけになります。個人的にはこれで十分なのですが、一般的にはまずいと思うので、起動時は2次元的な(つまりMapsの)表示にしてあるのです。2次元的な表示なら、iPhoneも含めたたいていの環境で動くでしょう。

3次元的な表示にしたい場合は、Google Earth PluginをインストールしてからTwitearthを開いて、「Earth」をクリックしてください。ブラウザをフルスクリーン表示にしてぼーっと眺めるのがおすすめです。

もう一つ、

なんでTwitterのアカウント情報が必要なの?

という問い合わせもありました。

現在は、実装を単純にするために、Twitter Streaming APIへのリクエストをユーザごとに行っています。Streaming APIへのリクエストは、1アカウントにつき1つまでなので、私のアカウントを使い回すわけにはいきません(リクエストが重複すると、古いほうが切断されます)。そのため、ユーザごとのアカウント情報が必要なのです。ユーザごとのストリーミングデータを、現在はサーバで中継していますが、JavaScriptでストリーミングAPIをうまく使う方法がわかれば、今の実装をそのまま移行します。それに期待しているので、今すぐに複雑な実装を試すつもりはありません。ですから、申し訳ないのですが、このアプリを許可してください。許可は恒久的なものではなく、Twitterの連携アプリ確認ページで簡単に取り消せます。

お約束ですが、こういう話を基本から学びたいという方には、拙著『Webアプリケーション構築入門 実践!Webページ制作からマッシュアップまで 』(森北出版, 2011)がおすすめです。