李筱瑜
摘 要:現(xiàn)代漢語(yǔ)分詞雖已取得較大進(jìn)展,但是古籍文本分詞由于受到古代漢語(yǔ)詞匯特征、語(yǔ)義、語(yǔ)法等限制,始終沒(méi)有形成一種行之有效的方法。通過(guò)互信息與鄰接熵的新詞發(fā)現(xiàn)方法從《漢書(shū)》中尋找未登錄詞,結(jié)合古代漢語(yǔ)詞匯表、古代人名詞表和古代地名表構(gòu)建古籍文本分詞詞典,以此為基礎(chǔ),使用pyNLPIR對(duì)《漢書(shū)》進(jìn)行分詞操作。實(shí)驗(yàn)結(jié)果顯示,新詞發(fā)現(xiàn)方法可以在一定程度上完善古籍文本分詞所需的用戶(hù)詞典全面性,但是對(duì)3字以上的詞語(yǔ)識(shí)別效果較差。實(shí)驗(yàn)證明使用新詞發(fā)現(xiàn)結(jié)合詞典信息的方法對(duì)古籍文本進(jìn)行分詞能夠有效提高古代漢語(yǔ)分詞準(zhǔn)確度。
關(guān)鍵詞:古籍文本;分詞;互信息;鄰接熵;新詞發(fā)現(xiàn)
DOI:10. 11907/rjdk. 182867
中圖分類(lèi)號(hào):TP301文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-7800(2019)004-0060-04
0 引言
隨著人文計(jì)算的發(fā)展,針對(duì)文本進(jìn)行深入分析并從中挖掘相應(yīng)知識(shí)與內(nèi)涵逐步成為新的研究趨勢(shì),但目前漢語(yǔ)人文計(jì)算主要集中于現(xiàn)當(dāng)代文本上,古籍文本計(jì)算相對(duì)較少[1]。對(duì)于以意合為主要特點(diǎn)的漢語(yǔ)來(lái)說(shuō),詞頻與共現(xiàn)分析是重要的文本挖掘研究方法,因此對(duì)古籍文本內(nèi)容進(jìn)行人文計(jì)算及可視化分析過(guò)程中,分詞是古籍文本分析和挖掘的基礎(chǔ)。古代漢語(yǔ)經(jīng)歷了一個(gè)從單音節(jié)詞向雙音節(jié)及多音節(jié)詞演化的長(zhǎng)期過(guò)程[2]。古代漢語(yǔ)在詞匯和語(yǔ)法等方面與現(xiàn)代漢語(yǔ)表現(xiàn)不同,雖然現(xiàn)代漢語(yǔ)自然語(yǔ)言處理技術(shù)已經(jīng)取得了長(zhǎng)足進(jìn)展,然而這些成果主要針對(duì)現(xiàn)代漢語(yǔ),現(xiàn)代漢語(yǔ)分詞研究成果不能直接應(yīng)用于古代漢語(yǔ)研究。
國(guó)內(nèi)學(xué)者對(duì)古籍文本分詞進(jìn)行了諸多研究。嚴(yán)順[3]在總結(jié)前人研究的基礎(chǔ)上,對(duì)構(gòu)建古文獻(xiàn)語(yǔ)料庫(kù)會(huì)遇到的古籍文本分詞和詞性標(biāo)注等問(wèn)題進(jìn)行闡釋?zhuān)⑻岢隽私ㄔO(shè)性見(jiàn)解;曹艷等[4]將常用于處理現(xiàn)代文本的N元組法移植到古籍文本中進(jìn)行實(shí)義詞提取,并從古籍文本《齊民要術(shù)》中提取3 000多個(gè)普通詞語(yǔ)和專(zhuān)有名詞;歐陽(yáng)劍[5]根據(jù)古代漢語(yǔ)詞匯發(fā)展特點(diǎn)、斷代詞典及詞匯專(zhuān)書(shū)研究現(xiàn)狀,將古籍文本切分為4個(gè)時(shí)段,采用分段疊加的方式構(gòu)建詞庫(kù),按古籍文本的年代分別調(diào)用相應(yīng)詞庫(kù),取得了較好的古籍文本分詞效果;王曉玉等[6]運(yùn)用CRFs和詞典相結(jié)合的方法,以中古時(shí)期的史書(shū)、佛經(jīng)、小說(shuō)類(lèi)語(yǔ)料訓(xùn)練古籍文本分詞模型,消除了古代漢語(yǔ)人工分詞結(jié)果不一致的問(wèn)題;華振紅[7]根據(jù)中古漢語(yǔ)基本特點(diǎn),結(jié)合現(xiàn)有語(yǔ)料庫(kù)建設(shè)經(jīng)驗(yàn),闡述了中古漢語(yǔ)語(yǔ)料庫(kù)選取語(yǔ)料的若干原則,討論了建立中古漢語(yǔ)語(yǔ)料庫(kù)分詞規(guī)范、分詞詞表的可行性,并初步構(gòu)建了按照中古漢語(yǔ)分詞規(guī)范進(jìn)行信息處理的整體框架;宋彥等[8]借助機(jī)器學(xué)習(xí)中的學(xué)習(xí)算法,將基于字的條件隨機(jī)場(chǎng)模型和基于詞的Bi-gram語(yǔ)言模型結(jié)合,提出一種聯(lián)合解碼的中文分詞方法,在一定程度上提高了分詞準(zhǔn)確度。
但以上研究并未在基于詞典的古漢語(yǔ)分詞方面提出一種快速建立古漢語(yǔ)詞庫(kù)的有效方法。因此本文提出一種基于新詞發(fā)現(xiàn)與詞典信息的古籍文本分詞方法。首先,運(yùn)用互信息和鄰接熵的新詞發(fā)現(xiàn)方法,對(duì)古籍文本進(jìn)行處理,識(shí)別出未登錄詞、過(guò)濾掉停用詞和錯(cuò)誤的詞;其次,將識(shí)別出的未登錄詞表與古代漢語(yǔ)詞匯表、古代人名詞表、古代地名表結(jié)合并構(gòu)建古籍文本詞典;最后,將古籍文本詞典作為用戶(hù)詞典,使用中科院分詞系統(tǒng)pyNLPIR對(duì)古籍文本進(jìn)行分詞,并檢驗(yàn)分詞準(zhǔn)確度。該研究結(jié)果可直接服務(wù)于古籍文本語(yǔ)料庫(kù)建設(shè)。
1 新詞發(fā)現(xiàn)
根據(jù)劉偉童等 [9]的研究,將新詞發(fā)現(xiàn)方法歸納為3種:基于規(guī)則、基于統(tǒng)計(jì)與基于統(tǒng)計(jì)與規(guī)則相結(jié)合的新詞發(fā)現(xiàn)方法?;谝?guī)則的新詞發(fā)現(xiàn)方法指利用詞性特征、語(yǔ)言學(xué)構(gòu)詞規(guī)則等發(fā)現(xiàn)新詞,新詞發(fā)現(xiàn)準(zhǔn)確率比較高,但是可擴(kuò)展性、靈活性較差,而且消耗大量資源[10];基于統(tǒng)計(jì)的新詞發(fā)現(xiàn)方法指通過(guò)大量實(shí)驗(yàn)語(yǔ)料計(jì)算詞語(yǔ)詞頻、成詞概率、左右鄰接熵、鄰接變化數(shù)等統(tǒng)計(jì)特征識(shí)別新詞,基于統(tǒng)計(jì)的方法較為靈活,不受領(lǐng)域限制,易擴(kuò)展且可移植性較好,但存在數(shù)據(jù)稀疏和準(zhǔn)確率較低的缺點(diǎn)[11];基于規(guī)則與統(tǒng)計(jì)相結(jié)合的新詞發(fā)現(xiàn)方法則融合上述兩種方法優(yōu)點(diǎn),從而可提高新詞發(fā)現(xiàn)的準(zhǔn)確率和效率[12]。本文在未切詞的實(shí)驗(yàn)語(yǔ)料中從左到右進(jìn)行逐字?jǐn)U展,利用互信息、左右鄰接熵等統(tǒng)計(jì)特征和刪除候選詞的首尾停用詞、過(guò)濾舊詞等規(guī)則實(shí)現(xiàn)新詞發(fā)現(xiàn)。
1.1 互信息
詞語(yǔ)是詞和語(yǔ)的合稱(chēng),是一個(gè)可以單獨(dú)存在的語(yǔ)言單元,詞語(yǔ)各個(gè)字之間存在一定相關(guān)性。字之間或詞與字之間相關(guān)性越大,則字之間或詞與字成詞的概率越大。互信息可以計(jì)算兩個(gè)物體相互依賴(lài)的程度,互信息值越大,代表兩個(gè)物體依賴(lài)程度越大,因此新字符串內(nèi)部成詞概率可通過(guò)互信息計(jì)算獲取[13]。二元互信息指兩個(gè)事件相關(guān)性的數(shù)量,見(jiàn)公式(1)。
1.2 鄰接熵
信息熵是信息期望值,用來(lái)描述信息不確定度。一般來(lái)講,信息熵越大說(shuō)明變量包含的信息越大,變量不確定性也越大[15]。實(shí)驗(yàn)結(jié)果表明,集合信息混亂程度越高,包含的信息量越少。消除外界不確定性的方法是引入信息,如果沒(méi)有外部信息則無(wú)法排除不確定性,在自然語(yǔ)言處理過(guò)程中,信息處理過(guò)程是一個(gè)消除不確定性的過(guò)程。
在新詞發(fā)現(xiàn)過(guò)程中,需要計(jì)算一對(duì)詞之間左、右信息熵,因?yàn)殪乇硎静淮_定性,所以熵值越大說(shuō)明詞越新,與它相鄰的字或詞種類(lèi)越多,其邊界越明顯。以左信息熵為例,一個(gè)新候選詞的左信息熵為該候選詞與其左邊所有種類(lèi)相鄰字結(jié)合的信息熵之和,與候選詞左邊相鄰字的種類(lèi)越多,則候選詞左信息熵越大,候選詞左邊與其它類(lèi)別的字邊界越明顯;相反,與候選詞左邊相鄰字的種類(lèi)越少,則候選詞左信息熵越小,候選詞左邊成為一個(gè)詞左邊界的可能性也越小,此時(shí)需對(duì)候選詞向左擴(kuò)充字符,直到左邊界確定為止[16]。候選詞左信息熵計(jì)算公式見(jiàn)式(5)。
2 古籍文本分詞
古籍文本分詞是進(jìn)行古籍文本知識(shí)挖掘及知識(shí)計(jì)算的基礎(chǔ),目前用于古籍文本分詞的方法主要有兩種:一種是基于詞典的分詞方法,另一種是基于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)的分詞方法[17]?;谠~典的分詞方法需要語(yǔ)言學(xué)家通過(guò)人工篩選標(biāo)注出古代漢語(yǔ)詞匯,構(gòu)建古代漢語(yǔ)領(lǐng)域詞典,然后將待分詞的古籍文本與詞典中的詞進(jìn)行對(duì)比,從而達(dá)到分詞目的。其優(yōu)點(diǎn)是分詞準(zhǔn)確率較高、程序簡(jiǎn)單,但缺點(diǎn)也很明顯,構(gòu)建的詞典具有領(lǐng)域局限性;古代漢語(yǔ)還有朝代局限性,即不同朝代的漢語(yǔ)詞匯表達(dá)不同,因此需要重新構(gòu)建詞典?;诮y(tǒng)計(jì)和機(jī)器學(xué)習(xí)的分詞方法利用人工標(biāo)注的古籍文本語(yǔ)料訓(xùn)練語(yǔ)言模型、語(yǔ)言模型學(xué)習(xí)語(yǔ)料庫(kù)中詞的構(gòu)成方式及語(yǔ)法語(yǔ)義信息,從而實(shí)現(xiàn)古籍文本自動(dòng)分詞[18-20]。
由于鮮有古籍文本分詞所需的詞庫(kù)、訓(xùn)練語(yǔ)料及語(yǔ)法規(guī)則,所以本文基于字符串匹配進(jìn)行古籍文本分詞。采用該方法的首要任務(wù)是構(gòu)建古漢語(yǔ)詞庫(kù),根據(jù)實(shí)際需要,本文依據(jù)《漢語(yǔ)大詞典》[21],過(guò)濾掉現(xiàn)代漢語(yǔ)詞匯以構(gòu)建古代漢語(yǔ)詞匯表,根據(jù)中國(guó)歷代人物資料庫(kù)構(gòu)建歷代人物詞表,依據(jù)古今地名對(duì)照表梳理出古代地名表。整合古代漢語(yǔ)詞匯表、歷代人物詞表、古代地名表,初步構(gòu)建古籍文本分詞詞典。
為進(jìn)一步擴(kuò)充古籍文本分詞詞典,提高古籍文本分詞準(zhǔn)確率,本文基于互信息與鄰接熵的新詞發(fā)現(xiàn)方法從《漢書(shū)》中抽取未登錄的新詞添加到詞典中,使用自定義的古籍文本分詞詞典對(duì)《漢書(shū)》進(jìn)行分詞,分詞流程見(jiàn)圖1。
3 實(shí)驗(yàn)結(jié)果及分析
本文實(shí)驗(yàn)選用中國(guó)第一部紀(jì)傳體斷代史《漢書(shū)》,約???? 1 267 776個(gè)漢字。將文本轉(zhuǎn)換為T(mén)XT格式,利用正則表達(dá)式過(guò)濾文本標(biāo)點(diǎn)符號(hào)及特殊符號(hào),結(jié)合哈爾濱工業(yè)大學(xué)停用詞表與古代序詞表作為古漢語(yǔ)分詞停用詞表。
采用Python3.6實(shí)現(xiàn)互信息與鄰接熵算法,對(duì)《漢書(shū)》進(jìn)行處理以發(fā)現(xiàn)未登錄的新詞,使用中科院提供的pyNLPIR[22]作為分詞工具。
對(duì)利用基于互信息與鄰接熵的新詞方法發(fā)現(xiàn)的實(shí)驗(yàn)結(jié)果,采用準(zhǔn)確率(Precision)、召回率(Recall)和F值(F-measure)作為評(píng)價(jià)指標(biāo),其計(jì)算公式為:
對(duì)《漢書(shū)》進(jìn)行處理之后,將計(jì)算獲取的互信息[MI(w1?wn)]、左鄰接熵[Hleft(W)]、右鄰接熵[Hright(W)]進(jìn)行求和得到綜合評(píng)分,對(duì)綜合評(píng)分排序,取topN作為新發(fā)現(xiàn)詞。通過(guò)互信息與鄰接熵的新詞發(fā)現(xiàn)方法,將《漢書(shū)》中發(fā)現(xiàn)的新詞按評(píng)分從高到低排列后,選取top10進(jìn)行展示,如表1所示。
新詞發(fā)現(xiàn)的準(zhǔn)確率、召回率和F值如表2所示。
結(jié)合表1、表2可以發(fā)現(xiàn),通過(guò)基于互信息與鄰接熵的新詞發(fā)現(xiàn)方法在《漢書(shū)》中識(shí)別出的新詞,雖然能夠選用的不多,準(zhǔn)確率、召回率和F值普遍不高,但該方法可以增加自建詞典詞語(yǔ)全面性,在一定程度上提高古籍文本基于詞典分詞的準(zhǔn)確性。
4 結(jié)語(yǔ)
本文運(yùn)用互信息與鄰接熵的新詞發(fā)現(xiàn)方法對(duì)《漢書(shū)》進(jìn)行了新詞抽取,并結(jié)合古代漢語(yǔ)詞匯表、古代人物詞表、古代地名表構(gòu)建了古籍文本詞典,使用pyNLPIR分詞工具對(duì)《漢書(shū)》進(jìn)行分詞實(shí)驗(yàn)。新詞發(fā)現(xiàn)方法在創(chuàng)建用戶(hù)詞典過(guò)程中可提供一些新的詞語(yǔ),為基于詞典的古籍文本分詞提供了一種可行的思路。同時(shí)本文還有許多不足,如新詞發(fā)現(xiàn)準(zhǔn)確率、召回率并不高,這與新詞發(fā)現(xiàn)算法在古籍文本中的參數(shù)設(shè)定有關(guān),還需進(jìn)一步研究,提高新詞準(zhǔn)確率,從而構(gòu)建更完整的古籍文本分詞詞典,提高古籍文本分詞準(zhǔn)確度。
參考文獻(xiàn):
[1] 趙生輝,朱學(xué)芳. 我國(guó)高校數(shù)字人文中心建設(shè)初探[J]. 圖書(shū)情報(bào)工作,2014,58(6):64-69.
[2] 董秀芳. 詞匯化:漢語(yǔ)雙音詞的衍生和發(fā)展(修訂本)[M]. 北京:商務(wù)印書(shū)館,2011.
[3] 嚴(yán)順. 先秦文獻(xiàn)的語(yǔ)料庫(kù)構(gòu)建探究[J]. 江蘇科技信息, 2016(12):32-33.
[4] 曹艷,侯漢清. 古籍文本抽詞研究[J]. 圖書(shū)情報(bào)工作,2008,52(1):132-135.
[5] 歐陽(yáng)劍. 面向數(shù)字人文研究的大規(guī)模古籍文本可視化分析與挖掘[J]. 中國(guó)圖書(shū)館學(xué)報(bào),2016(2):66-80.
[6] 王曉玉,李斌. 基于CRFs和詞典信息的中古漢語(yǔ)自動(dòng)分詞[J]. 數(shù)據(jù)分析與知識(shí)發(fā)現(xiàn),2017,1(5):62-70.
[7] 化振紅. 深加工中古漢語(yǔ)語(yǔ)料庫(kù)建設(shè)的若干問(wèn)題[J]. 西南大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2014,40(3):136-142.
[8] 宋彥,蔡?hào)|風(fēng),張桂平,等. 一種基于字詞聯(lián)合解碼的中文分詞方法[J]. 軟件學(xué)報(bào),2009,20(9):2366-2375.
[9] 劉偉童,劉培玉,劉文鋒,等. 基于互信息和鄰接熵的新詞發(fā)現(xiàn)算法[J/OL]. 計(jì)算機(jī)應(yīng)用研究:1-6.2018-01-10, http://www.arocmag.com/article/02-2019-05-017.html.
[10] 李明. 針對(duì)特定領(lǐng)域的中文新詞發(fā)現(xiàn)技術(shù)研究[D]. 南京:南京航空航天大學(xué),2012.
[11] 李文坤,張仰森,陳若愚. 基于詞內(nèi)部結(jié)合度和邊界自由度的新詞發(fā)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用研究,2015, 32(8):2302-2304.
[12] 夭榮朋,許國(guó)艷,宋健. 基于改進(jìn)互信息和鄰接熵的微博新詞發(fā)現(xiàn)方法[J]. 計(jì)算機(jī)應(yīng)用,2016, 36(10):2772-2776.
[13] 杜麗萍,李曉戈,于根,等. 基于互信息改進(jìn)算法的新詞發(fā)現(xiàn)對(duì)中文分詞系統(tǒng)改進(jìn)[J]. 北京大學(xué)學(xué)報(bào):自然科學(xué)版,2016, 52(1):35-40.
[14] YE Y,WU Q,LI Y,et al. Unknown Chinese word extraction based on variety of overlapping strings[J]. Information Processing & Management, 2013, 49(2):497-512.
[15] 王鋒,劉吉超,魏巍. 基于信息熵的半監(jiān)督特征選擇算法[J]. 計(jì)算機(jī)科學(xué),2018,45(11A):427-430.
[16] 王欣. 一種基于多字互信息與鄰接熵的改進(jìn)新詞合成算法[J]. 現(xiàn)代計(jì)算機(jī),2018(4):7-11.
[17] 梁社會(huì),陳小荷. 先秦文獻(xiàn)《孟子》自動(dòng)分詞方法研究[J]. 南京師范大學(xué)文學(xué)院學(xué)報(bào), 2013(3):175-182.
[18] 段磊,韓芳,宋繼華. 古漢語(yǔ)雙字詞自動(dòng)獲取方法的比較與分析[J]. 中文信息學(xué)報(bào),2012, 26(4):34-43.
[19] 石民,李斌,陳小荷. 基于CRF的先秦漢語(yǔ)分詞標(biāo)注一體化研究[J]. 中文信息學(xué)報(bào),2010, 24(2):39-46.
[20] 黃水清,王東波,何琳. 以《漢學(xué)引得叢刊》為領(lǐng)域詞表的先秦典籍自動(dòng)分詞探討[J]. 圖書(shū)情報(bào)工作, 2015(11):127-133.
[21] 《漢語(yǔ)大詞典》編寫(xiě)委員會(huì). 漢語(yǔ)大詞典[M]. 北京:商務(wù)印書(shū)館, 2003.
[22] 張華平. 漢語(yǔ)分詞系統(tǒng)[EB/OL]. http://www.nlpir.org/.
(責(zé)任編輯:江 艷)