劉夢(mèng)迪,梁 循
(中國(guó)人民大學(xué) 信息學(xué)院,北京 100872)
中國(guó)漢字擁有較多的形似字,形似字的存在給人們識(shí)別和書(shū)寫(xiě)漢字造成一定困難。論其形成的原因,則在于漢字的基本構(gòu)成單元——筆畫(huà)?;竟P畫(huà)有橫、豎、撇、點(diǎn)、捺等幾種,少有的幾種筆畫(huà)組合形成了數(shù)以萬(wàn)計(jì)的漢字,盡管字與字在形體上有所差異,但由于筆畫(huà)有限,因而必然會(huì)造成一批外形相似的漢字[1]。差之毫厘,失之千里,漢字的細(xì)微差別可以造成意義上的千差萬(wàn)別。因此,漢字形似字的識(shí)別與推理,是解決中文信息處理領(lǐng)域許多其他問(wèn)題的前提。漢字的形體結(jié)構(gòu)可以分為整字、部件、筆畫(huà)三個(gè)層次。部件既屬于漢字的一部分,也有較強(qiáng)的特殊性,具有相同部件的漢字相似性較高。進(jìn)一步地,部件可以拆分為筆畫(huà),這些筆畫(huà)的排列組合是部件相似性的關(guān)鍵根源,進(jìn)而為漢字的整體相似起到關(guān)鍵作用。所以,漢字的部件,部件的筆畫(huà),均為形似字研究的關(guān)鍵。
知識(shí)圖譜由Google提出,是一種揭示實(shí)體之間關(guān)系的語(yǔ)義網(wǎng)絡(luò),可以對(duì)現(xiàn)實(shí)世界的事物及其相互關(guān)系進(jìn)行形式化的描述[2]。(實(shí)體1,關(guān)系,實(shí)體2)的三元組形式是知識(shí)圖譜的基本組成單位,實(shí)體之間通過(guò)關(guān)系建立聯(lián)系,進(jìn)而構(gòu)成網(wǎng)狀的知識(shí)結(jié)構(gòu)。知識(shí)圖譜具有十分廣泛的應(yīng)用價(jià)值,特別是如何利用已有的語(yǔ)義網(wǎng)絡(luò)推斷出未知知識(shí)(1)主要包括實(shí)體預(yù)測(cè)和關(guān)系預(yù)測(cè)。,是學(xué)術(shù)界長(zhǎng)期以來(lái)的研究熱點(diǎn)。
知識(shí)圖譜的圖結(jié)構(gòu)很適合表示漢字及其組成部件的關(guān)系,因此本文構(gòu)建了偏旁部首知識(shí)圖譜,將漢字及其組成部件的關(guān)系以三元組的形式表示。隨后提出了一種基于知識(shí)圖譜表示學(xué)習(xí)的漢字相似度計(jì)算方法。具體來(lái)說(shuō),我們首先從漢字構(gòu)成的角度分析漢字的組成,并根據(jù)制定的多項(xiàng)規(guī)則將組成部件的重要性加以歸類(lèi),之后依據(jù)應(yīng)用的實(shí)際情況對(duì)TransE[3]模型進(jìn)行了改進(jìn),提出了2CTransE模型。最后將得到的實(shí)體向量進(jìn)行距離計(jì)算以發(fā)現(xiàn)相似度高的漢字,并針對(duì)形似字候選集展開(kāi)討論。
針對(duì)形似字的識(shí)別,栗青生等[4]利用將漢字筆畫(huà)抽象為有向圖的方法,實(shí)現(xiàn)了對(duì)漢字字形結(jié)構(gòu)的動(dòng)態(tài)描述,建立了動(dòng)態(tài)漢字字形描述庫(kù)。胡浩等[5]結(jié)合了漢字的構(gòu)詞和拼音屬性,將其表示為空間向量形式,之后使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)義提取并進(jìn)行相似性計(jì)算,取得了較好的效果。宋柔等[6]從字形結(jié)構(gòu)描述的角度出發(fā),將漢字分為獨(dú)體字和復(fù)合字,并給出了一種基于結(jié)構(gòu)描述的字形相似度計(jì)算算法。劉波等[7]將改進(jìn)的圖片匹配算法引入到漢字識(shí)別中,然而算法識(shí)別率不高且模板庫(kù)漢字?jǐn)?shù)量較小。
現(xiàn)有的形似字研究多從組合結(jié)構(gòu)和筆畫(huà)入手分析漢字部件,之后通過(guò)多種方法來(lái)計(jì)算漢字相似度。然而,目前沒(méi)有較為完整的漢字部件庫(kù),使得判定形似字時(shí)存在一定困難。為了解決這一問(wèn)題,本文制定漢字拆分規(guī)則及主次要部件劃分規(guī)則,人工篩選漢字及其組成部件,構(gòu)建了3 500個(gè)常用漢字的部件組成庫(kù)。
近年來(lái),大規(guī)模知識(shí)庫(kù)的構(gòu)建取得了長(zhǎng)足發(fā)展,如WordNet語(yǔ)言知識(shí)庫(kù)[8]、Freebase世界知識(shí)庫(kù)[9]以及開(kāi)放域中文知識(shí)圖譜《大詞林》等。雖然前兩者涵蓋了數(shù)十億個(gè)實(shí)體和關(guān)系,但它們?nèi)匀幌喈?dāng)稀疏,這就為實(shí)體語(yǔ)義相關(guān)性評(píng)估帶來(lái)了巨大的計(jì)算挑戰(zhàn)。表示學(xué)習(xí)技術(shù)為解決該問(wèn)題提供了新方法。其通過(guò)機(jī)器學(xué)習(xí)或其他方法將對(duì)象的語(yǔ)義信息表示為密集的低維實(shí)值向量,這些向量以靈活的方式表達(dá)了實(shí)體和關(guān)系的語(yǔ)義特征,并使得實(shí)體間的語(yǔ)義相關(guān)性變得可計(jì)算。
知識(shí)表示學(xué)習(xí)的代表模型包括距離模型[10]、單層神經(jīng)網(wǎng)絡(luò)模型[11]、神經(jīng)張量模型[11]等。距離模型(Structured Embedding,SE)為每個(gè)關(guān)系學(xué)習(xí)頭實(shí)體和尾實(shí)體的兩個(gè)獨(dú)立矩陣,因此協(xié)同性較差;為了緩解SE模型的問(wèn)題,Richard等人提出了單層神經(jīng)網(wǎng)絡(luò)模型(Single Layer Model,SLM),但由于其非線性只能隱式地捕捉實(shí)體與關(guān)系之間的相互作用,甚至導(dǎo)致難以?xún)?yōu)化,因此在大規(guī)模知識(shí)圖譜的應(yīng)用中仍存在問(wèn)題;神經(jīng)張量模型(Neural Tensor Network,NTN)中的張量運(yùn)算可以更加明確地描述實(shí)體與關(guān)系之間的綜合語(yǔ)義關(guān)系,但其高度復(fù)雜性可能會(huì)限制其在大規(guī)模知識(shí)圖譜中的應(yīng)用。受到平移不變思想的啟發(fā),Bordes等[3]提出TransE模型,它是用于學(xué)習(xí)實(shí)體的低維嵌入的基于能量的模型。與傳統(tǒng)的知識(shí)表示模型相比,TransE模型能夠以較少的模型參數(shù)和較低的計(jì)算復(fù)雜度來(lái)描述實(shí)體間復(fù)雜的語(yǔ)義關(guān)系。由于該模型的簡(jiǎn)單性和有效性,不少學(xué)者對(duì)其進(jìn)行了進(jìn)一步的拓展與應(yīng)用。
對(duì)于漢字的知識(shí)表示問(wèn)題,研究人員利用中文內(nèi)部的形態(tài)語(yǔ)義來(lái)增強(qiáng)單詞嵌入。如Li等[12]使用部首來(lái)增強(qiáng)漢字嵌入。Chen等[13]提出了通過(guò)利用字符級(jí)信息來(lái)提高中文單詞嵌入質(zhì)量的CWE模型。另有學(xué)者提出基于像素的GWE模型[14],從字體圖像中學(xué)習(xí)字符特征以增強(qiáng)單詞的表示。Cao等[15]提出的Cw2Vec模型,則利用筆畫(huà)級(jí)別的信息來(lái)進(jìn)一步改善中文單詞嵌入的學(xué)習(xí)。
近些年來(lái),漢字在國(guó)內(nèi)外研究中得到了愈發(fā)廣泛的關(guān)注,如何將其更好地表示為計(jì)算機(jī)可以識(shí)別和計(jì)算的方式,也具有重要的研究意義。本文創(chuàng)新性地構(gòu)建漢字拆分層面的知識(shí)圖譜,并將知識(shí)圖譜的表示學(xué)習(xí)方法應(yīng)用到漢字嵌入中,為相似字的識(shí)別和推理提供新思路。該方法與計(jì)算機(jī)視覺(jué)和模式識(shí)別等傳統(tǒng)方式相比,算法復(fù)雜度更低,計(jì)算速度更快。
本文的組織結(jié)構(gòu)如下: 引言介紹形似字的研究背景,及知識(shí)圖譜的相關(guān)知識(shí);第1節(jié)介紹形似字和知識(shí)表示學(xué)習(xí)的研究現(xiàn)狀和局限性,及本文提出的解決方案;第2節(jié)介紹漢字集合的相關(guān)定義和偏旁部首知識(shí)圖譜的構(gòu)建、表示學(xué)習(xí)的創(chuàng)新性應(yīng)用和向量計(jì)算方法;第3節(jié)介紹漢字部件組成庫(kù)構(gòu)建規(guī)則,并將篩選后的漢字?jǐn)?shù)據(jù)集映射到向量空間中,之后進(jìn)行實(shí)體相似度的計(jì)算;最后一節(jié)總結(jié)全文并提出展望。
2.1.1 漢字集合的基本定義
集合是數(shù)學(xué)中的一個(gè)基本概念,是指具有某種特定性質(zhì)的具體或抽象的對(duì)象匯總而成的集體。
部件是現(xiàn)代漢字字形中具有獨(dú)立組字能力的構(gòu)字單位,它大于或等于筆畫(huà),小于或等于整字[16]。該級(jí)別作為漢字的重要組成部分,特殊性強(qiáng),故本文選擇部件作為漢字集合定義的最小細(xì)粒度。
為了深層次分析漢字內(nèi)部結(jié)構(gòu)與關(guān)系,從漢字組成部件的角度出發(fā),構(gòu)建漢字集合的表示方法。
(1) 集合的性質(zhì)
數(shù)學(xué)集合按照元素的有限與否進(jìn)行分類(lèi),而漢字集合的元素都是固定的,因此均為有限集。漢字集合遵循數(shù)學(xué)集合的兩個(gè)基本特性: 首先,給定一個(gè)漢字,任意給定一個(gè)組成部件,該部件與漢字的關(guān)系只可能有兩種——屬于該漢字或不屬于該漢字,并只居其一,稱(chēng)為確定性。其次,漢字的組成部件可能有重復(fù),但在使用集合表示時(shí),每個(gè)部件在集合中只出現(xiàn)一次,稱(chēng)為互異性。從其特殊性出發(fā),本文又提出了漢字集合的一個(gè)特質(zhì): 漢字的組成部件按照書(shū)寫(xiě)的筆畫(huà)順序,在集合中是分先后的,即有序性特質(zhì)。
(2) 集合的表示
集合主要通過(guò)列舉法進(jìn)行表示,即將部件一一列舉出來(lái)。在表示時(shí)須根據(jù)有序性特質(zhì),如仁={亻,二},“亻”和“二”是“仁”的元素。
(3) 集合與元素的關(guān)系
每一個(gè)漢字集合的組成元素可以分為主要元素和次要元素,界定集合與元素的關(guān)系時(shí)將凸顯這一關(guān)鍵屬性,本文給出以下定義。
定義1: 元素a在集合A里,即該元素屬于該集合,表示為“a∈A”,如“二∈仁”;元素a不在集合A里,即該元素不屬于該集合,表示為“a?A”,如“氵?仁”。
(4) 元素與元素的關(guān)系
已有學(xué)者提出[17],漢字的組成部件之間存在淵源關(guān)系和形體關(guān)系。具體地說(shuō),就是部件之間存在變體關(guān)系和形似關(guān)系。如根據(jù)字源,將“爪、爫”歸為一組;根據(jù)意義之間的關(guān)系,將“水、永、氵、冫”歸為一組;根據(jù)形似關(guān)系,將“宀、冖”歸為一組。本文只考慮元素間的形似關(guān)系,提出定義3。
定義3: 如果元素a和元素b字形相似,則這兩個(gè)元素形似,記作a≡b。如“氵≡冫、宀≡冖、礻≡衤”等。
(5) 集合間的基本關(guān)系
由于所含元素之間的不同關(guān)系,數(shù)學(xué)集合之間存在著多樣的復(fù)雜關(guān)系。根據(jù)漢字集合的特殊性,本文對(duì)集合間的基本關(guān)系提出如下定義。
定義4(子集): 如果漢字A的組成部件包含可繼續(xù)拆分的漢字B,則B稱(chēng)為A的子集,記作B?A。如博={十,尃},“尃”為“博”的子集,即“尃”包含于“博”(“博”包含“尃”),記作“尃?博”。進(jìn)一步地,“尃”為“博”的最大子集,而“甫”和“寸”不是“博”的最大子集。后文所提及的子集均默認(rèn)是最大子集。
冷={冫,令}?冰∩冷={冫}。
定義8(并集): 如果將漢字A(或元素a)與漢字B(或元素b)合并在一起,能夠構(gòu)成新漢字,那么A(或a)與B(或b)存在并集,記作A(或a)∪B(或b)。如“春∪蟲(chóng)”為真命題,“春∪亻”為假命題。
定義9(差集、補(bǔ)集): 假設(shè)有集合A和B,所有屬于B且不屬于A的元素的集合被稱(chēng)為B與A的差集。即B-A={x|x∈B且x?A}。如“法-沒(méi)=去”、“候-侯={丨}”等。其中,由于“法”中不包含“沒(méi)”,所以不存在補(bǔ)集,但“候”包含“侯”,所以“侯”關(guān)于“候”的補(bǔ)集為{丨}。
定義10(相似): 如果漢字A與漢字B存在交集,即A∩B≠?,那么漢字A與漢字B相似,記作A∽B。
2.1.2 其他定義
漢字及其部件可以進(jìn)一步地深入拆分為漢字字形的最小連筆單位,即筆畫(huà)。由此,本文提出以下定義。
定義11(復(fù)雜度): 將漢字A(或元素a)的筆畫(huà)數(shù)定義為它的復(fù)雜度。
本文中,復(fù)雜度表示為O(A)或O(a),如O(法)=8。
復(fù)雜度存在如下性質(zhì):
① 可比性漢字(或元素)之間的復(fù)雜度是可以比較大小的,如O(法)>O(沒(méi))。
② 算術(shù)性漢字(或元素)之間的復(fù)雜度可以相減,以表示兩個(gè)漢字(或元素)之間的復(fù)雜度差異大小,差的大小與復(fù)雜度差異成正比,如O(法)-O(沒(méi))=1。
定義12(中介字): 漢字的子集可以進(jìn)一步拆分,因此又稱(chēng)為中介字。特別地,當(dāng)該漢字可以進(jìn)一步拆分,但其并不是獨(dú)立漢字,而是偏旁部首時(shí),它不稱(chēng)為中介字。如春∈蠢,春={,日},因此春為中介字;彳∈行,彳={丿,亻},“彳”為常見(jiàn)的偏旁部首,不屬于中介字。
2.2.1 漢字知識(shí)表示學(xué)習(xí)模型: 2CTransE
TransE模型的核心思想是基于實(shí)體和關(guān)系的分布式向量表示,將實(shí)體間關(guān)系r的向量r看作是頭實(shí)體h的向量h和尾實(shí)體t的向量t之間的平移,即將實(shí)體間的關(guān)系視為兩個(gè)實(shí)體之間的翻譯,因此也稱(chēng)為翻譯模型。當(dāng)(h,r,t)成立時(shí),TransE希望在向量空間中t是h+r的最近鄰,同時(shí)h+r應(yīng)遠(yuǎn)離除t之外的向量。該模型使用d(h+r,t)表示向量h+r與t之間的距離,使用L1范式或L2范式來(lái)計(jì)算距離。模型采用最大間隔方法以增強(qiáng)知識(shí)表示的區(qū)分能力,代價(jià)函數(shù)如式(1)所示。
(1)
其中,S是正確三元組集合,S′為錯(cuò)誤三元組集合,γ為正誤三元組得分之間的間隔距離,γ大于0,[x]+表示正值函數(shù),即當(dāng)x>0時(shí),[x]+=x;當(dāng)x≤0時(shí),[x]+=0。
模型中所需要的錯(cuò)誤三元組由式(2)構(gòu)造。其中,E表示的是實(shí)體的集合。TransE將正確三元組集合S中的每個(gè)三元組的頭實(shí)體或尾實(shí)體兩者其一隨機(jī)替換為其他實(shí)體,得到S′如式(2)所示。
(2)
實(shí)體和關(guān)系的向量表示是按照隨機(jī)過(guò)程進(jìn)行初始化的,訓(xùn)練的過(guò)程就是不斷減小d(h+r,t)的過(guò)程,同時(shí)使其小于所對(duì)應(yīng)的錯(cuò)誤三元組的距離d(h′+r,t′)。
由式(2)可以發(fā)現(xiàn),TransE在構(gòu)造錯(cuò)誤三元組時(shí)沒(méi)有替換關(guān)系,這可能是因?yàn)閭鹘y(tǒng)知識(shí)庫(kù)中的關(guān)系為關(guān)系類(lèi)型,它的數(shù)量有限且彼此間差別顯著,因此在構(gòu)造錯(cuò)誤三元組時(shí)替換關(guān)系的必要性不強(qiáng)。但是對(duì)于偏旁部首知識(shí)圖譜而言,漢字組成的主次之分非常關(guān)鍵,漢字主要組成部分的相似與漢字次要組成部分的相似相比,前者對(duì)漢字整體的相似影響更大。因而在偏旁部首知識(shí)圖譜的研究中,關(guān)系對(duì)于訓(xùn)練過(guò)程的影響不容忽視。
因此,本文修改了TransE模型構(gòu)造錯(cuò)誤三元組的方式,將正確三元組集合中的每個(gè)三元組的頭實(shí)體或尾實(shí)體或關(guān)系三者其一隨機(jī)替換為其他實(shí)體或關(guān)系。修改后的模型稱(chēng)為2CTransE(Chinese Character Translating Embedding,2CTransE)。構(gòu)造S′的方式如式(3)所示。
S′(h,r,t)={(h′,r,t)|h′∈E}∪
{(h,r,t′)|t′∈E}∪{(h,r′,t)|r′∈R}
(3)
其中,E表示的是實(shí)體的集合,R代表關(guān)系的集合。
2.2.2 偏旁部首知識(shí)圖譜的構(gòu)建與嵌入
偏旁部首知識(shí)圖譜是以偏旁部首為基礎(chǔ)的、揭示漢字與漢字之間內(nèi)在關(guān)系的語(yǔ)義網(wǎng)絡(luò)。具體來(lái)說(shuō),該知識(shí)圖譜的實(shí)體包括常用字、漢字拆分后的偏旁部首及其他組成部件,實(shí)體間的關(guān)系包括漢字(或漢字部件)與其組成部分的“主要組成”和“次要組成”關(guān)系,是一個(gè)綜合型的復(fù)雜知識(shí)圖譜。三元組是該知識(shí)圖譜的主要組成部分。形似字的推理,主要從漢字集合之間的交集(特別是主交集)入手,從細(xì)粒度層次為漢字相似提供支持。
之后,本文使用2CTransE模型將漢字實(shí)體嵌入在向量空間中,得到的向量表示令漢字之間的距離變得可以計(jì)算。當(dāng)給出某個(gè)具體的關(guān)鍵字時(shí),與之相似度較高的漢字則會(huì)被判定為關(guān)鍵字的相似字。
綜上,本文將主要實(shí)現(xiàn)偏旁部首知識(shí)圖譜的關(guān)系預(yù)測(cè)任務(wù),通過(guò)漢字集合組成部件(子集、元素)的共有性和相似性來(lái)推理出兩個(gè)漢字之間的相似性。如圖1所示,通過(guò)“循”和“偱”兩字的部件關(guān)系,推理出兩字隱含的“相似”關(guān)系。
圖1 相似字推理示意圖
2.2.3 實(shí)體相似度計(jì)算方法
基于TransE及其改進(jìn)的2CTransE模型,我們得到了漢字實(shí)體和關(guān)系在n維空間的映射,為相似字的計(jì)算和推理提供了定量數(shù)據(jù)。
為了準(zhǔn)確描述實(shí)體之間的相似性,本文選擇了余弦相似度、皮爾遜相似度、歐氏距離、曼哈頓距離、切比雪夫距離等常用的相似性度量方法。其中,本文訓(xùn)練所得向量的各個(gè)維度的取值范圍無(wú)明顯差異,因此受閔可夫斯基距離(歐氏距離、曼哈頓距離、切比雪夫距離)的局限性限制較小。
《現(xiàn)代漢語(yǔ)常用字表》內(nèi)收錄3 500字,分為2 500個(gè)常用字和1 000個(gè)次常用字兩部分,這些漢字在多數(shù)語(yǔ)料庫(kù)中的覆蓋率可達(dá)到99.48%,這意味著掌握漢語(yǔ)常用字和次常用字就已經(jīng)達(dá)到了使用中文的基本要求。因此,本文使用爬蟲(chóng)腳本從開(kāi)放詞典網(wǎng)中的拆字詞典中獲得了這些漢字的主要成分和部首信息,總計(jì)3 500條數(shù)據(jù)。此處形成的數(shù)據(jù)集稱(chēng)為初始數(shù)據(jù)集(Original Dataset,OD)。獲取的多數(shù)漢字均存在多個(gè)拆分方式,部分實(shí)例如表1所示。
表1 漢字的多個(gè)拆分方式
3.1.1 漢字拆分規(guī)劃
為了篩選出合理的漢字拆分方式,本文制定了5項(xiàng)規(guī)則。
(1)選取“部首”的拆分方式: 當(dāng)多種拆分中存在“部首及剩余部分”的方式時(shí),優(yōu)先選取。例如,“冒”字存在以下拆分方式: {冃,目}、{冂,二,目}、{曰,目}、{日,目},根據(jù)該規(guī)則選取含有部首“冂”的方式{冂,二,目}。
(2)選取“含有最大子集”的拆分方式(含有部首): 為了實(shí)現(xiàn)具“有關(guān)系的實(shí)體相似度更高”而制定這一規(guī)則。例如,“博”字存在以下拆分方式: {十,尃}、{十,甫,寸},根據(jù)該規(guī)則選擇{十,尃}。由此一來(lái),“傅”與“博”通過(guò)“尃”建立聯(lián)系,具有極高的相似性。
(3)選取“含有最大子集”的拆分方式(不含有部首): 例如“候”的部首為“亻”,拆分方式有: {亻,丨,乛,一,矢}、{侯,丨},根據(jù)該規(guī)則選擇{侯,丨},即使該方式中不含“候”的偏旁部首,但最終會(huì)通過(guò)“侯”與“亻”間接建立聯(lián)系。
(4)選取“部首字形”的拆分方式: 在獲取的數(shù)據(jù)中,部分漢字的拆分方式使用了偏旁部首的通俗寫(xiě)法,而本文中將統(tǒng)一選取“部首字形”的書(shū)寫(xiě)方式。例如,從“杰”字的拆分方式{木,火}、{木,灬}中選取{木,灬}。
(5)“相同組成部件”單一化: 當(dāng)漢字中有相同的組成部件時(shí),只保留其一。例如,“咒”的“口、口、幾”,單一化為{口,幾}。
通過(guò)以上規(guī)則將OD進(jìn)行人工過(guò)濾后,得到的數(shù)據(jù)集命名為過(guò)濾后的數(shù)據(jù)集(Filtered Dataset,F(xiàn)D)。
3.1.2 漢字可組成部件主次關(guān)系規(guī)則
為了區(qū)分漢字與組成部件(子集、元素)的主次要關(guān)系,本文制定了5項(xiàng)規(guī)則。
(2) “特殊部件”主要組成關(guān)系: 有些部件雖然復(fù)雜度不高,但是這類(lèi)部件字形特別,并且作為漢字的組成部件多出現(xiàn)在同一結(jié)構(gòu)位上,比其他部件異他性強(qiáng)、排他性高,稱(chēng)為特殊部件。這類(lèi)部件的相同或相似將會(huì)為漢字相似帶來(lái)更多的可能性,除這類(lèi)部件之外的部件即為次要部件。這部分主要通過(guò)人工篩選和對(duì)比來(lái)確定。本文將特殊部件細(xì)分為兩種類(lèi)型。
表2 單一式特殊部件示例
表3 復(fù)合式特殊部件示例
(5)“重要性均等”主要組成關(guān)系: 對(duì)于不同組成部件對(duì)漢字重要性差別不大的漢字,不再對(duì)其關(guān)系進(jìn)行區(qū)分,均劃分為主要組成關(guān)系。該規(guī)則在以下情況中存在較多: 組成部件均為成字部件時(shí),如塵={小,土},醇={酉,享};漢字結(jié)構(gòu)簡(jiǎn)單、組成部件多且是成字部件的比例極低,如垂={丿,土,二,丨};結(jié)構(gòu)簡(jiǎn)單,并多為中介字,如乎={丿,丷,一,亅},同={冂,一,口},侖={人,匕}。
根據(jù)以上規(guī)則將FD的漢字主次要關(guān)系進(jìn)行鑒別后,得到選擇后的數(shù)據(jù)集(Selected Dataset,SD)。
前文盡可能保留較為完整的漢字拆分方式,以期漢字間具有更高的相似度。事實(shí)上,不少部件之間也存在聯(lián)系,但由于本文的數(shù)據(jù)集為常用字,這些部件可能并不在其中,如戉、酉、乑、豕等字。為了更深層次地在部件之間建立起聯(lián)系,我們先對(duì)SD數(shù)據(jù)集中尾實(shí)體的拆分方式是否已經(jīng)存在進(jìn)行核對(duì),如果不存在則將其進(jìn)行再分解。為了保證進(jìn)一步操作后的數(shù)據(jù)有效性,本文構(gòu)建了最小拆分字表(見(jiàn)表4),設(shè)定了拆分的最小細(xì)粒度,包括常見(jiàn)的偏旁部首“丷”“癶”等,以及無(wú)法再進(jìn)一步拆分“丶”“丿”等筆畫(huà)。
表4 最小拆分字表
至此,數(shù)據(jù)集準(zhǔn)備完畢,共包含三元組8 054組、實(shí)體3 755個(gè)、關(guān)系2組。
3.2.1 偏旁部首知識(shí)圖譜構(gòu)建
Neo4j是基于Java的NoSQL圖形數(shù)據(jù)庫(kù),其能夠完美地對(duì)知識(shí)圖譜的實(shí)體和關(guān)系進(jìn)行映射,且對(duì)于高連接關(guān)系的數(shù)據(jù)具有良好性能。Jouili等[18]認(rèn)為,Neo4j在查詢(xún)和存儲(chǔ)等方面的性能均優(yōu)于其他數(shù)據(jù)庫(kù),在業(yè)界得到廣泛應(yīng)用。因此,本文選用Neo4j作為存儲(chǔ)偏旁部首知識(shí)圖譜的數(shù)據(jù)庫(kù)。節(jié)點(diǎn)(nodes)和邊(edges)是Neo4j的兩種基本數(shù)據(jù)類(lèi)型,其中,節(jié)點(diǎn)表示的是知識(shí)圖譜中的實(shí)體,邊表示知識(shí)圖譜中實(shí)體間的關(guān)系。
對(duì)于偏旁部首知識(shí)圖譜而言,本文設(shè)置了三種類(lèi)型的節(jié)點(diǎn),分別是漢字(cha)、中介字(media_cha)和其他部件(sub_char);以及兩種類(lèi)型的邊,分別為主要組成關(guān)系(main_consistof)和次要組成關(guān)系(sub_consistof)。
通過(guò)以上的方法,我們將實(shí)體和關(guān)系等一系列知識(shí)存儲(chǔ)到Neo4j中。相關(guān)數(shù)量統(tǒng)計(jì)表如表5所示。
表5 實(shí)體及關(guān)系統(tǒng)計(jì)表
以“漠”字為例進(jìn)行檢索,所得知識(shí)圖譜如圖2所示(2)為了區(qū)分不同實(shí)體和關(guān)系,漢字、中介字、其他部件等實(shí)體以及主要組成等關(guān)系,分別用不同顏色表示(此處受印刷條件限制,僅展現(xiàn)單色)。。其中,“莫”為主要子集、“氵”為次要子集,與“莫”和“氵”相連的實(shí)體均為與“漠”存在交集的漢字。另外,“莫”作為中介字,可以進(jìn)一步拆分為“艸”“日”“大”。統(tǒng)計(jì)顯示,與“漠”直接或間接建立關(guān)系的字達(dá)116字,因?yàn)榻患㈥P(guān)系的漢字實(shí)體有111個(gè)。
圖2 局部知識(shí)圖譜示例
3.2.2 基于知識(shí)圖譜的漢字向量化表示
為了使模型在偏旁部首知識(shí)圖譜中具有更好的表現(xiàn),本文測(cè)試了不同參數(shù)下的模型性能。學(xué)習(xí)率r在{0.1,0.01,0.001}中選擇,實(shí)體和關(guān)系的嵌入維度d在{50,100,200,500}中選擇,間隔距離γ在{0.5,1,2,4}中選擇,單批量數(shù)據(jù)大小B在{10,100,500,1000}中選擇。在每種組合配置中做了多次試驗(yàn),迭代次數(shù)均為3 000,之后將實(shí)驗(yàn)結(jié)果取平均值。
對(duì)于實(shí)驗(yàn)結(jié)果的評(píng)價(jià),考慮到數(shù)據(jù)集的特殊性,本文沒(méi)有采用翻譯模型的傳統(tǒng)評(píng)價(jià)指標(biāo)(MeanRank和Hit@10),而是以目標(biāo)導(dǎo)向的方式,計(jì)算目標(biāo)漢字與所有漢字的相似度(本節(jié)取余弦相似度),并取排序前7名的漢字作為目標(biāo)漢字的形似字候選集,之后通過(guò)人為認(rèn)知對(duì)結(jié)果進(jìn)行分析。結(jié)果優(yōu)劣的判定標(biāo)準(zhǔn)主要包括: 所得候選集漢字與目標(biāo)漢字結(jié)構(gòu)是否相近、是否存在主交集或主子集形似度高低、余弦值相對(duì)大小等。
學(xué)習(xí)率r的比較如圖3所示?!奥取笔前氚鼑Y(jié)構(gòu),與其擁有主交集“氣”的漢字相似度更高。當(dāng)r為0.001時(shí),排名前3漢字(氧、氨、氮)滿足條件,且“氛”“氫”居于第5和第6,相較其他r而言表現(xiàn)得更好;對(duì)于上下結(jié)構(gòu)的“寒”字,當(dāng)漢字間的主交集為復(fù)合式特殊部件{宀,井,大}時(shí),形似字的可能性更高。當(dāng)r為0.001時(shí),“塞”“賽”符合要求;同理,在該取值下,“繳”和“激”為“邀”最形似的漢字,數(shù)據(jù)集中含“敫”的漢字全部得到體現(xiàn),顯示了2CTransE算法在漢字知識(shí)圖譜表示學(xué)習(xí)應(yīng)用中的有效性。
圖3 學(xué)習(xí)率比較
嵌入維度d的比較如圖4所示?!皳堋睘樽笥医Y(jié)構(gòu),當(dāng)d=100時(shí),所得結(jié)果多為同結(jié)構(gòu),“拔”與其存在次交集且主子集僅一畫(huà)之差,而“潑”與其存在主交集;對(duì)于“詩(shī)”字而言,當(dāng)d為100時(shí),存在主交集“寺”的漢字相較于其他維度的漢字更多,且余弦值更高;“摩”字是半包圍結(jié)構(gòu),當(dāng)d=100時(shí),排名前2的漢字均含有單一式特殊部件“麻”。因此,本文認(rèn)為d=100時(shí),較好地表達(dá)了知識(shí)圖譜的語(yǔ)義信息。
圖4 嵌入維度比較
間隔距離的比較如圖5所示。對(duì)于“疑”,當(dāng)γ=1時(shí),最相似漢字為“凝”,目標(biāo)漢字與該漢字的差集元素“冫”組成簡(jiǎn)單,故其出現(xiàn)較為合理。而“肄”與其同結(jié)構(gòu)且存在主交集。同時(shí),以上兩漢字的余弦值明顯較高;對(duì)于上下結(jié)構(gòu)的“豪”字,當(dāng)與其存在的主交集為復(fù)雜式特殊部件{亠,口,冖}時(shí),應(yīng)具有較高的相似性。當(dāng)γ為1時(shí),該推斷得以驗(yàn)證;對(duì)于“巒”而言,含有單一式特殊部件“亦”的漢字相似度應(yīng)更高,當(dāng)γ為1和2時(shí),均有5個(gè)形似字排名靠前,且后者相似值表現(xiàn)更佳。但鑒于當(dāng)γ=1時(shí),其他形似字候選集結(jié)果更優(yōu),因此選定間隔距離為1。
圖5 間隔距離比較
單批數(shù)據(jù)大小的比較如圖6所示。“泰”為上下結(jié)構(gòu),各維度的表現(xiàn)相似;對(duì)于左右結(jié)構(gòu)“瀑”而言,當(dāng)B為500和1 000時(shí),最相似漢字為“爆”,找到了數(shù)據(jù)集中唯一與其有主交集“暴”的漢字;對(duì)于“撥”字而言,當(dāng)B為100和500時(shí),最為相似的漢字(潑、拔)都得到了體現(xiàn),同時(shí)相似值較高。綜上所述,結(jié)合不同結(jié)構(gòu)漢字的整體表現(xiàn),B的最優(yōu)選擇為500。
圖6 單批數(shù)據(jù)大小比較
經(jīng)過(guò)對(duì)比和分析后,本文得到的最優(yōu)參數(shù)配置為γ=1,d=100,r=0.001,B=500。
3.2.3 實(shí)體相似度計(jì)算
(1) 實(shí)驗(yàn)結(jié)果
本節(jié)首先通過(guò)兩個(gè)實(shí)驗(yàn)驗(yàn)證模型改進(jìn)前后的性能差異和所得到數(shù)據(jù)集的有效性。前者是驗(yàn)證TransE模型改進(jìn)前后的效果差異;后者用于驗(yàn)證所制定的“漢字部件主次要?jiǎng)澐忠?guī)則”的有效性,將數(shù)據(jù)集中的所有關(guān)系替換為“主要組成”,生成測(cè)試數(shù)據(jù)集(Test Dataset,TD),在模型訓(xùn)練過(guò)程中部分關(guān)系可能會(huì)隨機(jī)替換為“次要組成”;兩個(gè)實(shí)驗(yàn)均在最優(yōu)參數(shù)的設(shè)置下,隨機(jī)抽取不同結(jié)構(gòu)的漢字,使用余弦相似度計(jì)算不同模型(2CTransE、TransE、2CTransE-TD)輸出的嵌入向量,得到的形似字候選集如表6所示。
表6 新舊模型及數(shù)據(jù)集變換對(duì)比
續(xù)表
對(duì)于左右結(jié)構(gòu)“喻”的形似字候選集,改進(jìn)前后的算法所得到的結(jié)果差異較小。對(duì)于同屬左右結(jié)構(gòu)的漢字“侯”,2CTransE明顯表現(xiàn)較優(yōu),上下結(jié)構(gòu)的“露”字及“亭”字與此相似,因此改進(jìn)后的模型具有更廣的適用性;對(duì)于半包圍結(jié)構(gòu)的漢字,改進(jìn)后的模型在區(qū)分主次要部件的情況下,可以更為精準(zhǔn)地找到具有同結(jié)構(gòu)、相似部件的漢字,如“閑”的形似字候選集中80%以上的漢字均為包含“門(mén)”的半包圍結(jié)構(gòu)漢字,但TransE找到的形似字多為上下結(jié)構(gòu)?!岸弧迸c此相似,2CTransE找到的所有形似字均為半包圍結(jié)構(gòu),且共有“疒”;對(duì)于全包圍結(jié)構(gòu)的漢字而言,本文選取以“園”和“團(tuán)”為例,可以發(fā)現(xiàn)改進(jìn)后模型所得到的形似字明顯更符合人的認(rèn)知。而2CTransE在不同數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果表明,2CTransE-TD對(duì)上下結(jié)構(gòu)和半包圍結(jié)構(gòu)漢字的識(shí)別明顯較差。
綜上所述,本文所制定的“主次要規(guī)則”具有較強(qiáng)的合理性和科學(xué)性,而2CTransE模型與傳統(tǒng)模型相比更適用于結(jié)構(gòu)多變的漢字的表示。
(2) 模型對(duì)比
本節(jié)將形似字結(jié)果與已有研究[19-20]進(jìn)行比較,考察所提出方法在形似字應(yīng)用中的準(zhǔn)確性,結(jié)果如表7所示。從字形相似的角度而言,對(duì)于“戀”字,本算法更偏重于單一式特殊部件“亦”的優(yōu)先級(jí),并找到數(shù)據(jù)集中所有含有該部件的漢字;對(duì)于“椅”,介于本文數(shù)據(jù)集涵蓋范圍有限,沒(méi)有列出其他文獻(xiàn)找到的含“奇”的形似字,但數(shù)據(jù)集中所有與其具有主交集的漢字都有所體現(xiàn)。從程序執(zhí)行時(shí)間的角度來(lái)看,本文所提出的方法計(jì)算相似漢字的平均時(shí)間為110.39ms,相較于文獻(xiàn)[20-21]更短時(shí)間。綜上,本文所提出的方法能夠找到所有含目標(biāo)漢字的主要部件的常用字并具有更可觀的運(yùn)行速度,在應(yīng)用中更具有實(shí)用性。
表7 與現(xiàn)有文獻(xiàn)的對(duì)比
續(xù)表
(3) 相似度算法比較
本文試圖比較不同相似度算法之下,形似字候選集的差異。選取“賞”“羞”“截”等漢字作為關(guān)鍵字,之后分別使用余弦相似度、皮爾遜相似度、歐氏距離、曼哈頓距離和切比雪夫距離計(jì)算關(guān)鍵字與其他3 000余字的相似值,前兩者以降序的方式排列,后三者以升序方式排列,得到的前7名結(jié)果如表8所示。
表8 不同相似度算法比較
對(duì)于“賞”字而言,無(wú)論是在查找結(jié)果的數(shù)量和質(zhì)量上,余弦相似度和皮爾遜相似度均表現(xiàn)較優(yōu);而歐氏距離和曼哈頓距離得到的“羞”字形似字候選集更為理想,究其原因,可能在于2CTransE模型采用歐氏距離訓(xùn)練損失函數(shù),故計(jì)算漢字相似度時(shí)采用歐氏距離及其類(lèi)似算法將具有較好的表現(xiàn),這一點(diǎn)在袁泉等[22]的研究中也得到了論證;對(duì)于“截”字來(lái)說(shuō),如果存在單一式特殊部件“”的主交集,則為其形似字的可能性更高。結(jié)果說(shuō)明,除了切比雪夫距離之外,其他相似度計(jì)算方法的結(jié)果相差不大,其中,使用余弦相似度和皮爾遜相似度時(shí),數(shù)據(jù)集中包含“”的所有漢字都得以體現(xiàn)并賦予了較高的相似度。綜上所述,對(duì)于不同漢字而言,最優(yōu)的相似度算法有所差別,其中余弦相似度和皮爾遜相似度、歐氏距離和曼哈頓距離的表現(xiàn)較為一致,而切比雪夫距離不適用于偏旁部首知識(shí)圖譜的實(shí)體相似度計(jì)算。
(4) 結(jié)果可視化及量化評(píng)估
本文以“捕”字為例,選取了最適合其相似度計(jì)算的余弦相似度,將最相似的前100個(gè)漢字及其相似值進(jìn)行處理,使用結(jié)構(gòu)圖的方式展示形似字候選集(圖7),字體越大表明相似度最高??梢灾庇^地看到,與目標(biāo)字有主交集“甫”的漢字所占空間較大,其次是擁有次交集“扌”的漢字,即所得到的形似字與人的認(rèn)知程度較為符合。
圖7 “捕”的形似字結(jié)構(gòu)圖
為衡量算法的有效性,本文隨機(jī)挑選200 個(gè)漢字,并保證所抽取的列表中覆蓋不同結(jié)構(gòu)的漢字,生成形似字符列表,每個(gè)列表包含1個(gè)目標(biāo)漢字和7個(gè)候選漢字。之后通過(guò)用戶(hù)調(diào)查的方式,邀請(qǐng)11個(gè)人分別在每組列表挑選出字形最相似的前兩個(gè)漢字,并根據(jù)票數(shù)判定最終的兩個(gè)候選漢字(不分先后)。算法結(jié)果與人工識(shí)別結(jié)果完全命中的比例達(dá)96%,說(shuō)明本文算法所得到的結(jié)果是真實(shí)可靠的。
目前關(guān)于漢字該如何拆分、拆分到何種程度尚未達(dá)成統(tǒng)一共識(shí),類(lèi)似于漢字組成部件庫(kù)這樣的數(shù)據(jù)集也處于空白狀態(tài),為形似字的識(shí)別帶來(lái)一定的困難。面對(duì)這一不足,本文制定了漢字拆分規(guī)則和主次要成分界定規(guī)則,并將其應(yīng)用于3 500個(gè)常用漢字。之后將得到的漢字及其相應(yīng)部件以三元組的形式表示,構(gòu)建了偏旁部首知識(shí)圖譜,橫向拓展了知識(shí)圖譜的應(yīng)用領(lǐng)域——傳統(tǒng)知識(shí)圖譜多應(yīng)用于知識(shí)庫(kù)的表示,而目前鮮有研究將視角深入至字形層面。進(jìn)一步地,為了獲得實(shí)體的向量表示,根據(jù)漢字的實(shí)際特點(diǎn)對(duì)模型TransE進(jìn)行了改進(jìn),使其更適應(yīng)于漢字部件的表示學(xué)習(xí)。最后使用得到的向量計(jì)算漢字間相似度,推理得出目標(biāo)漢字的形似字候選集。結(jié)果表明,本文所提出的方法對(duì)于不同結(jié)構(gòu)漢字的形似字計(jì)算結(jié)果與人為認(rèn)知高度相符,且執(zhí)行效率相較于現(xiàn)有模型表現(xiàn)更好,證明了本文所構(gòu)建的漢字部件組成庫(kù)的科學(xué)性和合理性,在一定程度上解決了漢字拆分多樣性和不一致性的問(wèn)題,也說(shuō)明了將知識(shí)圖譜及其表示學(xué)習(xí)方法應(yīng)用于中國(guó)漢字具備可行性,為研究日語(yǔ)等類(lèi)漢語(yǔ)語(yǔ)言提供了可借鑒的思路和方法。
通過(guò)2CTransE模型,本文得到了基于漢字組成角度的字向量,這與傳統(tǒng)的嵌入模型均存在較大差別。漢字作為象形字,每一個(gè)部件都與整體含義息息相關(guān)。因此,由部件出發(fā)形成的字向量,可以進(jìn)一步應(yīng)用于中文語(yǔ)義識(shí)別中,如通過(guò)卷積神經(jīng)網(wǎng)絡(luò)、長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)算法,計(jì)算結(jié)構(gòu)復(fù)雜的中文語(yǔ)句的語(yǔ)義相似度或進(jìn)行中文同義詞判定等。
在后續(xù)的研究中,我們將考慮進(jìn)一步拓展現(xiàn)有的簡(jiǎn)體字?jǐn)?shù)據(jù)集,并構(gòu)建繁體漢字組成部件庫(kù),從多個(gè)角度豐富形似字的相關(guān)研究。