北理工校友發(fā)明文言文“填詞大師”,斷句、造詞都能做,高考文言文滿分靠它了
“李白的詞選得都沒我好”
蕭簫 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號 QbitAI
都說GPT-3能接人話,補(bǔ)充上下文關(guān)系,中文版的“填詞大師”你見過沒?
不僅是中文版,這個(gè)“填詞大師”甚至還是從古代穿越過來的文言文版。
這是兩個(gè)來自北理工的小哥做出的模型GuwenBERT,經(jīng)過訓(xùn)練后的模型,不僅能自動(dòng)幫助文言文斷句,還能幫你思考被遮住的詞語到底是什么。(真沒有用原詩騙你)
要是這個(gè)模型去參加高考,文言文斷句、詩詞背誦部分,豈不是都能拿滿分?
來看看它是怎么被做出來的~
文言文版BERT,填詞斷句樣樣通
GuwenBERT,是在中文BERT-wwm模型的基礎(chǔ)上,利用古文數(shù)據(jù)集訓(xùn)練出來的。
中文BERT-wwm(基于全詞遮罩技術(shù)的中文預(yù)訓(xùn)練模型)是哈工大和訊飛聯(lián)合發(fā)表的模型,在中文BERT的基礎(chǔ)上,修改了預(yù)訓(xùn)練階段的訓(xùn)練樣本生成策略。
全詞遮罩(Whole Word Masking),指原來的遮罩(mask)只隨機(jī)遮一個(gè)字,現(xiàn)在則會對一個(gè)詞的所有字進(jìn)行遮罩。
但中文BERT-wwm,是針對現(xiàn)代漢語訓(xùn)練的模型。
經(jīng)受過文言文“毒打”的小伙伴都知道,古文不僅詞法與現(xiàn)代漢語中多存在不同,而且沒有斷句,理解起來費(fèi)神費(fèi)力。
想要在大量古籍中按圖索驥,快速查找到想要的資料,更是難上加難。
為此,GuwenBERT橫空出世,根據(jù)已有的現(xiàn)代漢語模型,用古文數(shù)據(jù)集訓(xùn)練出了文言文預(yù)訓(xùn)練模型。預(yù)訓(xùn)練的過程是這樣的:
目前,這個(gè)模型已經(jīng)給出了樣本,在線就能一試文言文版BERT的功力。
調(diào)戲Demo的方法是,隨便給一句古文,用[MASK]遮住其中一個(gè)字、或是一個(gè)標(biāo)點(diǎn),讓GuwenBERT來猜猜看,你遮住的到底是什么。
例如,遮住一個(gè)逗號,看文言文會不會斷句。BERT在思考了不到一秒后,就給出了自己的答案:
至于填詞方面,文言文BERT的表現(xiàn)也很優(yōu)秀,在思考了一會后,填上了正確的詞語。
是不是感覺有點(diǎn)簡單?我們用課文來試一下:
效果竟然也不錯(cuò),要是這樣的理解能力去參加高考,豈不是就能拿個(gè)默寫部分的滿分了?
其實(shí)不然,這個(gè)文言文BERT,并不是根據(jù)記憶來判斷如何填詞,只是根據(jù)訓(xùn)練后的模型,來預(yù)測“概率最大的字”。
于是在測試過程中,出現(xiàn)了一些神奇的事情:這個(gè)文言文BERT,不僅能接梗造詞,甚至還給李白詩中的字“推薦”了更好的替代者。
接梗造詞樣樣會,李白的詩也能改
舉個(gè)例子,即使輸入的不是原來的詩句,文言文BERT也同樣能預(yù)測出被遮住的字,不僅能隨便接梗,還面不改色心不跳。
例如,“垂死病中驚坐起,笑問客從何處來”也能接……(原詩是?)
一旦涉及動(dòng)詞的選取,GuwenBERT的預(yù)測就更加難以捉摸,因?yàn)榭蛇x的范圍太大了。(中文博大精深)
例如,將“不及汪倫送我情”的“送”字遮住的話,GuwenBERT就開始感到迷茫,即使是預(yù)測率最高的“知”,也只有15.7%的概率。
“不及汪倫知我情”,想必BERT版李白,內(nèi)心一定認(rèn)為汪倫是自己高山流水一般難得遇見的知音。
在斷句的情況下,如果并非對仗工整的語句,GuwenBERT也要好好思考一會。
雖然文言文BERT有自己的想法,不過它還是“循規(guī)蹈矩”的,目前在測試時(shí),語法上還沒有出現(xiàn)太大的問題。
甚至,還能為古人們的寫作提供別樣的靈感。
但文言文BERT目前還只能遮罩一個(gè)字,要是多了幾個(gè),它就不跟你玩了。
不知道作者以后會不會在這方面進(jìn)一步加上新功能。
作者介紹
這個(gè)文言文BERT的作者,是兩位來自北理工的同學(xué)。
閻覃,來自北京理工大學(xué),目前是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一名碩士生。
這位小哥在GitHub的名字是Ethan,他還特意選擇了某些日期來contribution,把自己的名字拼了上去。
遲澤聞,同樣來自北京理工大學(xué),目前的研究工作主要是通過預(yù)訓(xùn)練來進(jìn)行跨語言的自然語言生成。
目前,模型的相關(guān)代碼已經(jīng)開源,想要了解的小伙伴,可以在下方試玩模型、或是查看代碼。
這樣的文言文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/