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