本篇簡單使用一個中英文翻譯的模型,做為往後可利用的工具。這樣大量翻譯,就不用再使用Google翻譯了!
基本環境安裝
一些基本的環境 (如 anaconda、共用 script) 的設定,已經寫在【共同操作】 這篇文章裡,請先看一下,確保所以指令可以正確運作。
建立 conda env
由於每個專案的相依性都不同,這裡會為每個案子都建立環境。
1 |
conda create -n trans python=3.9 |
安裝環境
將下面內容存成 requirements.txt 然後以 pip install -r requirements.txt 來安裝所需套件。
1 2 3 4 5 6 |
transformers torch==1.13.1 shap torch chardet sentencepiece==0.1.9 |
程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM import shap import torch import chardet import sys if len(sys.argv) == 1: tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-zh") model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-en-zh") text = ["In terms of time, the Chinese space station was built more than 20 years later than the Internation Space station"] else: tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-zh-en") model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-zh-en") text = ["今天天氣真好"] batch = tokenizer(text, return_tensors="pt") translation = model.generate(**batch) result = tokenizer.batch_decode(translation, skip_special_tokens=True) txt="".join(result) print(txt) |
程式碼內容是使用用 huggingface 的網站下載模型,執行時不代參數就用英翻中,有帶任意參數就會執行中翻英。模型被分成2個,opus-mt-en-zh 就是英翻中,而 opus-mt-en-zh則是中翻英。其頁面分別在
- https://huggingface.co/Helsinki-NLP/opus-mt-en-zh
- https://huggingface.co/Helsinki-NLP/opus-mt-zh-en
模型應該是大陸人訓練的,所以會是簡體,不過似忽繁體也看的懂。