我有数百万个字符串要从中文翻译成英文。它们存储在data = {"1432": "普萘洛尔", "1433: "地西泮", "1434": "苯妥英钠", '1435': "阿昔洛韦"}
之类的Python字典中。这本词典的关键字是术语id,其值是中文的药品名称。我的目标是将这些药品名称翻译成英文,且其ID保持不变。我需要将结果写入txt文件。
我用来完成Google翻译的功能。
from googletrans import Translator
def trans(src_dict):
tgt_dict_txt = open("tgt_dict.txt","w")
sent_counter = 0
global k, v
for k, v in src_dict.items():
translator = Translator()
translations = translator.translate(v, src="zh-CN", dest="en")
trans = translations.text
print(trans)
tgt_dict_txt.write(k + "|||" + trans + "\n")
sent_counter = sent_counter + 1
print(str(k) + ' updated, so far: ' + str(sent_counter))
tgt_dict_txt.close()
鉴于我需要翻译大量的字符串,我正在考虑使用python Multiprocessing池来加快此过程。我尝试过:
from multiprocessing import Pool
with Pool(5) as p:
p.map(trans, data)
print("DONE!")
但是,没有任何内容写入"tgt_dict.txt"
,并且Jupyter Notebook中的多处理部分从未执行完。我该如何更正我的代码?