Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
在解決問題之道上不斷前行
偶然間看到一個很有用的專案,作者使用chatGPT來翻譯電子書。原理是解析電子書(epub),將文字丟給GPT進行翻譯再回傳,這作法對於有在使用電子書的使用者真的滿方便,不用再硬啃原文資料囉(?)。
專案位置 作者為:yihong0618
首先準備好openAI的key,原作者提供的使用法以下:
# 如果你想快速测一下
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --no_limit --test --language "Simplified Chinese"
# or do it
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --language "Simplified Chinese"
# or 用 gpt3 模型
export OPENAI_API_KEY=${your_api_key}
python3 make_book.py --book_name test_books/animal_farm.epub --model gpt3 --no_limit --language "Simplified Chinese"
快速使用的話就直接輸入,預設會使用gpt-3.5-turbo模型
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --no_limit --test --language "Simplified Chinese"
如果想降低版本使用gpt3,參數就換成--model gpt3
# or 用 gpt3 模型
export OPENAI_API_KEY=${your_api_key}
python3 make_book.py --book_name test_books/animal_farm.epub --model gpt3 --no_limit --language "Simplified Chinese"
裡面提到一些重點
因為我很怕python環境污染XDDD,已經很久沒裝python了,於是將整格專案使用Docker來跑
DockerFile如下
FROM python:3.8
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ENV OPENAI_API_KEY=${open_ai_key}
COPY . .
CMD ["python3", "make_book.py", "--book_name", "test_books/name.epub", "--test", "--language" , "Traditional Chinese"]
因為習慣使用docker-compose,所以順道加上了這設定,並且新增一個輸出資料夾export
version: "3"
services:
book:
build: .
container_name: book
volumes:
- ./export:/app/export
因為輸出位置有點調整,我將程式碼稍做修改,讓翻譯後的檔案可以輸出到export資料夾中
def make_bilingual_book(self):
....
...
..
name = self.epub_name.split(".")[0]
name = self.epub_name.split("/")[1] #將檔名分離出來
print(name)
epub.write_epub(f"export/{name}_bilingual.epub", new_book, {})
直接看log吧,實際上他會輸出成檔案,將每個段落原文並排。以結果來說堪用,但用在小說還真是不確定翻譯得好不好(炸),而且已經叫他輸出為繁體中文,但還是會有些簡中出現,但這是一個很有潛力的專案,期待啊!
book | またそこの家の美しいのは夜だった。寺町通はいったいに賑
book |
book | かな通りで――と言って感じは東京や大阪よりはずっと澄んでいるが――飾窓の光がお
book | びただしく街路へ流れ出ている。それがどうしたわけかその店頭の周囲だけが妙に暗いの
book | だ。もともと片方は暗い二条通に接している街角になっているので、暗いのは当然であっ
book | が、その隣家が寺町通にある家にもかかわらず暗かったのが瞭然
book |
book | しない。しかしその家が暗くなかったら、あんなにも私を誘惑するには至らなかったと
book | 思う。もう一つはその家の打ち出した廂
book |
book | なのだが、その廂が眼深
book |
book | に冠った帽子の廂のように――これは形容というよりも、「おや、あそこの店は帽子の
book | 廂をやけに下げているぞ」と思わせるほどなので、廂の上はこれも真暗なのだ。そう周囲
book | 真暗なため、店頭に点
book |
book | けられた幾つもの電燈が驟雨
book |
book | のように浴びせかける絢爛
book |
book | は、周囲の何者にも奪われることなく、ほしいままにも美しい眺めが照らし出されてい
book | るのだ。裸の電燈が細長い螺旋棒
book |
book | をきりきり眼の中へ刺し込んでくる往来に立って、また近所にある鎰屋
book |
book | の二階の硝子
book |
book | 窓をすかして眺めたこの果物店の眺めほど、その時どきの私を興がらせたものは寺町の
book | 中でも稀
book |
book | だった。
book |
book |
book |
book | 再次看那房屋的美,真正的美在夜晚。寺町通是一条非常繁华的街道,虽然感觉上没有东京
book | 或大阪那么喧闹,但橱窗的灯光仍然不断地流向街道。但不知道为什么,店铺周围却显得异
book | 常黑暗。虽然原本就是位于连接到暗淡的二条通的街角,所以显得很暗很正常,但即使隔壁
book | 邻居与寺町通的房屋相连,它也很暗。然而,如果那个房屋不这么暗,我不认为它会诱惑我
book | 到这个程度。还有一个是该房屋的突口,它像深度深的帽檐一样,不仅仅是方便而已,它的
book | 顶部也是漆黑一片。因为周围都很黑暗,店铺的许多电灯就像暴雨一样洒向周围,绚丽夺目
book | 的景象没有被任何东西所掠夺,自由自在地照亮了美景。站在露天的电灯下,长长的螺旋杆
book | 直刺眼睛,俯视着这家水果店,就像从离这里很近的旅馆二楼的窗户里看到的那样,这些景
book | 象在寺町中是罕见的,总能让我兴奋不已。
注意他使用的檔案是電子書(epub)非PDF,如果想將手上的資料翻譯,建議要進行標準化的epub轉換,一般轉檔很容易轉成有問題的epub唷。
GPT的翻譯準確度見仁見智,我自己用chrome查資料也很常用機翻的擴充套件,機翻的確有其限制,用詞或上下文語意不一定很完美,建議翻譯後的電子書自己參考就好,若有其他對外用途要考量版權以及翻譯品質唷。