文言文BERT:李白用的詞都沒我選得好

2020-12-13 量子位

蕭簫 發自 凹非寺量子位 報導 | 公眾號 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,你覺得還能用在哪些地方呢?

歡迎留言討論

相關焦點

  • 谷歌搜索:幾乎所有的英文搜索都用上BERT了
    基於此,BERT 模型就可以藉助某個單詞前後的詞來考慮其所處的完整語境,這對於理解查詢語句背後的意圖非常有用。2019 年 9 月,谷歌宣布將 BERT 用到搜尋引擎中,但僅有 10% 的英文搜索結果得到改善;2019 年 12 月,谷歌將 BERT 在搜尋引擎中的使用擴展到 70 多種語言。如今,這家搜索巨頭終於宣布:幾乎所有英文搜索都能用上 BERT 了。
  • 詞向量詳解:從word2vec、glove、ELMo到BERT
    目前,詞向量(又叫詞嵌入)已經成為NLP領域各種任務的必備一步,而且隨著bert elmo,gpt等預訓練模型的發展,詞向量演變為知識表示方法,但其本質思想不變。學習各種詞向量訓練原理可以很好地掌握NLP各種方法。生成詞向量的方法有很多種,本文重點介紹word2vec,glove和bert。
  • 文言文真正學懂了,能夠應用到寫作中
    學生的 書面表達能力的培養自然是高中語文教學環節中的重點,第一,每次考試書面表達 從來都是語文考卷中的重頭戲;第二,書面表達能力的強弱可以顯示出學生將課堂 知識向應用能力轉化的水平,或者說它是學生語文知識和能力的綜合體現。就考卷 而言,書面表達在現代文閱讀、詩歌鑑賞、開放性試題、寫作中都有體現;就實用 而言,寫作中則體現得尤為明顯。
  • TS暖陽都拯救不了李白!直言是刮痧老師傅,沒啥選的不得不選
    在比賽的第三局暖陽拿出了李白打野,雖然也是輕鬆獲勝,不過效果並不算太好,賽後暖陽也表示李白這個版本就是刮痧師傅。 之所以拿李白也是因為看到WB.TS這邊的打野是阿古朵,李白雖然不能針對到阿古朵,但是可以保證自己的野區不被反掉,阿古朵前期是沒有反野能力的,對面的輔助又是個孫臏,李白也就能迅速發育,整體來說還是比較好發揮的。
  • 李白就寫了兩首詞,竟然成為百代詞曲之祖?
    那麼,是什麼人能夠在前邊基本沒有古人,後邊更加沒人的情況下,寫下這兩首詞呢?是詩仙李白!因為這兩首詞寫得太過高妙,不僅在盛唐時代孤峰突起,就是在宋代也是獨樹一幟,因此,從明朝開始,就有人懷疑它們並不是李白的作品,因為突然在盛唐就出現了這兩首極為成熟、藝術水平達到巔峰的作品,實在是令人匪夷所思。但事情總有例外,在天才的李白的身上,還有什麼不會出現呢?
  • 「我想你了」用文言文怎麼說?最後一句美翻了,讓女生瞬間羞紅臉!
    文言文的語言一般比較含蓄美好,而白話文則是比較直白,比如表達思念的時候就是「我想你了」,或者說是「我好想你阿」,十分直白簡短,也很常用。那麼,「我想你了」用文言文怎麼說?最後一句美翻了,讓女生瞬間羞紅臉!
  • 模型推理加速系列|如何用ONNX加速BERT特徵抽取(附代碼)
    賣切糕的小男孩今天化身冒總和李隊的迷弟,一來致謝兩位室友當年球場帶飛,二來今天分享的主題與之密(擦)切(邊)相關,都是關於速度。小夥伴們都知道,BERT體系模型龐(臃)大(腫),各種刷榜自然是香,但是在工業落地上的推理性能一直是道坎。
  • 「我想你了」用文言文怎麼說?最後一句美翻了,讓女生瞬間心動!
    「我想你了」用文言文怎麼說?最後一句美翻了,讓女生瞬間心動! 李白在《長相思》之中說「憶君迢迢隔青天。」昔時橫波目,今作流淚泉。情不知所起,一往而深,我們相隔萬裡,那麼思念就有萬裡之長,扯不斷,理還亂!如果我的眼中滿含淚水,那麼一定是遠方的你在我心中作祟。
  • 這可能是你見過的最奇葩的文言文翻譯
    作者:綠舟所謂「奇葩」的文言文翻譯,大約是指:譯文與作者原旨大相逕庭,但字字句句卻能自圓其說,讓人始料不及,產生「似乎哪裡不對,又似乎很有道理」的感受。文言文翻譯這個東西,差之毫厘,謬以千裡。但凡有一個詞理解錯了,整句話的意思就變了。大家都看到過哪些驚世駭俗的翻譯呢?
  • 「我想你了」用文言文怎麼說?6句最經典的表達,現代人自愧不如
    漢語最妙的地方在於它形式多樣,同樣的一句話,可以用現代漢語說,可以用成語說,可以用俗話表達,還可以用書面的文言文展示。當然,「文言文」的概念是相對現代白話文來講的,古人並不覺得自己使用的漢語形式多複雜。文言文範圍很廣,特點是注重典故、駢驪對仗、音律工整,詩、詞、駢文都包括在文言文範圍內,使言文分離、行文簡練。今天我們就以「我想你了」這句話為例,看看古人用文言文怎麼表達它?
  • 「我想你了」用文言文怎麼說?含蓄到極致的美,瞬間打動女生芳心
    文言文是中國古代的一種書面語言組成的文章,主要包括以先秦時期的口語為基礎而形成的書面語言。講究駢儷對仗、音律工整、注重典故的書面語。其文體包括策、詩、詞、曲、八股等等。三千多年來,漢語有了很大的變化。文言文的語言大多都比較的含蓄,講究「言文分離、行文簡練。」總體上來說要比白話文更講究美感和以及表達精要一些。比如白話文中「我想你了」這句情人之間比較常用的話,如果用古代文言文的形式來說,是怎樣的呢?一日不見,如隔三秋這句話是出自《詩經·王風·採葛》,所描寫的是一個男子對他情人的思念。「三秋」指的是三個季度也就是九個月。以此來誇張的形容對於情人的殷切思念。
  • 「I love you」用文言文咋說?古人浪漫起來,現代人都得甘拜下風
    文言文能有多美,相信所有人都知道,很多現在的土味情話,換成文言文,馬上就失去了「土味」,並且,很容易就被人接受,用來撩妹的時候,拽上一句文言文式的情話,不僅使你逼格上升,更容易使對方心動。
  • 我的世界:如果把mc的「翻譯」編成文言文,會發生啥有趣的事情?
    當然可能用詞和邏輯沒有那麼嚴謹:翌日,儡巡於村舍,偶遇高牆之外一髑髏,遂往之;髑髏驚!扶弓以射之,數箭不中; 儡曰:然,公退三步而復始?髑曰:XXX!(PS:補全情景)於是一場出自《我的世界》天才玩家之手,古文的劇情續寫,在評論區出現了高達400條的文言文回復。
  • 文言文解題小技巧:通過關鍵詞分析人物形象,讓你每道題都不失分
    在文言文閱讀理解中,選擇題裡常出現某個詞、某一句話,對人物的塑造有什麼作用?突出了某個歷史人物的什麼形象?選項中常會出現各種幹擾內容,明明是反面人物,卻出正面詞彙,一旦選錯,其實反映的還是同學們對讀題和關鍵詞理解錯誤。文言文本身就艱深晦澀,想要提高答題準確率,就得先疏通文意,也就是把文言文段落讀懂。
  • NLP之文本分類:「Tf-Idf、Word2Vec和BERT」三種模型比較
    News Category Dataset特別地,我要講的是:設置:導入包,讀取數據,預處理,分區。詞袋法:用scikit-learn進行特徵工程、特徵選擇以及機器學習,測試和評估,用lime解釋。在Python中,可以像這樣從genism-data中加載一個預訓練好的詞嵌入模型:nlp = gensim_api.load("word2vec-google-news-300")我將不使用預先訓練好的模型,而是用gensim
  • 文言文專題|必考知識點及答題技巧
    技法二:課內遷移法首先,回憶課內學過的句中加點詞的義項;其次,將其一一代入句中進行驗證,看哪一個義項符合句意和語境。以「去十三歲,唯二人得還」中的「去」為例,課內《嶽陽樓記》中「則有去國懷鄉」的「去」意思為「離開」,將該意思代入句中,符合語境。據此可推斷出「去」是「離開」的意思。
  • 詩人李白一首詞《菩薩蠻》,文墨官司延續千餘年
    歷來名人是非多,今時多見,古來有之,比如唐代大詩人李白的一首詞《菩薩蠻》,就把筆墨官司打了1000多年,至今仍未定案。怎麼回事兒呢?讀者會問,唐詩宋詞,宋詞唐詩,唐代大詩人李白填詞並惹出筆墨官司?有木有搞錯?
  • 都是之乎者也的文言文有什麼用,我們要不要學文言文?
    都是之乎者也的文言文有什麼用,我們要不要學文言文?學習文言文有用嗎?答案有兩種,無非是有或者沒有。在一些人看來,這是完全沒有用的,在日常生活中,我們根本就不會接觸到文言文,因此認為文言文是一種無用的存在,有些人甚至強烈要求要把文言文從中小學教材中剔除出去。
  • 文言文若不變為白話文,和我媽讓我去那屋把那啥拿過來有啥區別
    就像以前我在家的時候,我媽做飯或收拾屋子時,手頭經常會缺一些東西,就習慣指使我去拿,她常對我說的一句話就是:「你去那屋把那啥拿過來」。如果我當時知道她在幹啥,我還能意會過來她需要的是啥,我應該去哪屋拿。可是如果我當時在幹其他事,沒注意她在幹啥,聽完她這句話我就徹底蒙圈了:「去哪屋?拿啥?」
  • 我的老公是李白
    過了許久,一頂轎子停在寺廟前,從轎子裡走下來一個嫋嫋婷婷的女子。一顰一笑,撥動了他的心弦。他忍不住跟著她後面偷看,遠遠地看著她上完香。又一路痴痴地跟著她,知道了她是許府的人,並打聽到她的名字。回家後,他晝夜不眠,輾轉反側。於是他決定去找認識許家人的孟浩然幫他做媒。