【发布时间】:2021-09-13 19:32:25
【问题描述】:
我是一个新手,正在浏览拥抱人脸库,尝试将翻译模型用于数据输入任务并将文本从英语翻译成意大利语。
我根据文档尝试的代码:
from transformers import MarianTokenizer, MarianMTModel
from typing import List
#src = 'en' # source language
#trg = 'it' # target language
#saved the model locally.
#model_name = f'Helsinki-NLP/opus-mt-{src}-{trg}'
#model.save_pretrained("./model_en_to_it")
#tokenizer.save_pretrained("./tokenizer_en_to_it")
model = MarianMTModel.from_pretrained('./model_en_to_it')
tokenizer = MarianTokenizer.from_pretrained('./tokenizer_en_to_it')
#Next, trying to iterate over each column - 'english_text' of the dataset and
#translate the text from English to Italian and append the translated text to the
#list 'italian'.
italian = []
for i in range(len(data)):
batch = tokenizer(dataset['english_text'][i],
return_tensors="pt",truncation=True,
padding = True)
gen = model.generate(**batch)
italian.append(tokenizer.batch_decode(gen, skip_special_tokens=True))
这里有两个问题:
- 仅翻译和附加部分文本,即,如果段落超过一定长度,它会截断段落。如何翻译任意长度的文本?
- 我有大约 10k 数据,这需要花费大量时间。
即使任何一个问题都可以解决,这也是有帮助的。很想学习
【问题讨论】:
标签: python-3.x neural-network nlp huggingface-transformers machine-translation