亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于預(yù)訓練語言模型的繁體古文自動句讀研究

        2023-10-25 02:22:44唐雪梅陳雨航
        中文信息學報 2023年8期
        關(guān)鍵詞:句讀斷句標點

        唐雪梅, 蘇 祺, 王 軍,4, 陳雨航, 楊 浩

        (1. 北京大學 信息管理系,北京 100871; 2. 北京大學數(shù)字人文研究中心,北京 100871;3. 北京大學 外國語學院,北京 100871; 4. 北京大學 人工智能研究院, 北京100871)

        0 引言

        中華文明歷史悠久,古典文籍浩如煙海。古籍具有極高的文獻價值和學術(shù)價值,古籍整理是連接現(xiàn)代和歷史的橋梁,有利于民族文化的傳承和研究。而古人在著書時一般不使用標點,現(xiàn)存的許多古籍也沒有斷句和標點,這給讀者閱讀學習和學者研究古籍造成了障礙。所謂 “凡訓蒙,須講究,詳訓詁,明句讀”,即是說句讀是古人求學問道的基礎(chǔ)。傳統(tǒng)的古籍句讀工作主要依靠人工,但人工句讀對標注者的古漢語素養(yǎng)要求較高,一般人難以勝任。且中國古代典籍數(shù)量眾多,人工句讀效率低,短時間內(nèi)無法完成批量典籍的句讀工作。計算機自動句讀可以有效地解決以上兩個問題。古文自動句讀是指根據(jù)古代漢語句子特點,結(jié)合現(xiàn)代漢語的標點符號用法,讓計算機自動切割、斷開連續(xù)的文本字符序列為句,然后加標點的過程[1]。

        古文自動句讀經(jīng)歷30多年的發(fā)展,從基于規(guī)則的方法逐漸發(fā)展到基于深度學習的方法。由于目前沒有公開的大規(guī)模的繁體古文語料庫,且整理過的古籍散落在不同的語料庫或者出版社數(shù)據(jù)庫,難以收集到大量整理過的繁體古籍文本,所以目前古文自動斷句的研究基本都是針對簡體漢字文本,如王博立[2]、胡韌奮[3]、俞敬松[4]等人的研究。而現(xiàn)存很多未被整理的古籍都是繁體漢字,若將繁體轉(zhuǎn)為簡體再做句讀,繁簡轉(zhuǎn)化的錯誤可能會延續(xù)到句讀的結(jié)果中。同時現(xiàn)在常用在古籍任務(wù)中的預(yù)訓練語言模型[5-6]都有固定的詞表,詞表中包含的繁體字較少,在詞表之外的繁體字會被替換成特殊字符,造成語義的缺失,會影響任務(wù)效果。因此構(gòu)建一個專門用于繁體古文的句讀模型是有必要的。斷句之后的古籍文本方便閱讀研究,標點之后的文本有助于整理出版,現(xiàn)有研究較多集中在自動斷句[3,7],俞敬松等[4]雖然同時關(guān)注自動斷句和自動標點,但用于自動標點的訓練語料規(guī)模較小,且標點效果并不理想;釋賢超等[8]在不同朝代的不同類型語料上進行自動標點研究,但其模型泛化能力有限。另一方面未經(jīng)整理的古籍文本篇幅較長,整篇文章連成整體居多,篇章級句讀是應(yīng)用環(huán)境下必須解決的問題?,F(xiàn)有的研究較少涉及篇章級斷句,胡軔奮等[3]的斷句模型以段落為單位,俞敬松等[4]提出以串行滑動窗口方式處理長文本句讀,但是該方法的句讀效率較低。

        本文的主要工作有以下三項:

        (1) 本文整理了約10億字的繁體古文語料,基于整理的語料增量訓練BERT[5]模型得到繁體古文預(yù)訓練語言模型;

        (2) 基于繁體古文預(yù)訓練語言模型,利用高質(zhì)量帶標點繁體古文語料微調(diào)預(yù)訓練語言模型,實現(xiàn)繁體古文的自動句讀和自動標點;

        (3) 基于前人的工作,本文改進數(shù)據(jù)串行滑動窗口方式進行篇章級句讀,在一定程上提高了運行效率;同時本文提出了一種數(shù)據(jù)并行的滑動窗口方案,不僅保證了自動句讀的準確率,而且大幅度提高了篇章級句讀的運行速率。

        1 相關(guān)研究

        古文自動句讀的研究大致經(jīng)歷了三個發(fā)展階段,分別是基于規(guī)則的階段、基于統(tǒng)計方法的階段以及基于深度學習的階段。

        黃建年等[9]總結(jié)農(nóng)業(yè)古籍的斷句標點規(guī)則,包括句法特征、詞法特征、引文特征等,利用規(guī)則在農(nóng)業(yè)古籍上進行測試,斷句的準確率為48%?;谝?guī)則的方法簡單、易于理解,但是需要專家建立規(guī)則庫,不僅費時費力,且規(guī)則的覆蓋面有限,只能用于處理小規(guī)模文本。

        陳天瑩等[10]采用基于上下文的N-gram模型對古文做句子切分,在《論語》上達到了81%的召回率、52%的準確率。后續(xù)逐漸有學者將序列標注算法應(yīng)用到自動斷句任務(wù)中,黃瀚萱[11]比較了基于字的條件隨機場模型(Conditional Random Field,CRF)和隱馬爾可夫(Hidden Markou Model,HMM)模型在《孟子》《論語》上的斷句效果,發(fā)現(xiàn)CRF模型優(yōu)于HMM。張開旭等[12]在CRF的基礎(chǔ)上引入互信息和t-測試差,在《論語》和《史記》上訓練斷句任務(wù),分別取得了0.762和 0.682的F1值。張合等[13]基于六字位標記集,采用層疊CRF對《老子》《水經(jīng)注》《戰(zhàn)國策》《左傳》《赤壁賦》《出師表》等進行斷句和標點,低層CRF模型用于識別句子邊界,高層CRF模型用于自動標點。基于統(tǒng)計的方法主要依靠人工特征模板,但是古籍文體風格多樣,年代跨度大,很難構(gòu)建一個適用于所有古籍的斷句模板,從而導致統(tǒng)計模型的泛化能力較弱。

        隨著深度學習在自然語言處理領(lǐng)域的應(yīng)用,陸續(xù)有學者將深度學習方法用于自動句讀任務(wù)。循環(huán)神經(jīng)網(wǎng)絡(luò)具有時序性結(jié)構(gòu),相比于卷積神經(jīng)網(wǎng)絡(luò)能夠更好地處理長文本,常用于序列標注任務(wù)。王博立[2]在2.37億字規(guī)模的訓練集上訓練雙向GRU (Gate Recurrent Unit)模型,該模型在古文上的斷句F1值達75%。釋賢超等[8]在南北朝、隋、唐、宋、遼和明六個朝代的佛、道和儒典籍上比較了長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的標點效果,實驗表明,LSTM的標點效果好于CNN,在唐代的語料上標點可以達到94.3%的準確率。古文分詞需要建立在斷句的基礎(chǔ)之上,分步進行容易造成錯誤多級擴散,程寧等[7]設(shè)計了斷句、分詞及詞性一體化標注方法,利用Bi-LSTM模型同時訓練斷句、分詞和詞性標注三項任務(wù),發(fā)現(xiàn)一體化標注方法在三個任務(wù)上的F1值均有提升。

        2018年谷歌提出了預(yù)訓練語言模型BERT,通過精調(diào)在11項自然語言處理任務(wù)上的效果超過了之前的模型,自此古文句讀模型也逐漸轉(zhuǎn)向使用預(yù)訓練語言模型階段。俞敬松等[4]利用3億7 000萬殆知閣古文語料對BERT語言模型做斷句和標點訓練,分別在單一類別文本和復合文本上測試斷句,達到了89.97%和91.67%的F1值。在單一文本上測試,標點F1值達到了70.4%。胡韌奮等[3]基于33億字古漢語語料訓練了古文BERT模型,并比較了BERT+FCL、BERT+CRF、BERT+CNN等序列標注方法在古文斷句任務(wù)上的表現(xiàn),發(fā)現(xiàn)BERT+CNN模型在詩、詞及古文三種文體上自動斷句效果最好,分別達到了99%、95%、92%的F1值。

        以上研究已經(jīng)在自動斷句任務(wù)上取得了較好的結(jié)果,但自動標點的效果還有待提升,并且對篇章級長文本的自動句讀關(guān)注較少。受前人研究啟發(fā),本文試圖將BERT模型用于繁體古文自動句讀,但由于谷歌發(fā)布的中文BERT模型是基于簡體現(xiàn)代漢語語料訓練得到的,并不一定能夠很好地表示古文語義,本文利用大規(guī)模繁體古文語料對BERT中文模型進行增量訓練,使其得到更好的繁體古文語義表示,然后再進行自動斷句和自動標點訓練。在實際的生產(chǎn)環(huán)境下,很多需整理的古籍的篇幅都較長,本文改進了數(shù)據(jù)串行滑動窗口方式并提出數(shù)據(jù)并行滑動窗口方式,能夠同時解決篇章級自動句讀準確率低和效率低的問題。

        2 模型構(gòu)建

        預(yù)訓練語言模型BERT的使用包括增量訓練和微調(diào)兩個階段,以下分別介紹BERT模型增量訓練過程和自動句讀標點實驗設(shè)置。

        2.1 增量訓練BERT模型

        BERT由多層Transformer構(gòu)成,具有強大的語義表示能力。與傳統(tǒng)的靜態(tài)詞向量不同,BERT能根據(jù)上下文生成動態(tài)的詞向量,即同一個詞在不同語境中會有不同的向量表示。BERT的訓練過程是無監(jiān)督的,能夠自動從大量無標注語料中學習到字詞和句子的語義表示。

        本文從不同渠道收集大量繁體古文語料,包括詩歌、小說、駢文、論文等各類文體,內(nèi)容包含經(jīng)史子集、佛經(jīng)等,文獻分布年代廣泛,包含從先秦至清朝的文獻。經(jīng)人工清洗整理,最后得到了約10億字的帶標點繁體古文語料。統(tǒng)計整理的語料得到的繁體字表有7萬字左右(包括各類異體字、古今字),BERT中文模型(以下稱BERTbase)有固定詞表,其中僅包含7 321個漢字,覆蓋率不到十分之一,如果直接使用BERTbase,會使得很多繁體字在任務(wù)過程中被替換成UNK,造成語義不完整,從而影響自動句讀任務(wù)的效果。因此本文在進行增量訓練之前,對整理得到的字表中的古今字、異體字去重,并在整理得到的字表中選擇部分高頻字替換掉原來詞表中的部分簡體字?;谛碌脑~表和訓練語料對12層BERTbase進行增量訓練。根據(jù)BERTbase模型預(yù)訓練步驟將增量訓練分為三個階段,每個階段訓練參數(shù)如表1所示。

        表1 BERT增量訓練三個階段參數(shù)設(shè)置

        因為更換了詞表,原來的Embedding層對應(yīng)于原來的詞表,因此在第一階段,只更新Embedding層參數(shù),使之和新的詞表對應(yīng)。第二階段用于學習古漢語知識,因此訓練步驟為500K,比第一階段和第三階段訓練步驟更多,使其有更多時間學習古漢語表示,在第二階段時更新模型的所有參數(shù)。在前兩個階段中,將Sequence Length設(shè)為128,在第三階段將其設(shè)為512,因為第三階段用于學習長距離語義關(guān)系,據(jù)BERT研發(fā)者回應(yīng),長距離的語義關(guān)系比較容易學習到,因此只需進行較少步驟的學習。經(jīng)過三個階段的學習,最后得到增量繁體古文BERT模型,以下稱BERTguwen。實驗設(shè)備為兩塊32 GB的TESLAV100 顯卡,訓練時間為7天左右。

        2.2 自動句讀模型

        預(yù)訓練模型可以通過微調(diào)迭代調(diào)整為適合當前任務(wù)的模型,本文將自動句讀和標點當作是預(yù)訓練模型下游的序列標注任務(wù)。

        2001年Lafferty等人提出的條件隨機場模型(CRF)是一種無向圖模型,在詞性標注、命名實體識別等序列標注任務(wù)中表現(xiàn)優(yōu)異。雖然現(xiàn)在深度學習模型也可以很好地解決序列標注問題,但是增加CRF作為解碼層似乎效果更好。如Huang等[14]在做命名實體識別任務(wù)時考慮到標簽前后的依賴性,在Bi-LSTM后接CRF層作為解碼層,發(fā)現(xiàn)增加CRF層會比單獨使用深度學習模型效果更好。因此,本文也將CRF作為模型的最后一層,通過其學習標簽之間的關(guān)系,找到全局最優(yōu)的標簽序列。

        CNN是一種前饋神經(jīng)網(wǎng)絡(luò),可以在大量數(shù)據(jù)中識別序列的局部特征,并將它們生成為固定大小的向量表示,捕捉對當前任務(wù)最有效的特征。我們在BERTguwen后接CNN層和全連接層,在BERTguwen的基礎(chǔ)上對句子的上下文做進一步編碼,捕捉局部特征。BERTguwen+CRF/CNN模型如圖1所示。

        圖1 BERTguwen+CRF/CNN模型圖

        3 實驗

        3.1 數(shù)據(jù)集

        本文以學衡網(wǎng)(1)http://core.xueheng.net/200本核心典籍和github(2)https://github.com/jackeyGao/chinese-poetry公開的全中華古詩詞數(shù)據(jù)庫中的30多萬首詩作為實驗語料,兩部分皆經(jīng)過人工整理,都是繁體漢字,且標點質(zhì)量比較高。語料具體統(tǒng)計信息如表2所示,雖然最大句長超過萬字,但統(tǒng)計發(fā)現(xiàn)97%的句長都在200字以內(nèi)。我們將數(shù)據(jù)集按照句子數(shù)8∶1∶1切分為訓練集、測試集和驗證集。為了讓模型能處理較長文本,我們隨機將同一段落中的3~10個句子合并作為一條訓練數(shù)據(jù)。本文選用二元標簽BM進行斷句數(shù)據(jù)標注,在二元標簽基礎(chǔ)上設(shè)計斷句和標點聯(lián)合標注標簽?!癇”表示對應(yīng)的字符在句首,“M”表示對應(yīng)字符在句中或句尾?!癉ou”“J”“Dun”“F”“M”“W”“G”分別表示該句以逗號、句號、頓號、分號、冒號、問號、感嘆號結(jié)尾。

        表2 數(shù)據(jù)集統(tǒng)計信息

        3.2 實驗設(shè)置

        BiLSTM-CRF模型是經(jīng)典的序列標注模型[14],本文將該模型作為基準模型,將BiLSTM的隱藏元數(shù)量設(shè)為256,詞向量維度設(shè)為300。俞敬松等人[4]和胡韌奮等人[3]的古文句讀和標點研究非常具有代表性,因此本文也將他們的模型作為基準模型。本文比較BERTguwen+CRF、BERTbase+CRF、BERTguwen+CNN、BERTbase+CNN模型在句讀和標點任務(wù)上的表現(xiàn),Sequence Length設(shè)為300,Batch Size設(shè)為32。實驗在兩塊32 GB的Tesla V100 GPU上進行,每個模型訓練到收斂為止。

        3.3 斷句實驗結(jié)果

        為檢驗不同模型在斷句任務(wù)上的性能,本文使用精確率(Precision)、召回率(Recall)和F1(F1-score)作為評價指標。

        斷句實驗結(jié)果如表3所示,可以看出詩歌斷句結(jié)果整體好于古文斷句結(jié)果,可能是因為古詩具有特定的體制和韻律,如五言絕句、七言律詩等,模型更加容易學得其斷句規(guī)律,古詩斷句最好的F1值已經(jīng)超過99%。而古文的形式更加靈活,句式更加豐富,最好的斷句F1值為95.03%,比古詩低了4.5個百分點。

        表3 不同模型在古文和詩歌上的斷句實驗結(jié)果 (單位:%)

        對比不同模型的性能,可以看到BERTguwen+CRF模型相比其他模型在斷句任務(wù)上有最高的召回率和F1值,分別為95.16%、95.03%,BERTguwen+CNN模型有最高的準確率95.13%。相比于基線模型Bi-LSTM+CRF,融入了預(yù)訓練語言模型之后斷句效果均有一定程度的提升。融合增量訓練的古文預(yù)訓練模型的BERTguwen+CRF模型比基線模型Bi-LSTM+CRF的F1值提高了12.98個百分點。

        對比BERTbase+CRF和BERTguwen+CRF的實驗結(jié)果。可以看出,使用了BERTguwen的模型斷句效果比使用BERTbase的模型好,F1值提高了1.83個百分點,這說明對BERT模型做繁體古文增量訓練,可以使模型學習到更多古文知識,能更好地處理斷句任務(wù)。如以下案例所示, “用兵”其主語本是“朝廷”,在此處承前省略主語,“其主”與“秉常”屬于同位語,共同作為“囚廢”的賓語,BERTguwen+CRF經(jīng)過了古文增量訓練,能夠更好地識別此類主語省略的句式,斷句結(jié)果正確。而BERTbase+CRF模型錯誤地將“秉?!碑斪鳌坝帽钡闹髡Z,“西方”作為“既下”的主語,導致斷句錯誤?!俺琼巍睘殡p音節(jié)文言詞,在古文中屬于比較常用的詞,但在現(xiàn)代漢語中幾乎不再使用,BERTbase+CRF不能準確地識別這一詞語,可能是因為在其現(xiàn)代漢語訓練語料中“城砦”出現(xiàn)頻次較低,BERTguwen+CRF將“城砦”作為一個整體且斷句正確,這說明增量訓練之后的BERTguwen+CRF對文言詞更加敏感。

        例1

        原文: 朝廷以夏人囚廢其主秉常。用兵西方。既下米脂等城砦數(shù)十。

        BERTguwen+CRF: 朝廷以夏人囚廢其主秉常。用兵西方。既下米脂等城砦數(shù)十。

        BERTbase+CRF: 朝廷以夏人囚廢其主。秉常用兵。西方既下。米脂等城。砦數(shù)十。

        通過分析斷句結(jié)果,我們發(fā)現(xiàn)斷句經(jīng)常出現(xiàn)“可斷可不斷”的情況,如以下兩個案例所示,原文為“借兵於楚伐魏”,模型斷句結(jié)果為“借兵於楚。伐魏”,在“伐魏”之前斷句應(yīng)該也不為錯誤。案例2的模型斷句也是類似的情況,模型斷句偏向于將長句斷為小句,但這種斷句結(jié)果似乎不能算作錯誤。在實驗時,將唯一斷句標注集作為標準答案,并不能全面地評估模型的性能,以后可以嘗試在測試集中給出多種正確標注答案。

        案例1:

        原文: 取我剛平。六年。借兵於楚伐魏。

        BERTguwen+CRF: 取我剛平。六年。借兵於楚。伐魏。

        案例2:

        原文: 故曰。禮人而不荅則反其敬。愛人而不親則反其仁。治人而不治則反其知。

        BERTguwen+CRF: 故曰。禮人而不荅。則反其敬。愛人而不親。則反其仁。治人而不治。則反其知。

        3.4 標點實驗結(jié)果

        本文在評價標點模型時使用微平均精確率(Pmicro)、召回率(Rmicro)和F1micro。

        標點實驗結(jié)果如表4所示,由于詩歌的標點規(guī)則比較簡單,所有模型的標點F1值都在95%以上。BERTguwen+CNN模型在古文和詩歌上標點表現(xiàn)最好,F1值為80.18%和98.91%。在古文標點中,BERTguwen+CRF比BERTbase+CRF的標點F1值高1.54個百分點,BERTguwen+CNN比BERTbase+CNN的標點F1值高2.21個百分點,說明增量訓練之后的模型在一定程度上能夠幫助提升標點效果。

        表4 不同模型在古文和詩歌上的標點實驗結(jié)果 (單位: %)

        和斷句任務(wù)的結(jié)果相比,標點的精確率、召回率、F1值與斷句均有較大差距,因為斷句規(guī)則相對比較統(tǒng)一,而標點的規(guī)則比較復雜,不同的標點表達不同的感情和意義。本文實驗的語料雖然是經(jīng)過人工整理的,但是依然存在標注規(guī)則不一致的情況,如逗號和句號、分號和逗號的使用常常因人而異,模型也難以分辨。

        3.5 增量古文模型語義表示能力

        上面的實驗結(jié)果已經(jīng)證明BERTguwen模型相比BERTbase模型在斷句和標點任務(wù)上表現(xiàn)更好。本文設(shè)計實驗進一步討論BERTguwen的表現(xiàn)優(yōu)于BERTbase的原因。

        古代漢語和現(xiàn)代漢語各有特點,現(xiàn)代漢語以雙音節(jié)詞為主,古代漢語以單音節(jié)詞為主,且多義詞比例很高。BERT與傳統(tǒng)的詞向量模型不同,BERT能夠?qū)Σ煌Z境下同一個詞有不同的語義表示,具有區(qū)分同一個詞的不同義項的能力,如“君之病在腸胃”中的“病”與“人皆嗤吾固陋,吾不以為病”中的“病”分別對應(yīng)不同的向量。

        本文選取一組古漢語多義詞來討論BERTguwen和BERTbase文言詞的語義表示能力。本文選取古漢語多義詞基于以下三個原則: ①單音節(jié)多義詞,因為BERT中文模型只能對句子和單字詞做語義表示; ②詞語義項多,文言詞除本義外通常還有引申義和假借義; ③詞語在古漢語中使用率高,屬于常用詞。

        基于以上三點,我們參考文學網(wǎng)(3)https://wyw.hwxnet.com/article/24.html發(fā)布的150個古文多義實詞以及《古漢語常用字字典》第四版,選取“安”“謝”“信”“兵”“愛”“病”“假”七個單音節(jié)詞作為實驗對象,以上七個多義詞義項都在3個以上,并且在我們的語料庫中出現(xiàn)頻次較高。

        首先從整理的語料中分別找到3 000條含有以上七個單音節(jié)詞的句子,利用BERTguwen對每條例句中的詞作向量化表示,然后用k-means對以上七個詞語的所有詞向量做聚類,最后使用t-nse對聚類結(jié)果進行可視化。根據(jù)《古漢語常用字字典》中的義項,七個單字詞的義項共36個,將k-means的聚類數(shù)設(shè)為36,模型自動將所有詞向量聚為36個小類。聚類效果如圖2所示,圖中每個點代表一個詞向量,從圖2上可以比較明顯地看出聚類之后出現(xiàn)了七個模塊,每一模塊對應(yīng)一個文言單字詞,每個模塊內(nèi)部又包含不同灰度的點,不同顏色表示詞內(nèi)部有不同的義項。以上聚類結(jié)果說明BERTguwen能夠?qū)⒉煌难栽~的語義區(qū)分開,并且能表示出一個多義詞的不同義項。

        圖2 k-means對七個古漢語單字詞向量的聚類效果圖

        為了進一步討論BERTguwen模型對同一個文言詞的不同義項的區(qū)分能力,我們對比BERTguwen和BERTbase兩個模型對七個多義詞的不同義項的語義表示能力,即是否能將不同義項分開。以“安”和“謝”為例,首先根據(jù)文言詞“安”的四個常用義項人工挑出2 000條例句,根據(jù)文言詞“謝”的三個常用義項挑出1 500條例句,部分例句如表5所示。

        表5 文言詞“安”“謝”常用義項例句(部分)

        分別使用BERTguwen和BERTbase兩個模型生成“安”和“謝”在所有例句中的詞向量,最后進行聚類。我們使用輪廓系數(shù)評估聚類效果,聚類效果越好,輪廓系數(shù)越高,計算如式(1)所示。

        (1)

        其中,a(i)表示樣本點i的簇內(nèi)不相似度,j表示與樣本i在同一個類中的其他樣本,distance(i,j)表示i和j之間的距離。

        (2)

        其中,b(i) 表示i和其他每個類別的所有樣本之間的距離和的最小值,計算方式和a(i)類似。所有樣本的S(i)均值即為聚類結(jié)果的輪廓系數(shù)。

        如圖3所示,圖3(a)為BERTguwen生成的“謝”的詞向量的聚類效果,聚類系數(shù)為3,輪廓系數(shù)S為0.1173;圖3(b)為BERTbase生成“謝”的詞向量的聚類效果,聚類系數(shù)為3,輪廓系數(shù)S為0.096 4;對比圖3(a)和3(b)發(fā)現(xiàn)BERTguwen生成的“謝”的向量能夠被清晰地聚為3類,且圖3(a)的輪廓系數(shù)大于圖3(b)的輪廓系數(shù)。對比七個多義詞的七組聚類效果圖及其輪廓系數(shù)發(fā)現(xiàn),除了“信”以外,BERTguwen生成的詞向量的聚類效果明顯好于BERTbase生成的詞向量。

        圖3 (續(xù))

        觀察“信”的聚類效果圖我們可以看出,BERTguwen的聚類效果似乎好于BERTbase,但輪廓系數(shù)前者卻小于后者。原因可能是“信”的義項較多,并且這些義項之間有比較緊密的引申關(guān)系,詞性主要是動詞和名詞。如“不欺,講信用”(言而有信)“信任”(愿陛下親之信之)“相信“(忌不自信)“信用”(小信未孚,神弗福也)。而如“安”“謝”這類多義詞,不同義項距離較遠,且詞性多樣。

        4 篇章級斷句

        近年來,不斷有學者提出長文本處理模型,BlockBERT[15]切斷BERT中不重要的注意力頭,將BERT可處理的Token數(shù)從512個擴展到1 024個。Big bird模型[16]使用稀疏注意力機制,將計算復雜度降到線性,可以處理比全局注意力Transformer長8倍的序列。但是這類模型能處理的長度依然有限,長文本句讀是生產(chǎn)環(huán)境下需要解決的問題,但目前涉及這一問題的研究較少。俞敬松等[4]使用滑動窗口的方式處理篇章級句讀(以下稱串行滑動窗口1),如圖4中示例所示,每次輸入不超過64字的片段,因其訓練數(shù)據(jù)最長為21字,所以只取輸出結(jié)果的前一個或兩個斷句結(jié)果,剩余的部分歸并到第二次切分的64字。這種滑動窗口方式雖然在一定程度上保證了斷句的準確性,但是每次處理的序列只有64字,且每次只取前兩句的斷句結(jié)果,后面的處理結(jié)果因準確性不高都被放棄。這種方式每次需等待前一片段輸出結(jié)果之后才能進行第二片段的處理,處理效率很低。

        本文提出了兩種新的滑動窗口方式,在保證準確率的同時也能極大提高運行速率,以下稱串行滑動窗口2和并行滑動窗口。串行滑動窗口2是通過對串行滑動窗口1改進得到,如圖5示例,首先輸入文檔的前125個字,然后等待模型返回前125個字的斷句結(jié)果,因為倒數(shù)第一句可能因為語義不完整而出現(xiàn)錯誤斷句,所以將倒數(shù)第一句的斷句結(jié)果加入到下一次切分的125字中過,依次處理完所有文本。這種方法使得每次能處理更長的序列,并且每次只放棄輸出結(jié)果的最后一句,運行速度相比串行滑動窗口1有一定提高。但是因為數(shù)據(jù)處理的方式仍然是串行的,每次需要等待前面的返回結(jié)果,句讀效率不足以滿足使用需求。

        圖5 串行滑動窗口2示例第一次取得結(jié)果為“……據(jù)其要害。擊之可破也。岱不從。遂與戰(zhàn)?!?/p>

        為了進一步提高篇章級句讀速率,本文提出了并行滑動窗口方法。如圖6案例所示,將長文本數(shù)據(jù)按照滑動窗口的方式切分,第一個片段與第二個片段重復n個字,第二個片段與第三個片段重復n個字,依次將長文本切成m個片段,將m個片段同時送入模型,同時返回m個結(jié)果。在處理返回結(jié)果時也按照滑動窗口的方式處理,對于片段1,首先刪除倒數(shù)第一句的輸出結(jié)果得到新的片段1,然后在片段2的輸出結(jié)果中刪除和新的片段1重復的部分,同樣刪除片段2的倒數(shù)第一句的輸出結(jié)果,得到新的片段2,最后將新的片段1和新的片段2拼接,依次將所有的片段拼接得到最后的輸出序列。將一整篇文本切分為多條數(shù)據(jù)并行處理,大幅度提高了句讀速度,并且能保證句讀的準確率。在實驗中我們將片段長度設(shè)置為125,重復字數(shù)n設(shè)為20。

        圖6 并行滑動窗口示例切分為m個片段,然后在返回的斷句結(jié)果中,將每個片段重復的部分去掉。

        我們將直接截斷的方式作為基線標準,將長文本每64字截斷組成一批數(shù)據(jù)喂進模型。使用以上四種方式句讀一段4 168字的長文本,實驗結(jié)果如表6所示。

        表6 四種篇章級句讀方法實驗結(jié)果

        從表6中可以比較明顯地看出,滑動窗口方法的F1值都高于直接截斷的方法,這是因為滑動窗口只取語義比較完整的文本片段作為輸出結(jié)果,而直接截斷的方式容易造成文本片段結(jié)尾強制斷句的錯誤,但是直接截斷的方式具有最高的處理效率。對比兩種串行滑動窗口方式,本文改進的串行滑動窗口2句讀速度相比于串行滑動窗口1提高了11倍,且有最高的F1值。比較并行滑動窗口和兩種串行滑動窗口,并行滑動窗口方式用時5.79 s,和直接截斷方式用時基本無差,同時也保證了斷句具有較高的F1值。

        基于本文提出的句讀模型和并行滑動窗口方式,我們開發(fā)了“吾與點”古籍自動句讀平臺(4)http://wyd.pkudh.xyz/。該平臺可以輔助古籍研究者和愛好者自動句讀古籍文本。

        5 總結(jié)

        古文斷句和標點是古籍整理過程中重要的一步,本文利用預(yù)訓練語言模型實現(xiàn)了繁體古籍的自動斷句和標點。首先利用10億字繁體古文語料對中文BERT模型做增量訓練,然后以此預(yù)訓練模型為基礎(chǔ)實現(xiàn)了繁體古文的自動斷句和標點。古文和詩歌的自動斷句F1值分別為95.03%和99.53%,標點F1值分別為80.18%和98.91%。并且通過實驗發(fā)現(xiàn)增量訓練后的BERT模型能夠提升自動斷句和自動標點的效果。本文通過對文言多義詞的多個義項聚類發(fā)現(xiàn),增量訓練的語言模型的古文語義表示能力優(yōu)于原始BERT模型,并且具備一定的區(qū)分多義詞不同義項的能力。在篇章級句讀方面,本文改進了數(shù)據(jù)串行方案并提出數(shù)據(jù)并行的滑動窗口方式,既能保證句讀的準確率,也能保持極高的處理效率。

        猜你喜歡
        句讀斷句標點
        標點可有可無嗎
        《遼史》標點辨誤四則
        小小標點真厲害
        短句(主語+謂語)
        娃娃畫報(2019年2期)2019-04-03 02:48:34
        文言斷句判斷法
        “斷句” “密碼”費人解(二則)
        中華詩詞(2017年3期)2017-11-27 03:44:18
        “咬文嚼字”三篇
        妙用標點巧斷句
        有趣的標點
        《〈曹劌論戰(zhàn)〉句讀解惑》商榷
        語文知識(2014年9期)2014-02-28 22:00:45
        国产97色在线 | 亚洲| 欧洲亚洲第一区久久久| 少妇bbwbbw高潮| 国产精品美女主播一区二区| 伊人久久大香线蕉午夜av | 手机在线看片国产人妻| 久久国产加勒比精品无码| 1717国产精品久久| 国产成人精品视频网站| 最新亚洲av日韩av二区一区| 国内自拍偷国视频系列| 亚洲欧美日韩成人高清在线一区| 91久久青青草原免费| 蜜臀av人妻一区二区三区| 中文字幕人妻少妇伦伦| 女人让男人桶爽30分钟| 亚洲AV永久无码精品导航| 精品午夜中文字幕熟女| 国产成人精品无码片区在线观看| 国产人妻久久精品二区三区| 亚洲欧洲日产国码久在线观看| 在线视频精品少白免费观看| 国产猛男猛女超爽免费视频| 亚洲av无码片在线观看| 久久久久久AV无码成人| 99精品国产综合久久麻豆| 色噜噜狠狠综曰曰曰| 午夜毛片午夜女人喷潮视频| 无码伊人久久大香线蕉| 亚洲精品女同一区二区三区| 欧洲成人一区二区三区| 亚洲国产成人久久一区www| 91热爆在线精品| 国产超碰在线91观看| 国产一区二区三区四区三区| 麻豆果冻传媒在线观看| 热99re久久精品这里都是免费| 国产一级一片内射在线| 国产美女高潮流白浆免费视频| 日韩亚洲av无码一区二区不卡| 美女窝人体色www网站|