如何使用Python对大型文本文件进行双重翻译?

时间:2018-10-18 13:35:12

标签: python-3.x google-translate

我有一个text.csv文件,大小为2 x 400000,看起来像这样:

         col 1         col2
0        text          text
1        text          text
2        text          text
...
399999   text          text
400000   text          text

每个专栏都需要从英语翻译成法语,然后再回到英语。我尝试使用Google Translate手动执行此操作,但是我的文件大小为60MB,Google Translate仅支持最大1 MB的文件。

该Eng> Fr> Eng翻译可以使用Python自动完成吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作来读取csv文件,并且文件中的每一行都将两列从英语翻译为法语,然后又翻译为英语:

import csv
from google.cloud import translate
translate_client = translate.Client()
def translateFunction(text,target):
        translation = translate_client.translate(text,target_language=target)
        return (translation['translatedText'])
output_file = open('output.csv', 'wb')
reader = csv.reader(open('source.csv', 'rU'), dialect=csv.excel_tab,delimiter=',')
for row in reader:
    column1=translateFunction(translateFunction(row[1],'fr'),'en')
    column2=translateFunction(translateFunction(row[2],'fr'),'en')
    output_text = ','.join([row[0],column1,column2])
    output_file.write(output_text.encode('utf-8')+'\n')
output_file.close()

请记住,这会向Translation API发出多个请求。