9
7

More than 3 years have passed since last update.

初めてターミナルに触れた人が「ほん訳コンニャク」で論文を自動英訳するまで。

Last updated at Posted at 2020-09-04

背景

「ほん訳コンニャク」はcabernet_rockさんが作成された英語論文の翻訳プログラムです。論文のURLを投げれば原文とその日本語訳が並列されたPDFファイルを図も含めて出力してくれます。下記の記事に仕組みとインストール方法について分かりやすくまとめられています。ただ、自分がインストールしていて少し詰まった点があるのと、wetメインのターミナル操作に慣れていない人には少しハードルが高いので、初めてターミナルを開く人に向けたインストール方法を記載します。
「ほん訳コンニャク」 を食べて 論文を読もう
「ほん訳コンニャク」 を使ってみよう。

※基本的には作者様の記事に沿っていますので、まずは作者様の記事を見て頂き、詰まった点があれば本記事をご参照ください。
※ほん訳コンニャクはpipでインストールしますが、pipとconda環境が混ざると良くないようです。そのため、私はvenvでほん訳コンニャク用の仮想環境を作成して実行しています(この方法がベストなのかは分かりませんが。。。)。仮想環境の作成方法は最後の補足に記載しました。
※タイトル詐欺みたいでも申し訳ないですが、私自身はwet系ですが初めてターミナルに触れるわけではありません

環境

PC: MacBook Pro 2020
OS: macOS Catalina (10.15.5)
shell: zsh (5.7.1)

方法

pythonのインストール

macに最初からインストールされているpythonはバージョンが古い(2系)ため、最新のバージョン(3系)をインストールします(参考:Python3インストール(Mac編))。
※作者様の記事によるとデフォルトのpython(2系)でも動くようなのですが、記事内ではpython3上で実行されていますので合わせました。

まず、公式サイトからpkgファイルをダウンロードします。2020年9月4日時点では3.8.5が最新バージョンでした。ダウンロードしたpkgファイルをダブルクリックしてインストールします。基本的に「続ける」で問題ありません。
Download_Python___Python_org.png

インストールできたか確認するためにターミナルを開きます。ターミナルはアプリケーション→ユーティリティの中にあります。
ユーティリティ.png
ターミナルが起動したら「python3」と入力します。「Python 3.8.5」(ここの値はバージョンによって変わります)という表示が出たらインストール成功です。
tt_—_Python_—_80×24.png

wkhtmltopdfのインストール

wkhtmltopdはHTMLからPDFを作成するためのプログラムです。公式のダウンロードサイトから自分のPCに合致したものをダウンロードしてください。
wkhtmltopdf.png
ダウンロードしたpkgファイルをダブルクリックしてインストールします。基本的に「続ける」で問題ありません。インストールできたらターミナルを開いて下記のコマンドを入力します。「google.pdf」が作成されればインストール成功です。

#作者様の記事と同じ内容
wkhtmltopdf http://google.com google.pdf

tt_—_-zsh_—_80×24.png

ChromeDriverのインストール

ChromeDriverはgoogle chromeのWebDriverです。WebDriverとはブラウザをプログラムで操作するために必要なソフトで、ほん訳コンニャクでは翻訳結果をhtmlで出力する際に必要なようです(この辺の仕組み理解できていない)。他のブラウザでも良いと思うのですが、作者様の記事に合わせてgoogle chromeを用いることにします(goole chromeがない場合はインストールしてください)。
参照:Python + Selenium で Chrome の自動操作を一通り

公式サイトからChromeDriverをダウンロードします。
Downloads_-_ChromeDriver_-_WebDriver_for_Chrome.png
注意点として、自分のPCにインストールされているgoogle chromeと同じバージョンをダウンロードしてください。google chromeのバージョンは設定(ブラウザ右上の「・」が3つ縦に並んでいてるアイコン)→「Chromeについて」で確認できます。
設定_-_Chrome_について.png
zipファイルがダウンロードされるので解凍します(Macの場合はダブルクリック)。解凍されたファイルをパスの通ったフォルダにコピーします。
「パスを通す」はターミナル操作に慣れていないと分かりにくいかもしれません。簡単に言うと、コンピュータがソフトを実行するためにはそのソフトがどこにあるのか知っている必要があります。その場所までの通り道(=path)をコンピュータに覚えさせる操作になります。
自分のPCでPATHの通っている場所を確認するには下記コマンドをターミナルで実行します。

echo $PATH

「/usr/local/bin」や「/usr/bin」などが表示されたと思います(「:」は場所の区切りです)。このどこかにコピーしても良いのですが、ここでは新しくホームにあるDownloadsフォルダにパスを通してみます。ターミナルで下記コマンドを実行します。

echo 'export PATH=$PATH:~/Downloads' >> ~/.bash_profile
source ~/.bash_profile

この後再び「echo $PATH」とコマンドを打つとDownloadsフォルダがPATHに追加されています。この中に解凍したChromeDriverをコピーします。その後ターミナルで「chromedriver」と入力し、下記のような表示が出ればPATHを通せています。
tt_—_chromedriver_—_80×24.png
※PATHについての詳細や上記コマンドの意味は「PATHを通すとは? (Mac OS X)」や「PATHを通すために環境変数の設定を理解する (Mac OS X)」などをご参照ください。

必要なpythonライブラリのインストール

seleniumをインストールし、ChromeDriverが問題なく動くか確認します。

#作者様の記事と同じ内容
pip3 install selenium
python3
>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.python.org")
>>> driver.save_screenshot('screenshot.png')
True

Trueと表示され無事にseleniumがインストールできました。Chrome Driverも問題なく動くようです。

ほん訳コンニャクのインストール

最後にほん訳コンニャクをインストールします。

pip3 install Translation-Gummy

翻訳の実行

#作者様の記事と同じ内容
python3
>>> from gummy import TranslationGummy
>>> gummy = TranslationGummy(gateway="useless", translator="deepl")
>>> pdfpath = gummy.toPDF(url="https://www.nature.com/articles/ncb0800_500", path="sample.pdf", delete_html=True)
>>> print(pdfpath)

翻訳を実行してみましたが、「pdfpath = gummy.toPDF(url="https://www.nature.com/articles/ncb0800_500", path="sample.pdf", delete_html=True)」でエラーになりました。
venvList_—_Google_Chrome_Helper__Renderer__◂_Python_—_128×65.png
エラーメッセージを読むと「punkt」というパッケージがないようです。「Please use the NLTK Downloader」と表示されているので、実行してみます。

import nltk
nltk.download('punkt')
 [nltk_data] Error loading Punkt: <urlopen error [SSL:
 [nltk_data]     CERTIFICATE_VERIFY_FAILED] certificate verify failed

しかし、またしてもエラーになってしまいました。エラーメッセージをgoogle検索すると解決方法が見つかりました(NLTK download SSL: Certificate verify failed)。
下記コマンドをpython3上で実行します。

import nltk
import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context

nltk.download()

再び試みます。

#作者様の記事と同じ内容
python3
>>> from gummy import TranslationGummy
>>> gummy = TranslationGummy(gateway="useless", translator="deepl")
>>> pdfpath = gummy.toPDF(url="https://www.nature.com/articles/ncb0800_500", path="sample.pdf", delete_html=True)
>>> print(pdfpath)
sample.pdf

今度は上手くいきました。

結果

無事に翻訳できました!素晴らしいです!
sample_pdf(1___10ページ).png

補足

ほん訳コンニャクはpipでインストールしますが、pipとconda環境が混ざるのは良くないようです(具体的にどう良くないのかは理解できていない。参考:condaとpip:混ぜるな危険)。そのため私はvenvというパッケージを用いてほん訳コンニャク用の仮想環境を作成し、仮想環境上で実行しています。venvはpython3に最初から付属しています。

仮想環境の作成

mkdir ディレクトリ #仮想環境を使用するディレクトリの作成
cd ディレクトリ #仮想環境を使用するディレクトリに移動
python3 -m venv 仮想環境名

仮想環境に入る

source 仮想環境名/bin/activate
9
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7