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でお願いします。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?