小编Tef*_*foD的帖子

Huggingface Transformer[marianmt] 翻译较大文本时出现奇怪的结果

我需要翻译数据库中的大量文本。因此,我这几天一直在和变压器和模型打交道。我绝对不是数据科学专家,不幸的是我没有进一步了解。

\n

问题始于较长的文本。第二个问题是定序器的通常最大令牌大小 (512)。仅仅截断并不是一个真正的选择。在这里,我确实找到了一种解决方法,但它无法正常工作,结果是较长文本(> 300 个序列)上的单词沙拉

\n

这是一个示例(请忽略警告,这是另一个问题 - 目前没有那么严重)

\n

如果我使用例句 2(55 个序列)或 5 次(163 个序列)-没有问题。

\n

但它会被例如 433 序列(屏幕截图中的第三个绿色文本块)搞乱。

\n

在此输入图像描述

\n

对于超过 510 个序列,我尝试将其分成块,如上面描述的链接所示。但这里的结果也很奇怪。

\n

我很确定 - 我有不止一个错误并且低估了这个主题。\n但我认为没有其他(免费/便宜)的方法来翻译大量文本。

\n

你们能帮我一下吗?您发现哪些(思维)错误以及您建议如何解决这些问题?非常感谢。

\n

在此输入图像描述

\n
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM\nimport torch\n\nif torch.cuda.is_available():  \n  dev = "cuda"\nelse:  \n  dev = "cpu" \ndevice = torch.device(dev)\n \nmname = \'Helsinki-NLP/opus-mt-de-en\'\ntokenizer = AutoTokenizer.from_pretrained(mname)\nmodel = AutoModelForSeq2SeqLM.from_pretrained(mname)\nmodel.to(device)\n\nchunksize = 512\n\ntext_short = "Nach nur sieben Seiten appellierte man an die W\xc3\xa4hlerinnen und W\xc3\xa4hler, sich richtig …
Run Code Online (Sandbox Code Playgroud)

python translation huggingface-transformers huggingface-tokenizers

3
推荐指数
1
解决办法
2098
查看次数