お知らせ+活動記録+たわごと

HP と Twitter を補完するとともに、互いの密接な連携を図るため、本ブログを開設した。三位一体を目指す。情報提供、広報活動、教育・啓蒙活動の一環として、肩の力を抜き、冗長性を廃し、簡にして要を得た文章を書くよう心がける。
<< October 2019 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
Google 翻訳 + スプレッドシートによるサバイバル英作文
英語論文の執筆に四苦八苦している人々が随喜の涙を流して喜ぶ(かもしれない)翻訳テクニックをここに公開する。もともとは理工系大学院生を対象とする英語教育の一環として昨年執筆した Evernote のノートである。京大、名大、名工大、大阪府立大における英語論文執筆に関する講義・セミナーで紹介した。

1. 和文英訳方式による論文執筆の妥当性


本ノートでは、和文英訳による論文執筆について述べる。英文を直接スイスイ書ける優秀な人は以下を読んでも意味がないことをあらかじめお断りしておく。

英語論文を書く際には、英文を直接書き下すことが望ましい。和文の影響を受けず、執筆が大幅に速まる上、英語を話すスキルも向上するからである。筆者は終始一貫そうしてきた。

一方、英語アレルギーの日本人にとって、完成度が高く論理的に筋が通っている和文をまず書いてから、それを英訳する方が難易度が低いのは事実である。ところが、そうは問屋が卸さない。英語弱者は語彙が貧弱で、辞書の活用を怠りがちで、英文法に詳しくないと相場が決まっている。研究者として生きるか死ぬかの瀬戸際に丸腰で戦っても勝ち目はなく、為す術もなく撤退するか、下手をすれば致命傷を負いかねない。PC やネットを利用する飛び道具を駆使すべき理由はそこにある。

2. 研究者として生き残るための武装


英作文能力の不足を補う強力な武器さえ入手すれば、論文として発表するに値する成果を得た研究者が論文執筆でつまずくという最悪の事態は回避できる。ネット接続した PC 上で手軽に使えるソフトウェア
はそういう武力装備に他ならない。

Google スプレッドシートは英作文に尻込みする人の背中を押す翻訳用ツールとしてすこぶる役立つ。電動アシスト自転車のような感じという人もいる。電子辞典も欠かせない。英語が苦手で語彙が貧弱な人が辞書をまめに引かなかったら、自殺行為の誹りを免れないいことを肝に銘じるべきである。「新英和・和英中辞典」は熟成の進んだ由緒正しい辞書であり、信頼性が高い。さらに、205 万もの英和見出し数を誇り、多数の理工系専門用語を収録しており、Windows 上で手軽に検索できる PDIC-R/Unicode を使わない手はない。辞書に consult(「引く」の英訳)するのを厭わなければ、自ずと実力が身についていくだろう。

3. Google の翻訳エンジンについて


Google 翻訳のエンジンは 2016 年 11 月に Phrase-Based Machine Translation (PBMT) システムから Google Neural Machine Translation (GNMT) システムへと移行した。GNMT では多層ニューラルネットワークによる深層学習が採用され、文章をパーツごとではなく自然な文の流れとして解析・翻訳するようにした結果、翻訳精度が大幅に改善された。今のところ GNMT システムは完璧と言い難いが、今後、翻訳精度は着実に向上していくだろう。

英訳文は電子辞書も動員しつつ自分でブラッシュアップできるし、翻訳前の和文に手を入れることにより英訳結果を改善するという手もある。英作文が得意な人にとっても、語彙が豊富になるというメリットがある。おまけに長大な文章でも短時間で英文に変換してくれることから、一種の安心感と達成感を味わえる。英語が苦手な人にとっては、英文を直接書くのに比べとっつきやすいのは間違いない。

4. Google スプレッドシートの利点と魅力


Google スプレッドシートには Microsoft Excel が持ち合わせていない三つの強みがある:
  1. Gooogle Apps Script (GAS) のメソッド translate による翻訳。
  2. ネットを通じたスプレッドシートの共有、リアルタイム共同編集 (最大 50 人まで)、チャット。
  3. ネット接続した PC さえあれば無料で使える。
GAS は translate というメソッド一つからなる翻訳用クラス LanguageApp を備えている。上記の GNMT システムが translate メソッドに導入されていることは意外と知られていない。下記の ★ メニューを利用した翻訳でも GNMT システムが使われる。ワークシート関数 translate のコードをスクリプトエディタで保存し、ワークシートのセルで使えるようにする手続きについては、「Google Spreadsheet の googletranslate 関数の代わりに LanguageApp を使うワークシート関数を作ってイケてる翻訳ができるようにする」を参照せよ.

Google スプレッドシートではセル内に収めた文を translate で翻訳でき、セル間の対応が単純明快で混乱しにくい。もちろん表計算ソフトの機能も利用できるので、原文と翻訳結果の枠しか備えていない Google 翻訳を利便性と柔軟性で凌駕している。その上 Google スプレッドシートでは、教師と生徒が (互いに遠く離れていても) 同一のスプレッドシートをリアルタイム編集でき、チャットも可能である。さらに、ボタンをクリックするだけでファイルを添付したメールの送付作業へと移れるため、ネットを徹底活用した論文執筆教育に適している。

なお Google スプレッドシートに標準装備されている関数 googletranslate は前世代の PBMT システムに基づいており、賞味期限切れといって過言でない。Web で発信されている情報ではたいてい googletranslate を使用していることに注意せよ。

5. 新たなスプレッドシートの作成

  1. 「Google スプレッドシート」の Web サイトにアクセスする。
  2. [Google スプレッドシートを使う] をクリックする。
  3. 必要なら Gmail のアドレスとパスワードを入力した後、[次へ] をクリックする。
  4. 「新しいスプレッドシートを作成」 で 「空白」 をクリックし、新たなスプレッドシートを開く。
  5. 「ツール > スクリプトエディタ」を選ぶと、新たなタブが生成してスクリプトエディタに入る。「コード.gs」の右側の ▼ をクリックし、Translation.gs に改名する。
  6. ★ メニュー(7節参照)と function translate を使えるようにするための Google Apps Script のスクリプファイル Translation.gs に下記のソースコードをコピー&ペーストした後、「ファイル > 保存」(ツールバーにボタンあり)を選んで保存する。以後、現スプレッドシート(ワークシート)で translate 関数と ★ メニューが併用できる。
  7. スプレッドシートのタブをクリックしてスプレッドシートに戻る。
  8. 「ファイル > スプレッドシートの設定」で「言語と地域:日本」と「タイムゾーン:東京」を選ぶ。
  9. 「表示形式」 メニューで 「フォント サイズ 」 を 12 とし、「配置」 で 「左」 と 「上」 をチェックし、「テキストの折り返し」で「折り返す」 をチェックする。
Translation.gs のソースコードは以下の通り:

function ja2en() {
translation('ja', 'en');
}

function en2ja() {
translation('en', 'ja');
}

function translation(from, to) {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
for (var i=0; i var val = range.getValues()[i][0];
var en = LanguageApp.translate(val, from, to);
var dst = sheet.getRange(range.getRow()+i, range.getColumn()+1);
dst.setValue(en);
}
}

function onOpen() {
var menuitems = [
{name:'日本語→英語', functionName:'ja2en'},
{name:'英語→日本語', functionName:'en2ja'}
];
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.addMenu('★', menuitems);
}

function translate(originalValue, translateFrom, translateTo) {
return LanguageApp.translate(originalValue, translateFrom, translateTo);
}

6. translate 関数による英訳の手続き


★ メニューを使う翻訳(次節参照)の方が明らかに効率的だが、まず translate 関数による翻訳について述べておく。

注意: macOS を使っている場合、 以後の記述中の「Ctrl」を「⌘」に代えて読むこと。
  1. 任意のブラウザーで Google スプレッドシートの Web ページを開く。
  2. 「ファイル > インポート > アップロード」 を選んだ後、 [パソコンからファイルを選択] をクリックして翻訳作業用ひな形ファイル *.xlsx をアップロードする。
  3. A1 を 「オリジナル和文」、B1 を「修正和文」、C1 を 「英文」、D1 を「修正英文」とする。
  4. 必要ならA, B, C, … をクリックして 「挿入 > メモ」 を選び、各列に関するメモを入力する。たとえば C1 には "=translate(B2,"ja",”en”)” とメモする。
  5. A 列の A2 以降の各セルに適度な長さの文章をコピー&ペーストする。 OS、ブラウザ、環境によって選べるフォントが異なる。MS P ゴシック、メイリオ、ヒラギノ角ゴ Pro (Mac) などの視認性の高い日本語フォントを使うことを推奨する。Ctrl-A を押して全セルを選択し、すべて同じフォント、サイズ、配置、テキストの折り返しにすると、単純でよい。
  6. A2 以降のセルすべてを選択し、Ctrl-C を押してクリップボードに保存する。前後関係が訳文に影響しそうな箇所では、複数の文 (最長で一段落) をまとめてコピー&ペーストする方が高品質の英訳を与えることもある。
  7. B2 を選択して Ctrl-V を押すと、B列がすべて埋まる。B列の和文は適切に英訳されるよう文脈や単語を修正するのに使う。
  8. "=translate(B2,"ja","en")" を C2 にコピー&ペーストすると C2 に英訳が現れる。
  9. C2 が選択された状態のまま Ctrl -C を押すと、B列を英訳して対応するC列に格納する命令がクリップボードに入る。
  10. Shift キーを押しながら C 列の最後のセルをクリックし、Ctrl-V を押す。
  11. C列の各セルをクリックすると、fx の右側に当該セルの翻訳関数が表示される。
  12. Cをクリックし、ツールバー中の 「垂直方向の配置」 をクリックして「上」を選び、さらに「テキストを折り返す」 をクリックしてから「折り返す」を選ぶと、英文が上に移動し、折り返される。
  13. 左端の行番号同士の境界線をマウスドラッグすることにより、適当な幅の空白を行間に入れて見やすくする。
  14. 翻訳結果を参考にしながら Google 先生が理解しやすいようにB列の各セルを書き直した後 を押すと自動的に再英訳され、C列の隣接セルが更新される。
  15. C 列を選択して Ctrl-C を押してからD列を選択し、Ctrl+shift-V(「編集 > 特殊貼り付け > 値のみ貼り付け」のショートカット)を押してC列の内容をD列にコピーする**。
  16. 「ファイル > 名前を変更」で名前を変更してから、「ファイル > 形式を指定してダウンロード」で PC や iCloud に保存できる。
  17. 必要なら、C2 以降の全セルを選択してから Ctrl-C を押し、テキストデータをクリップボードに入れた後、テキストエディターまたは Microsoft Word の新規文書にペーストする。
  18. 最上部の左端の [スプレッドシート ホーム] (緑のアイコン) をクリックして編集を終え、スプレッドシート一覧に戻る。
* 英文和訳には "=translate(和訳したいセル,"en","ja")" という形式の関数を使う。

** macOS で ⌘+shift-V を押すか Parallels Desktop + Windows 10 で Ctrl+shift-V を押してクリップボードの内容をペーストする場合、クリップボード・ユーティリティー Clipy で相当するショートカットを設定しないよう注意せよ。

7. ★ メニューを使う翻訳


★ メニューの追加:
https://www.infoscoop.org/blogjp/2014/09/16/google-apps-script-translate/

★ メニューを利用できるようにするには、Google Apps Script の初回実行時に承認を得なければならない:
https://www.virment.com/step-allow-google-apps-script

具体的な操作は次の通り:
  1. 「★ > 日本語→英語」を選ぶと「承認が必要」というダイアログが現れる。
  2. [続行] をクリックする。
  3. 「アカウントの選択」というダイアログで「自分の名前+ Gmail アドレス」をクリックする。
  4. 「このアプリは確認されていません」というダイアログで、「詳細」(左下)をクリックする。
  5. 「translation(安全ではないページ)に移動」(最下部)をクリックする。"translation" は "testProject" など別な文字列の場合がある。
  6. [許可] をクリックする。
スプレッドシートを開いてからメニューバーに ★ が現れるまでには多少時間がかかることに留意せよ。

特定のセルを選択する。複数のセルを選択するには、始点のセルをクリックしてから、shift キーを押しながら終点のセルをクリックする。メニューバーの ★ をクリックしてから「日本語→英語」または「英語→日本語」を選ぶと、選択部分の右に訳文が現れる。訳文は単なる文字データなので、Ctrl+shift-V でなく Ctrl-V でペーストできるというメリットがある。

8. 翻訳結果の改善


Cをクリックし、Ctrl-C を押す。Dをクリックしてから 「編集 > 特殊貼り付け > 値のみ貼り付け」 を選ぶか、Ctrl+shift-V を押す。こうすれば、列に割り当てられた関数がコピーされずに済む。D列の例文は自力でブラッシュアップする。修正過程では電子辞典が強力な援軍となる。

書籍由来の新英和・和英中辞典は一般的な目的に使えるが、名詞が countable(可算)か uncountable(不可算)かを調べるのにとりわけ役立つ。

英辞郎検索アプリケーション PDIC-R/Unicode は貧弱な語彙と低い英作文能力を補ってくれ、添削結果の質的向上をもたらす。Ctrl-Cで単語をコピーするだけでただちに検索できるクイック・ポップアップ検索やクリップボード検索はとくに威力を発揮するだろう。「Search > 全文検索」を選ぶか、[F2] を押して利用する全文検索はきわめて強力で、AND/OR 検索も可能となっている。

英訳に供する日本語の文章を書く際には、今のところ熟成度が高くない翻訳エンジンの身になって、あらかじめ最適化しておくのも重要である。たとえば次のようなノウハウが役立つだろう。
  1. 長文になればなるほど翻訳精度が落ちるので、できるだけ各文を短文にするのが望ましい。
  2. 複文(述語が二つ以上存在する文)や重文(短文を二つ以上並列させた文)はできるだけ避ける。
  3. 余計な副詞や修飾語は避け、平易、簡潔、かつ論理的な文章にする。
  4. 主語、述語、目的語が入っている明確な文章を書くよう努める。
  5. 漢字を使える部分は積極的に使う。
  6. 別な意味に誤解されかねない曖昧な表現は避ける。
  7. 英訳と和訳を繰り返すと、英文と和文の完成度が低い部分がわかり、結果として英文の質が向上する可能性がある。
  8. 可算名詞と不可算名詞をしばしば取り違えるので、疑問を感じたら新英和中辞典を引くことを推奨する。
  9. 英訳の冒頭が However (Nevertheless), Therefore (Accordingly, Hence), On the other hand, Further (In addition) となり過ぎる傾向がある。目に余る場合は、Though (Although), Because, Since, While, Whereas, also, too などで書き直すとよい。
短文化(1) の例::名詞がいくつか並んでいる場合、便宜上一つだけにすると適切に訳せる可能性が増す。生成した英文に削除した名詞を追加するのは容易である。

9. Lutwig の活用


せっかくネットに接続した状態で Google スプレッドシートを利用しているのだから、オンライン英文検索サービス Lutwig の活用も推奨したい。
Lutwig の Web サイト: https://ludwig.guru/
Evernote の公開ノート (Ludwig): https://bit.ly/2UQB0fY

Lutwig は他力本願の翻訳サービスではない。Lutwig 中の "Search here..." という枠に各セルの文章をコピー&ペーストして、類似した文脈を含む 15 個(登録済みの場合)の英文を検索し、それらを参考にして自分の英文をブラッシュアップする。高品位の例文を手軽に参照できるため、効果てきめんである。

10. ファイル関係の操作


普通は「自分がオーナー」を選んで表示させる。左から三つ目のボタンでリスト表示とギャラリー表示をボタンで切り替えられる。リスト表示で各ファイルの右端にある点三つのボタンをクリックすると、「名前を変更」と「削除」を選べる。

右端の「ファイル選択ツールで開く」で「アップロード」をクリックし、「パソコンからファイルを選択」をクリックすれば、PC 上のファイルを読み込める。

「ファイル > 形式を指定してのダウンロード > Microsoft Excel」 を選ぶと、ブラウザーのダウンロード先に指定したフォルダーに Excel 互換のファイル hoge.xlsx が保存される。「ファイル > メールに添付して送信」を選ぶと、ただちにメールの作成・送付に移行できる。添付ファイルをオフラインで編集した後、返送してもらえばよい。

11. シートの追加


左下の +(シートを追加)をクリックすると、新たなシートで翻訳できる。

既存シートの 1 行目だけ利用する場合の手続きは次の通り。
  1. 既存シートのタブを右クリックし「コピーを作成」を選ぶ。
  2. 右側に新シートがコピーされる。
  3. 2 行目以降のデータを削除する。
  4. 新シート名を右クリックし、「名前を変更」を選んでから名前を変更する。

12. ファイル共有によるリアルタイム共同編集

  1. スプレッドシート (以後、hoge と記述する) 編集中に右上の [共有] をクリックするか「ファイル > 共有」を選ぶ。
  2. スプレッドシートを公開したい相手の Gmail のメールアドレスを入力した後、左下の [送信] をクリックする。
  3. 相手に 「hoge - 編集へのご招待」 というメールが届く。
  4. そのメールを開き [スプレッドシートで開く] をクリックすると、ただちに hoge の共同編集作業に従事できる。Help の右横で、編集参加者としてピンクに色づけられる。
  5. 編集済みセル以外を選択すると、相手のスプレッドシートにリアルタイムで反映される。誤ってスプレッドシートを閉じないよう注意せよ。
  6. 画面右上にある四角いチャットマークをクリックすれば、チャットを開始できる。カナ漢字変換結果の確定以外で を押すと、入力データが送信されることに注意せよ。いったんエディターで入力した後、コピー&ペーストするのが安全である。
  7. チャットの内容は保存されないので、必要なら Google ドキュメントにコピー&ペーストする。チャットのウィンドウ内をクリックしてから、Ctrl-A, Ctrl-C を押し、ドキュメントのウィンドウ内で Ctrl-V を押せばよい。スレッドシートと同様に Gmail のアドレスを持っている人に共有を通知と共有できる。
必要に応じて 「ファイル > 共同編集者にメールを送信」 も利用するとよい。

付録: Google ドキュメントを利用する翻訳


Google ドキュメントでは GNMT システムによって和文を各国語に翻訳できる。Google ドキュメントで日本語.doc を英訳し、English.doc を得るときの操作は次の通り:
    1. Google ドキュメントの「新しいドキュメントを作成」で「空白」をクリックし、「無題のドキュメント」を日本語.doc に改名し、和文を入力する。
    2. メニューバーで「ツール > ドキュメントを翻訳」を選ぶ。
    3. 「新規ドキュメントのタイトル」を English.doc と入力し、翻訳する言語として「英語」を選択する。
    4. [翻訳] をクリックすると、English.doc に新たなタブが割り当てられ英訳結果が表示される。
    後で日本語.doc を開いたときに「ファイル > 開く」を選べば、English.doc も別なタブの下に開くことができる。

    選択した文字を上付き(下付き)文字にするには、「表示形式 > テキスト > 上付き(下付き)文字」を選択する。

    ファイルを共有しているときは、右上の [コメント履歴を開く] ([共有]の左)をクリックした後、[+ コメント] (コメントを追加)をクリックしてコメントを入力し、[コメント]をクリックして相手とのコミュニケーションを図るとよい。

    各コメントで [解決] の右にある「その他のオプション」(ポイントが縦に三つ並んだアイコン)をクリックすれば、コメントを編集・削除できる。

    「ファイル > 形式を指定してダウンロード > Microsoft Word (.docx)」を選べば、Word 互換ファイル *.docx が保存される。
コメント
from: nana   2019/10/18 4:31 PM
大変有用な記事ありがとうございます。早速試したいと思っているのですが、Translation.gsのソースコードをコピペしてセーブしようとしたところ、

for-loopの条件の後に:がありません。(行12、ファイル「Translation」)というエラーがでてしまいます。

そして、以下のコードに網掛けがかかります。
for (var i=0; i var val = range.getValues()[i][0];

どのように対処すればよいか、お手数ですがご教授いただければ幸いです。
コメントする









 

(C) 2019 ブログ JUGEM Some Rights Reserved.