見出し画像

【はじめてのColab】スプレッドシートの内容を一括英訳したメモ

Googleが提供する無料で使えるPython環境「Colaboratory」(通称:Colab)

そのうち使ってみようかと思っていましたら、ちょうどいい題材が目に入ってきたので、試しに軽く触ってみました。
ColabもPythonもはじめましてなので、一般的な記載/効率的な記載はできていないとは思いますが、これから精進していきます。
とりあえず、動いたのメモです。

やりたいこと

スプレッドシートに記載して日本語を英語に翻訳し、確認のために再翻訳する。

  1. A2セルの翻訳元言語、B2セルの翻訳先言語、C2セルの再翻訳先言語を取得する

  2. A3セル以下の日本語をDeepLAPIを通して、A2セル言語からB2セル言語に翻訳し、B3セル以下に設定する

  3. 2で設定した内容をC3セル以下にGoogle翻訳で、B2セル言語からC2言語に翻訳する

翻訳、再翻訳のサンプル

できたのがこちら

こんな感じ

# ワークシートを取得
mainSheet = workbook.worksheet("翻訳_Work")

# 翻訳言語の取得
originalLang = mainSheet.cell(MAIN_LANGUAGE_ROW, MAIN_ORIGINAL_COL).value
translatLang = mainSheet.cell(MAIN_LANGUAGE_ROW, MAIN_TRANSLATION_COL).value
reTranslatLang = mainSheet.cell(MAIN_LANGUAGE_ROW, MAIN_RE_TRANSLATION_COL).value

# DeepL APIキー設定
deplTranslator = deepl.Translator(APIKEY_DEEPL)

# グーグル翻訳
gglTranslator = Translator()

# 翻訳行数分処理を繰り返す
rownum = MAIN_LINE_START_ROW

while TRUE:
  # 未設定の行にたどり着いたら終了
  if not mainSheet.cell(rownum, MAIN_ORIGINAL_COL).value:
    break

  # 翻訳対象の取得
  originalLines = mainSheet.cell(rownum, MAIN_ORIGINAL_COL).value

  # 翻訳
  # preserve_formatting='true' : 自動成型なし
  # tag_handling='xml' : 解析タグXML形式
  results = deplTranslator.translate_text(originalLines, source_lang=originalLang, target_lang=translatLang, preserve_formatting='true', tag_handling='xml')
  translationLine = results.text
  mainSheet.update_cell(rownum, MAIN_TRANSLATION_COL, translationLine)

  # 再翻訳
  reResults = gglTranslator.translate(translationLine, dest=reTranslatLang)
  mainSheet.update_cell(rownum, MAIN_RE_TRANSLATION_COL, reResults.text)

  rownum = rownum + 1

DeepLAPIについては公式ドキュメント参照ください。
実際使うときはXML形式のテキストを想定していたので、XMLオプションと成形なしのオプションを付けて翻訳させています。

グーグル翻訳のPythonライブラリはこちら参照ください。

ライブラリ使用時にところにハマって参考にさせていただいた情報

おしまい

小さくて簡単ですけど、動くものができたのでとりあえずヨシ!
やっぱり勉強しようの気持ちも大事ですけど、こういうのを動かしてみたいってものがあると手が動くのでいいですね。
せっかくのPython+SpreadSheetなので、もっと分析とかでやってみたいことが見つけれらると楽しくなってきそうです。
が、しばらくはVBA的な使い方から遊んでみます。

いいなと思ったら応援しよう!