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

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

※基本的には[作者様の記事](https://qiita.com/cabernet_rock/items/1f9bff5e0b9363da312d)に沿っていますので、まずは作者様の記事を見て頂き、詰まった点があれば本記事をご参照ください。
※ほん訳コンニャクは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編）](Python3インストール（Mac編）)）。
※作者様の記事によるとデフォルトのpython（2系）でも動くようなのですが、記事内ではpython3上で実行されていますので合わせました。

まず、[公式サイト](https://www.python.org/downloads/)からpkgファイルをダウンロードします。2020年9月4日時点では3.8.5が最新バージョンでした。ダウンロードしたpkgファイルをダブルクリックしてインストールします。基本的に「続ける」で問題ありません。
![Download_Python___Python_org.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/3e145a81-0784-5be6-5140-0596d06f380d.png)

インストールできたか確認するためにターミナルを開きます。ターミナルはアプリケーション→ユーティリティの中にあります。
![ユーティリティ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/31a970b4-2a99-d035-039b-c71e0fd0ab07.png)
ターミナルが起動したら「python3」と入力します。「Python 3.8.5」（ここの値はバージョンによって変わります）という表示が出たらインストール成功です。
![tt_—_Python_—_80×24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/e1c484f1-6f56-e616-da71-bd1302a10fb9.png)

### wkhtmltopdfのインストール
wkhtmltopdはHTMLからPDFを作成するためのプログラムです。[公式のダウンロードサイト](https://wkhtmltopdf.org/downloads.html)から自分のPCに合致したものをダウンロードしてください。
![wkhtmltopdf.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/de7979dc-c65b-c043-6e10-0ef89a36de16.png)
ダウンロードしたpkgファイルをダブルクリックしてインストールします。基本的に「続ける」で問題ありません。インストールできたらターミナルを開いて下記のコマンドを入力します。「google.pdf」が作成されればインストール成功です。

```sh
#作者様の記事と同じ内容
wkhtmltopdf http://google.com google.pdf
```
![tt_—_-zsh_—_80×24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/fbe561f8-9ee8-c90a-1ed3-297540de360e.png)

### ChromeDriverのインストール
ChromeDriverはgoogle chromeのWebDriverです。WebDriverとはブラウザをプログラムで操作するために必要なソフトで、ほん訳コンニャクでは翻訳結果をhtmlで出力する際に必要なようです（この辺の仕組み理解できていない）。他のブラウザでも良いと思うのですが、作者様の記事に合わせてgoogle chromeを用いることにします（goole chromeがない場合はインストールしてください）。
参照：[Python + Selenium で Chrome の自動操作を一通り
](https://qiita.com/memakura/items/20a02161fa7e18d8a693#chromedriver-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)

[公式サイト](http://chromedriver.chromium.org/downloads)からChromeDriverをダウンロードします。
![Downloads_-_ChromeDriver_-_WebDriver_for_Chrome.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/e53e481b-d038-b44f-40cb-3b42a28a7937.png)
注意点として、自分のPCにインストールされているgoogle chromeと**同じバージョンをダウンロード**してください。google chromeのバージョンは設定（ブラウザ右上の「・」が3つ縦に並んでいてるアイコン）→「Chromeについて」で確認できます。
![設定_-_Chrome_について.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/ff9fb5db-07d6-12ed-de99-cccfdcba0422.png)
zipファイルがダウンロードされるので解凍します（Macの場合はダブルクリック）。解凍されたファイルを**パスの通ったフォルダ**にコピーします。
「パスを通す」はターミナル操作に慣れていないと分かりにくいかもしれません。簡単に言うと、コンピュータがソフトを実行するためには**そのソフトがどこにあるのか**知っている必要があります。**その場所までの通り道（＝path）をコンピュータに覚えさせる操作**になります。
自分のPCでPATHの通っている場所を確認するには下記コマンドをターミナルで実行します。

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

```sh
echo 'export PATH=$PATH:~/Downloads' >> ~/.bash_profile
source ~/.bash_profile
```
この後再び「echo $PATH」とコマンドを打つとDownloadsフォルダがPATHに追加されています。この中に解凍したChromeDriverをコピーします。その後ターミナルで「chromedriver」と入力し、下記のような表示が出ればPATHを通せています。
![tt_—_chromedriver_—_80×24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/ecdf8f1b-9d52-aa68-4c6d-ff734e9a9ee8.png)
※PATHについての詳細や上記コマンドの意味は「[PATHを通すとは？ (Mac OS X)](https://qiita.com/soarflat/items/09be6ab9cd91d366bf71)」や「[PATHを通すために環境変数の設定を理解する (Mac OS X)](https://qiita.com/soarflat/items/d5015bec37f8a8254380)」などをご参照ください。

### 必要なpythonライブラリのインストール
seleniumをインストールし、ChromeDriverが問題なく動くか確認します。

```sh
#作者様の記事と同じ内容
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も問題なく動くようです。

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

```sh
pip3 install Translation-Gummy
```
### 翻訳の実行
```sh
#作者様の記事と同じ内容
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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/8e6be902-ff34-8f39-833a-9cb002ce6d73.png)
エラーメッセージを読むと「punkt」というパッケージがないようです。「Please use the NLTK Downloader」と表示されているので、実行してみます。

```sh
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](https://stackoverflow.com/questions/38916452/nltk-download-ssl-certificate-verify-failed)）。
下記コマンドをpython3上で実行します。

```sh
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()
```

再び試みます。

```sh
#作者様の記事と同じ内容
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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363491/b36bf357-482e-4182-06fe-4f01725caf66.png)


# 補足
ほん訳コンニャクはpipでインストールしますが、pipとconda環境が混ざるのは良くないようです（具体的にどう良くないのかは理解できていない。参考：[condaとpip：混ぜるな危険](http://onoz000.hatenablog.com/entry/2018/02/11/142347)）。そのため私は**venv**というパッケージを用いてほん訳コンニャク用の仮想環境を作成し、仮想環境上で実行しています。venvはpython3に最初から付属しています。

仮想環境の作成

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

```sh
source 仮想環境名/bin/activate
```