你好我有一個類,我加載一個擁抱臉翻譯模型,它還有一個執行實際翻譯的函式:
class Translator:
def __init__(self, language):
model = f"Helsinki-NLP/opus-mt-{language}-en"
self.translator = pipeline("translation", model=model, device=0)
def translate(self, text):
translated_text = self.translator(text)
return translated_text
我還有一個函式,我一遍又一遍地使用 Translator 物件。我的問題是:在這樣的函式之外創建 Translator 類的實體是正確的,還是有更好的方法?
#Example code
from anotherdir import Translator
translator = Translator("de")
def load_text_and_translate(list_of_non_translated_text):
final_translated_text_list = []
for text in list_of_non_translated_text:
translated_text = translator.translate(text)
final_translated_text_list.append(translated_text)
return final_translated_text_list
希望我已經讓自己理解了,我試圖找出一種更好的方法來做到這一點,但一直無法想出一些東西。
uj5u.com熱心網友回復:
創建一個可以在許多地方使用的翻譯器很好。但是讓你的函式將翻譯器作為引數,而不是依賴于全域變數。
def load_text_and_translate(tr, list_of_non_translated_text):
final_translated_text_list = []
for text in list_of_non_translated_text:
translated_text = tr.translate(text)
final_translated_text_list.append(translated_text)
return final_translated_text_list
translator1 = Translator("de")
translator2 = Translator("fi")
text = ["hello", "world"]
german_translation = load_text_and_translate(translator1, text)
finnish_translation = load_text_and_translate(translator2, text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/531679.html
上一篇:從類串列中彈出一個物件
下一篇:網格刻度位置的確切軸值是多少?
