北理工校友发明文言文“填词大师”,断句、造词都能做,高考文言文满分靠它了

“李白的词选得都没我好”

萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

都说GPT-3能接人话,补充上下文关系,中文版的“填词大师”你见过没?

文言文BERT:李白用的词都没我选得好

不仅是中文版,这个“填词大师”甚至还是从古代穿越过来的文言文版

这是两个来自北理工的小哥做出的模型GuwenBERT,经过训练后的模型,不仅能自动帮助文言文断句,还能帮你思考被遮住的词语到底是什么。(真没有用原诗骗你)

文言文BERT:李白用的词都没我选得好

要是这个模型去参加高考,文言文断句、诗词背诵部分,岂不是都能拿满分?

来看看它是怎么被做出来的~

文言文版BERT,填词断句样样通

GuwenBERT,是在中文BERT-wwm模型的基础上,利用古文数据集训练出来的。

文言文BERT:李白用的词都没我选得好

中文BERT-wwm(基于全词遮罩技术的中文预训练模型)是哈工大和讯飞联合发表的模型,在中文BERT的基础上,修改了预训练阶段的训练样本生成策略。

全词遮罩(Whole Word Masking),指原来的遮罩(mask)只随机遮一个字,现在则会对一个词的所有字进行遮罩。

文言文BERT:李白用的词都没我选得好

但中文BERT-wwm,是针对现代汉语训练的模型。

经受过文言文“毒打”的小伙伴都知道,古文不仅词法与现代汉语中多存在不同,而且没有断句,理解起来费神费力。

想要在大量古籍中按图索骥,快速查找到想要的资料,更是难上加难。

为此,GuwenBERT横空出世,根据已有的现代汉语模型,用古文数据集训练出了文言文预训练模型。预训练的过程是这样的:

文言文BERT:李白用的词都没我选得好

目前,这个模型已经给出了样本,在线就能一试文言文版BERT的功力。

调戏Demo的方法是,随便给一句古文,用[MASK]遮住其中一个字、或是一个标点,让GuwenBERT来猜猜看,你遮住的到底是什么。

例如,遮住一个逗号,看文言文会不会断句。BERT在思考了不到一秒后,就给出了自己的答案:

文言文BERT:李白用的词都没我选得好

至于填词方面,文言文BERT的表现也很优秀,在思考了一会后,填上了正确的词语。

文言文BERT:李白用的词都没我选得好

是不是感觉有点简单?我们用课文来试一下:

文言文BERT:李白用的词都没我选得好

效果竟然也不错,要是这样的理解能力去参加高考,岂不是就能拿个默写部分的满分了?

其实不然,这个文言文BERT,并不是根据记忆来判断如何填词,只是根据训练后的模型,来预测“概率最大的字”。

于是在测试过程中,出现了一些神奇的事情:这个文言文BERT,不仅能接梗造词,甚至还给李白诗中的字“推荐”了更好的替代者。

接梗造词样样会,李白的诗也能改

举个例子,即使输入的不是原来的诗句,文言文BERT也同样能预测出被遮住的字,不仅能随便接梗,还面不改色心不跳。

例如,“垂死病中惊坐起,笑问客从何处来”也能接……(原诗是?)

文言文BERT:李白用的词都没我选得好

一旦涉及动词的选取,GuwenBERT的预测就更加难以捉摸,因为可选的范围太大了。(中文博大精深)

例如,将“不及汪伦送我情”的“送”字遮住的话,GuwenBERT就开始感到迷茫,即使是预测率最高的“知”,也只有15.7%的概率。

“不及汪伦知我情”,想必BERT版李白,内心一定认为汪伦是自己高山流水一般难得遇见的知音。

文言文BERT:李白用的词都没我选得好

在断句的情况下,如果并非对仗工整的语句,GuwenBERT也要好好思考一会。

文言文BERT:李白用的词都没我选得好

虽然文言文BERT有自己的想法,不过它还是“循规蹈矩”的,目前在测试时,语法上还没有出现太大的问题。

甚至,还能为古人们的写作提供别样的灵感。

但文言文BERT目前还只能遮罩一个字,要是多了几个,它就不跟你玩了。

文言文BERT:李白用的词都没我选得好

不知道作者以后会不会在这方面进一步加上新功能。

作者介绍

这个文言文BERT的作者,是两位来自北理工的同学。

阎覃,来自北京理工大学,目前是计算机科学与技术专业的一名硕士生。

文言文BERT:李白用的词都没我选得好

这位小哥在GitHub的名字是Ethan,他还特意选择了某些日期来contribution,把自己的名字拼了上去。

文言文BERT:李白用的词都没我选得好

迟泽闻,同样来自北京理工大学,目前的研究工作主要是通过预训练来进行跨语言的自然语言生成。

目前,模型的相关代码已经开源,想要了解的小伙伴,可以在下方试玩模型、或是查看代码。

这样的文言文BERT,你觉得还能用在哪些地方呢?

欢迎留言讨论~

demo在线可玩:
https://huggingface.co/ethanyt/guwenbert-base

模型地址:
https://github.com/Ethan-yt/guwenbert

参考链接:
https://zhuanlan.zhihu.com/p/275970135
https://www.linkedin.com/in/ethanyan/

版权所有,未经授权不得以任何形式转载及使用,违者必究。