挪威有两种相对相似的书面语言: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模型可用。不幸的是,其中只有大约1GB的Nynorsk文本;我们从挪威国家图书馆的材料(例如书籍、报纸等)中提取了所有可用的Nynorsk文本,并与同等数量的Bokmål文本进行了配对。这个语料库的收集方式在 here 中有描述,总大小为19GB。
该项目的中心微调数据包含了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))