見出し画像

Pythonで英文を処理→翻訳

こんにちは!ねずみとりです。今回はPythonで英語論文の文章を翻訳しやすいように処理してGoogle翻訳するプログラムをつくります。ChatGPT等のAIで翻訳したほうが速いのでは?と考える方もいるでしょう。その通りです。
ですが今回はPythonを使いたかったので自作します。

環境

プログラミング言語はPythonで環境はGoogleColaboratoryを使用します。GoogleColaboratoryはブラウザ上でプログラムを実行することができるため、ブラウザのタブを切り替えてコピペするだけでPDFの英語を翻訳できます。

初期設定

以下にコードとGoogleColaboratoryでの見た目を貼ります。google翻訳をしてくれるライブラリの設定をしています。

#@title 初期設定
!pip3 install googletrans==4.0.0-rc1
from googletrans import Translator
translator = Translator()
import re
from google.colab import output
output.clear()


文字列連結

文字列の連結プログラムは以下のようになります。以下の画像のようにinput_1とinput_2に入力された文字を連結して出力します。

# @title 連結 { run: "auto" }
input_1 = "Hello " #@param [""] {allow-input: true}
input_2 = "world " #@param [""] {allow-input: true}
print(input_1+input_2)


翻訳

入力された文字を加工して翻訳します。加工は翻訳する論文の分野によって変わりますが、ピリオドで改行してGoogle翻訳が翻訳しやすくするため、ピリオド以外にドット(.)を使っている小数点などを適当な文字列に置き換え、最後に戻しています。

# @title 自動翻訳 { run: "auto" }

alternative_dot="tmp_dot"#.の代わり

input_text = "Hello world " #@param [""] {allow-input: true}

if input_text!="":
  correct_text=re.sub(r'\r\n',' ',input_text)#改行を空白にする
  correct_text=re.sub(' ',' ',correct_text) #全角空白を半角空白にする
  correct_text=re.sub(r'(\d)\.(\d)',r'\1'+alternative_dot+r'\2',correct_text)#少数を変換から除外する
  correct_text=re.sub('etc.','etc'+alternative_dot,correct_text)#etc.を変換から除外する
  correct_text=re.sub('Fig.','Fig'+alternative_dot,correct_text)#Fig.を変換から除外する

  correct_text=re.sub(r'\.',".\r\n\r\n",correct_text)#ピリオドがあったら改行する
  correct_text=re.sub(alternative_dot,'.',correct_text)#.の代わりを.に直す
  translation_text = translator.translate(correct_text, src='en', dest='ja').text

  print(translation_text)


改善点

・Google翻訳ではなくDeepLを使ってもいいかもしれない。

おわり

ここまで見て頂きありがとうございます。疑問点等があればコメントかXのDMでお願いします。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?