たった数秒で結果が表示される!英語のPDFファイルを日本語に翻訳するGUIツールを作ってみた
ASCII.jp / 2022年12月31日 17時0分
GUIツールを作成する
前述した機能を埋め込むGUIツールを作成します。まず、ざっくりとしたGUIツールの完成イメージは以下のような感じでした。
このイメージをもとに実装していくのですが、まずはPySimpleGUIの使い方を取得します。公式ドキュメントでは、PySimpleGUIプログラムには5つのセクションがあると説明されており、以下のコードでウィンドウが生成されます。
これを参考にPart2とPart4の部分を実装していきます。(Part1、3、5はほぼそのまま)
まず、Part2はサンプルに加えて、デザインテーマとフレームを使用しました。デザインテーマは150種類以上のカラーテーマから設定でき、今回はテキストの読みやすさなども考慮し、シンプルな「Black」を設定しました。
フレームは原文(英語テキスト)と翻訳結果(日本語テキスト)の表示に使用し、以下のように実装しました。また、入力値がある要素はキー(key)を設定し、出力値の表示先を指定(target)しています。
# guitool.py - Part2:The Layout sg.theme('Black') #デザインテーマの設定 frame_output1 = [[sg.Output(size=(100,50), key='-OUTPUT1-')]] #原文(英語)を表示するフレーム frame_output2 = [[sg.Output(size=(100,50), key='-OUTPUT2-')]] #翻訳結果(日本語)を表示するフレーム layout = [ [sg.Text('翻訳したいPDFファイルを選択してください')], #テキストの表示 [sg.InputText(key='-INPUT-'), sg.FileBrowse(key='-FILEPATH-',target='-INPUT-')], #PDFファイルのパス指定 [sg.Button('日本語にする')] , #翻訳の実行ボタン [sg.Frame('原文',frame_output1),sg.Frame('日本語訳',frame_output2)], #実行結果の表示 [sg.Button('終了する')] #終了ボタン ]
次にPart4ではイベントループの中で、各イベントが発生した際の処理を実行します。今回のイベントは(1)終了ボタンが押下される、(2)翻訳の実行ボタンが押下されているの2つで、それぞれ次のような処理を実施します。
(1)終了ボタンが押下される →イベントループを抜ける(Part5へ)
(2)翻訳の実行ボタンが押下される →指定したPDFファイルから原文のテキストを抽出 →フレーム(key:-OUTPUT1-)に原文を表示する →抽出したテキストを日本語に翻訳する →フレーム(key:-OUTPUT2-)に翻訳結果を表示する
これを実装すると以下のようになります。
# guitool.py - Part4:The Layout while True: event, values = window.read() pdf_path = values.get('-FILEPATH-') if event in (sg.WIN_CLOSED, '終了する'): #イベント① break #イベントループを抜ける if event == '日本語にする': #イベント② en_docs = pdf_to_text(pdf_path) #指定したPDFファイルから原文のテキストを抽出 window['-OUTPUT1-'].update(en_docs) #フレームにに原文を表示する jp_dosc = translate(en_docs) #抽出したテキストを日本語に翻訳する window['-OUTPUT2-'].update(jp_dosc) #フレームに翻訳結果を表示する
数秒待つと、翻訳結果が表示される
実際に作成したGUIツールを使ってみます。日本語に翻訳するのは、無料のオンライン電子書籍ライブラリ「Project Gutenberg」で公開されているパブリック・ドメインの『美女と野獣(Beauty and the Beast)』です。
実装したプログラムを実行すると、以下のようなGUIツールが表示されました。
BrowseボタンからPDFファイルを指定すると、パス名が表示されます。
日本語にするボタンを押した後、数秒待つと、翻訳結果が表示されました。
純粋に自分が必要としていたものだったこともあり、かなり満足度の高いツールが作れたと思います。そして、PySimpleGUIの使い勝手が非常に良かったので、今後もいろんな場面で利用していきたいと思いました。
高桑蘭佳(たかくわらんか)
1994年生まれ。石川県出身。東京工業大学大学院環境社会理工学院研究生。2018年8月にメンヘラテクノロジーを設立。彼氏を束縛したくて起業した大学院生として「アウト×デラックス」(フジテレビ系列)や、「指原莉乃&ブラマヨの恋するサイテー男総選挙」(AbemaTV)などに出演。
この記事に関連するニュース
-
Excelをノーコードで自動化しよう! パワークエリの教科書 第8回 パワークエリの“大まかな流れ”を復習しよう
マイナビニュース / 2024年7月1日 11時0分
-
Excelをノーコードで自動化しよう! パワークエリの教科書 第7回 「ステップ」と「M言語」の関係とは? エラー処理を理解する
マイナビニュース / 2024年6月24日 11時0分
-
AIプロンプトカスタマイズ機能など使い勝手が大幅に向上「EmEditor」v24.3
マイナビニュース / 2024年6月13日 21時25分
-
Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように
ASCII.jp / 2024年6月9日 10時0分
-
脱「パワポっぽい」 Canvaでオシャレなプレゼンを 第17回 スライドをPDFや画像に変換してダウンロードする方法
マイナビニュース / 2024年6月6日 9時0分
ランキング
-
1「ロンハー」有吉弘行のヤジに指摘の声「酷かった」「凄く悲しい言葉」 42歳タレントが涙浮かべる
ねとらぼ / 2024年7月2日 15時31分
-
2老後の趣味で気軽に“塗り絵”を始めて1年後…… めきめき上達した70代女性の美麗な水彩画に「本当にすごい…」「感動です」
ねとらぼ / 2024年6月29日 22時0分
-
3マイナポータルで障害、一部機能が利用しづらくなった
ASCII.jp / 2024年7月2日 16時35分
-
4KADOKAWAの情報、さらに流出の可能性──ハッカーが追加で公開か 同社は信ぴょう性を調査中
ITmedia NEWS / 2024年7月2日 11時25分
-
5「昔のミスド良すぎる」「復活してほしい!」 30年以上前の“ミスドのドーナツ”に復活求める声相次ぐ
ねとらぼ / 2024年6月26日 12時30分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください