たった数秒で結果が表示される!英語の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)などに出演。
この記事に関連するニュース
-
新機能がいっぱい!iPadOS 18で進化した「メモ」アプリを使いこなそう - iPadパソコン化講座
マイナビニュース / 2024年11月25日 11時34分
-
「mitoco AI」Ver.2.0をリリース
PR TIMES / 2024年11月8日 15時30分
-
Windows Subsystem for Linuxガイド 第41回 WSL GUI設定
マイナビニュース / 2024年11月7日 15時31分
-
【徹底検証】本当に使えるChrome拡張機能はどれ? 第6回 拡張機能の管理方法(追加/削除、有効/無効、キー設定など)
マイナビニュース / 2024年10月31日 9時0分
-
アドビ、「デジタル月間にペーパーレスを促進する」PDFの便利な機能を紹介 クイズ形式で実施した「PDFの機能に関する認知度調査」の結果を発表
PR TIMES / 2024年10月30日 17時45分
ランキング
-
1クレジットカードを少額で不正利用されていない? 巧妙な新手口を解説
ITmedia エンタープライズ / 2024年11月26日 7時15分
-
2リンク付き投稿は拡散力減?イーロン氏明かすXルール 「告知投稿めっちゃ影響」不満も続々
J-CASTニュース / 2024年11月26日 17時11分
-
3『ドラクエ3』大魔王ゾーマ様、配信者になる―自己紹介では「嫌いなもの:ひかりのたま」とポロリ、「“ほりい”とかいう人間も泣き叫んでた」
インサイド / 2024年11月26日 13時10分
-
4オリエンタルランド、東京ディズニーリゾート販売の“3800円のマイボトル”回収 対象個数は4240個…… 「ご迷惑とご心配」
ねとらぼ / 2024年11月26日 17時12分
-
5アップル「iOS 19」SiriがChatGPTみたいになる?
ASCII.jp / 2024年11月26日 20時0分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください