模型:

pere/nb-nn-translation

英文

?? Bokmål ⇔ Nynorsk ??

挪威有两种相对相似的书面语言:Bokmål和Nynorsk。在历史上,Nynorsk是一种基于方言的书面语规范,由语言学家伊瓦尔·阿森在19世纪中后期编纂而成,而Bokmål则是对书面丹麦语的逐渐挪威化。这两种书面语言被视为平等的,公民有权以他们的主要和首选语言接收公共服务信息。尽管这个权利已经存在很长时间,但只有5-10%的挪威文本是用Nynorsk书写的。因此,Nynorsk是一种资源稀缺的语言内资源稀缺语言。

除了一些基于词表的引擎外,没有任何现成的基于机器学习的翻译模型可以用于Bokmål和Nynorsk之间的翻译。Google翻译中也没有提供Bokmål和Nynorsk之间的翻译。

演示

Widget Try the widget in the top right corner
Huggingface Spaces 1231321

T5-base的预训练

有一个包含挪威语的T5-base模型可用。不幸的是,其中只有大约1GB的Nynorsk文本;我们从挪威国家图书馆的材料(例如书籍、报纸等)中提取了所有可用的Nynorsk文本,并与同等数量的Bokmål文本进行了配对。这个语料库的收集方式在 here 中有描述,总大小为19GB。

微调 - BLEU得分为88.17 ?

该项目的中心微调数据包含了200k个翻译单元(TU),即从各种科目的教科书和报纸中提取的对齐句子对。经过10次训练,使用学习率为7e-4、批次大小为32、最大源和目标长度为512的训练,在训练时达到了88.03的SACREBLEU分数,并在训练后达到了88.17的测试分数。

这不是一个翻译器

我们发现,通过训练两种方式,让模型自行判断输入是Bokmål还是Nynorsk,我们几乎可以获得相同的BLEU分数。这样我们只需要训练一个模型。我们称之为语言切换器。

未来的工作

以下Google Docs插件目前正在等待批准。

如何使用该模型

# Set up the pipeline
from transformers import pipeline
translator = pipeline("translation", model='pere/nb-nn-translation')

# Do the translation
text = "Hun vil ikke gi bort sine personlige data."
print(translator(text, max_length=255))