劉運通,梁燕軍
(安陽師范學(xué)院 計算機與信息工程學(xué)院,河南 安陽455000)
為了更好地進(jìn)行自然語言處理,語義的作用越來越被研究者們所重視。Wordnet、Framenet、Hownet、中文概念詞典CCD、Chinese FrameNet(CFN)、同義詞詞林等詞匯語義知識庫先后被構(gòu)建出來,作為語義分析的基礎(chǔ)性資源,維基也被用作語義計算的網(wǎng)絡(luò)數(shù)據(jù)資源。許多學(xué)者對語義關(guān)系計算也做了研究:文獻(xiàn) [1]研究了5 種基于Wordnet的詞匯語義相關(guān)度計算方法;文獻(xiàn) [2]研究了基于維基百科的文章網(wǎng)絡(luò)和分類樹,進(jìn)行詞匯語義關(guān)聯(lián)的計算方法;文獻(xiàn) [3]研究了基于維基鏈接的詞匯最近語義關(guān)聯(lián)度的計算方法;文獻(xiàn) [4]研究了在Hownet表達(dá)漢語知識的基礎(chǔ)上,改進(jìn)語義相關(guān)度的計算模型;文獻(xiàn) [5]研究了基于Wordnet的詞匯相關(guān)度計算方法;文獻(xiàn) [6]研究了不同語義相關(guān)計算方法的計算效果評價方法。還有許多學(xué)者利用語義信息來解決自然語言理解中的部分難題:文獻(xiàn)[7]研究了利用語義詞典Web挖掘語言模型的無指導(dǎo)譯文消歧;文獻(xiàn) [8]研究了基于北京大學(xué)中文網(wǎng)庫的語義角色分類;文獻(xiàn) [9]研究了基于淺層句法分析的中文語義角色標(biāo)注。
由于自然語言擁有隱含、多變、數(shù)量龐大的語法規(guī)則,使得研究人員很難將語義分析與語法分析有機地結(jié)合起來,而當(dāng)前的大多數(shù)研究,主要是利用語義信息來解決自然語言處理中的部分難題,還沒有一個比較成熟、且有廣泛影響的基于語義分析的自然語言處理模型。
為了解決這個問題,本文在文獻(xiàn) [10-12]中提出了一個自然語言語義計算模型,并對該模型做了探索性的研究,通過構(gòu)造一個文法,來描述普通的中文語句,并研究了模型的求解方法和語義消歧方法。這個模型及其求解方法將語法分析、語義分析、語義消歧有機地結(jié)合起來,初步形成了一個較為系統(tǒng)的自然語言處理語義分析研究的新思路。然而,該文法中的語法規(guī)則較多,形式較為復(fù)雜,導(dǎo)致計算復(fù)雜度較高。為了降低模型求解時的計算復(fù)雜度,對該文法進(jìn)行了化簡,構(gòu)造了一個更為簡潔的文法規(guī)則,并通過實驗,進(jìn)行模型求解,比較簡化前后的兩個文法的計算效果。探索了文法化簡的方法和思路,為更高效的模型求解方法研究做了必要的技術(shù)儲備。
假設(shè)一個語句 (CS)中的任意實詞Wi(除去謂語中心詞)均語義修飾于另外一個實詞WGi,并用函數(shù)Rel(Wi,WGi)來表示其語義相關(guān)度。假設(shè)V 是謂語中心詞,S是V的施動者,O 是V 的承受者,則語句的語義相關(guān)度fAi可以下面的表達(dá)式來計算
根據(jù)語義修飾目標(biāo)的不同,每個語句可能有多個語法分析方案;遵循少量的語法規(guī)則,可以 “窮舉”出所有可能的語法分析方案。
一個語句的多個語法分析方案如圖1所示。
圖1 一個語句的多個語法分析方案
模型求解基本規(guī)則:fAi值最大的語法分析方案Ai是符合語義邏輯的語法分析方案。
模型求解過程主要有兩個階段:語法分析階段、語義分析階段。
在語法分析階段:由于自然語言具有隱含、多變、數(shù)量龐大的語法規(guī)則,任何人也不可能窮舉出所有的語法規(guī)則。
假如我們換一個思路,假設(shè)自然語言無需遵守任何語法規(guī)則。則一個包含n個詞匯的語句,根據(jù)每個詞匯語義修飾目標(biāo)的不同,由于詞匯不能修飾自身,則理論上共有(n-1)n種不同的語法分析方案,則可以按照式 (1)計算出每個語法分析方案的語義相關(guān)度,選擇出最佳結(jié)果,就可實現(xiàn)模型求解。但其計算復(fù)雜度屬于指數(shù)級別,實踐中根本不可行。
另外,對于某種語法分析方案來說,即使計算出的語義相關(guān)度值最大,但由于該語法分析方案可能會違背 “自然語言必須遵守的某些語法規(guī)則,是明顯違背語義邏輯的”,必須加以排除。
因此,我們在語法分析階段,引入極少量、最常見、最普適的語法規(guī)則,構(gòu)建一個文法,依據(jù)這個文法,進(jìn)行語法分析,排除明顯不可能的語法分析方案;同時也可以極大程度地降低模型求解的計算復(fù)雜度,將其降低到實踐可行的地步,具體方法見文獻(xiàn) [10]。
在語義分析階段:忽略其它繁瑣、多變、不重要的語法規(guī)則,用 “窮舉法”生成所有 “符合普適語法規(guī)則”的語法分析方案,并通過語義相關(guān)度計算,來選擇最佳結(jié)果,從而進(jìn)行模型求解。
這種方法,就可以將語法分析、語義分析、語義消歧有機地結(jié)合起來,而所構(gòu)造的文法,在整個模型求解過程中起著至關(guān)重要的作用。
我們課題組在文獻(xiàn) [10]中已經(jīng)設(shè)計出了一個文法,用來描述自然語言。根據(jù)語義結(jié)構(gòu)的復(fù)雜程度,將語句劃分為兩個層次:
(1)簡單子句:沒有從句的語句CS,其文法規(guī)則見表1 (不包含規(guī)則L→CS)。
(2)復(fù)雜句:包含從句的語句CS,其文法規(guī)則見表1;規(guī)則L→CS意味著一個簡單子句可以作為一個復(fù)雜句中任意成分,實現(xiàn)了對簡單句遞歸,因此可以描述復(fù)雜句。
模型求解時,可以采用自底向上的簡單子句歸結(jié)法,具體細(xì)節(jié)參見文獻(xiàn) [10];在進(jìn)行簡單子句的歸結(jié)時,必須進(jìn)行CYK 算法[13]的運算,以識別符合文法G1(不包含規(guī)則L→CS)的簡單子句;而這些規(guī)則卻不能直接進(jìn)行CYK算法運算,必須將文法G1的所有規(guī)則轉(zhuǎn)化為滿足喬姆斯基范式的規(guī)則集合,經(jīng)過我們轉(zhuǎn)換后,新文法規(guī)則數(shù)量有236條之多,規(guī)則數(shù)量比較多,增加了計算復(fù)雜度。更加復(fù)雜的是,在歸結(jié)后,還需要驗證新語句是否滿足文法G1,還要進(jìn)行一次CYK 算法的運算。
為了簡化語法分析過程,我們對文法G1進(jìn)行了簡化。其思路如下所示。
表1 文法G1 的內(nèi)容
(1)忽略S、O 的區(qū)別,僅用一個文法符號R (后文稱為主題詞)表示這兩種情況;S 與O 在語義計算時加以區(qū)分;
(2)忽略L中AA、PD、AB的區(qū)別,僅用一個文法符號L;在語義計算時,再對L進(jìn)行AA、PD、AB的劃分;
(3)將n、w、vad歸為一類,僅用一個文法符號w 表示這3種情況,在語義計算時,再對其進(jìn)行區(qū)分;
(4)將wb、wm、we歸為一類,僅用一個文法符號wb表示這3種情況,并且僅使用1條文法規(guī)則 (L→wbw)來描述。
簡化后的文法規(guī)則G2見表2。
表2 文法G2 的內(nèi)容
在CYK 算法計算前,需要把文法G2的所有規(guī)則轉(zhuǎn)化為滿足喬姆斯基范式的規(guī)則集合,經(jīng)過我們轉(zhuǎn)換后,新文法規(guī)則數(shù)量有55 條,下降約80%。因此可以有效地降低“語法分析”的計算復(fù)雜度。
依據(jù)文法G1進(jìn)行語義計算,從而進(jìn)行模型求解的方法有以下幾個步驟:
(1)簡單子句歸結(jié)過程:找出語義相關(guān)度最佳的簡單子句,反復(fù)歸結(jié),求出最佳歸結(jié)順序。在計算簡單子句的最佳語義相關(guān)度的過程中,確定每個詞匯的最佳語義修飾目標(biāo)。具體內(nèi)容在文獻(xiàn) [10]中有詳細(xì)的論述。
(2)簡單子句最佳內(nèi)部結(jié)構(gòu)的分析:先將簡單子句轉(zhuǎn)化為簡單語義單元,在用簡單語義單元語義修飾關(guān)系圖模型進(jìn)行語法分析和語義消歧。具體內(nèi)容在文獻(xiàn) [12]中有詳細(xì)的論述。
依據(jù)文法G2進(jìn)行的語義計算時,主要的步驟與上述的過程一致。這里不再引用。差別在于:文法G2將AA、PD、AB的劃分等內(nèi)容,放在 “語義分析”的過程中,用語義計算來代替語法分析。
對L進(jìn)行語義計算時,需要根據(jù)語義邏輯,將L 劃分為AA、PD、AB等幾部分,劃分方法見表3 (句型中R、V的位置已選定)。
表3 L的劃分方法
例如,在語義計算時,已經(jīng)確定簡單子句的句型是CS→LRLRLVL,則根據(jù)語義邏輯,句型中第2個L就應(yīng)當(dāng)被劃分為如下的AA、PD、AB這3部分,并與其修飾的R 或V 組成一個整體,該整體被稱為 “簡單語義單元”。簡單語義單元的語法分析和語義消歧方法,在文獻(xiàn) [12]中有詳細(xì)的論述。
L的劃分方法如圖2所示。
圖2 L的劃分方法
對L (假定L包含p個詞)進(jìn)行AA\PD\AB的劃分時,根據(jù)表3,其劃分位置有3種情況:
(1)無需劃分:當(dāng)L僅包含PD時;
(2)一個劃分位置:L包含AA|PD或PD|AB時,共有p+1個位置可供選擇,p+1種劃分方法;
(3)兩個劃分位置:L包含AA|PD|AB時,共有p+1個位置可供選擇,有 (p+1)*p種劃分方法。
針對這多種劃分方法,用式 (1)算出幾部分的語義相關(guān)度的值,并求總和,選擇總和最佳的劃分方法即可。
本文的實驗中,以Hownet作為詞匯語義計算時所依據(jù)的資源。選取200 個語句,依據(jù)文法G1和文法G2,分別進(jìn)行模型求解的對比實驗,具體情況如下 (實驗環(huán)境為windows xp;CPU:Xeon E5-2403,2GHz;Mem:8G)。
根據(jù)語句的長度 (按照詞匯個數(shù)計算)進(jìn)行分組,共分為8組,表4列出了依據(jù)文法G1和文法G2進(jìn)行模型求解所需的時間。
表4 兩個文法的求解時間對比
G2的平均用時/G1的平均用時如圖3所示。
圖3 G2 的平均用時/G1 的平均用時
顯然,語句的長度越長,包含的簡單子句也越多,求解時所需的時間也越長,文法G2的時間效率也越高。
在正確率對比實驗中,有以下幾類情況,如表5所示:
(1)SVO 選擇的正確率 (包括簡單子句內(nèi)的SVO 選擇),其對比如圖4所示;
(2)簡單子句所轄范圍的正確率,其對比如圖5所示;
(3)簡單子句歸結(jié)順序的正確率,其對比如圖6所示;
(4)L中AA|PD|AB劃分的正確率,其對比如圖7所示;
(5)所求出的語義修飾目標(biāo)的正確率,其對比如圖8所示。
表5 正確率對比情況/%
圖4 SVO 的正確率對比
圖5 簡單子句范圍的正確率對比
圖6 簡單子句歸結(jié)順序的正確率對比
圖7 L劃分的正確率對比
圖8 語義修飾目標(biāo)的正確率對比
從實驗情況可以看出,文法G2的求解過程相對于文法G1,有以下幾個特點:
(1)時間效率得到了較大程度的提升;
(2)各項正確率均有所下降,但下降程度并不大;其主要原因在于文法G2的規(guī)則被大幅精簡,語法描述的準(zhǔn)確性下降,導(dǎo)致語法分析階段的準(zhǔn)確度下降,后期的語義計算,并不能完全彌補 “語法分析精度下降”的損失;
(3)綜合來看,依據(jù)文法G2進(jìn)行模型求解,是一種“準(zhǔn)確度損失”不大、更為快捷、效率更高的語義計算方法。
本文構(gòu)造了一個更為簡潔的文法規(guī)則,依據(jù)該文法規(guī)則,可以進(jìn)行語義計算和語義模型求解;通過實驗,比較簡化前后兩個文法的計算效果;探索文法化簡的方法和思路,研究在文法化簡過程中,文法化簡與 “降低時間復(fù)雜度”和 “準(zhǔn)確度下降”等問題之間的關(guān)系,為構(gòu)造出更簡單的文法和更快捷的模型求解方法做了探索。但在論文的研究中,實驗數(shù)據(jù)量較小,語義計算時所依據(jù)的詞匯語義庫的語義信息還不夠細(xì)致,不能夠完全滿足語義計算的需要,下一步研究中,需要增加實驗數(shù)據(jù),構(gòu)建語義信息更準(zhǔn)確、語義粒度更小的詞匯語義庫作為語義計算的依據(jù)。
[1]Alexander B,Graeme H.Evaluating wordnet based measures of lexical semantic relatedness[J].Computations Linguistics,2009,32 (1):13-47.
[2]SUN Chenchen,SHEN Derong,SHAN Jing,et al.WSR:A semantic relatedness measure based on wikipedia structure[J].Chinese Journal of Computers,2012,35 (1):2361-2370 (in Chinese).[孫琛琛,申德榮,單菁,等.WSR:一種基于維基百科結(jié)構(gòu)信息的語義關(guān)聯(lián)度計算算法 [J].計算機學(xué)報,2012,35 (1):2361-2370.]
[3]Milne D,WittenI H.An effective,low-cost measure of semantic relatedness obtained from Wikipedia links [C]//Proceedings of the 23th Association for the Advancement of Artificial Intelligence,2008:25-30.
[4]ZHONG Maosheng,LIU Hui,LIU Lei,et al.Method of semantic relevance relation measurement between words[J].Journal of Chinese Information Processing,2009,23 (2):115-122 (in Chinese).[鐘茂生,劉慧,劉磊,等.詞匯間語義相關(guān)關(guān)系量化計算方法[J].中文信息學(xué)報,2009,23 (2):115-122.]
[5]Mohamed AHT,Mohamed BA,Abdelmajid BH.A new semantic relatedness measurement using WordNet features [J].Knowledge and Information Systems,2013 (8):1-31.
[6]Felice Ferrara,Carlo Tasso.Evaluating the results of methods for computing semantic relatedness [C]//14th International Conference on Intelligent Text Processing and Computational Linguistics,2013:447-458.
[7]LIU Pengyuan,ZHAO Tiejun.Unsupervised translation disambiguation by using semantic dictionary and mining language model from Web [J].Journal of Software,2009,20 (5):1292-1300 (in Chinese). [劉鵬遠(yuǎn),趙鐵軍.利用語義詞典Web挖掘語言模型的無指導(dǎo)譯文消歧 [J].軟件學(xué)報,2009,20 (5):1292-1300.]
[8]YANG Min,CHANG Baobao.Semantic role classification based on Peking university Chinese NetBank [J].Journal of Chinese Information Processing,2011,25 (6):3-8 (in Chinese).[楊敏,常寶寶.基于北京大學(xué)中文網(wǎng)庫的語義角色分類 [J].中文信息學(xué)報,2011,25 (6):3-8.]
[9]WANG Xin,SUN Weiwei,SUI Zhifang.Research on Chinese semantic role labeling based on shallow parsing [J].Journal of Chinese Information Processing,2011,25 (1):116-121 (in Chinese).[王鑫,孫薇薇,穗志方.基于淺層句法分析的中文語義角色標(biāo)注研究 [J].中文信息學(xué)報,2011,25 (1):116-121.]
[10]LIU Yuntong,LIANG Yanjun.K-pruning algorithm for semantic relevancy calculating model of natural language [J].Computer Engineering and Design,2013,34 (8):2939-2943(in Chinese).[劉運通,梁燕軍.自然語言語義相關(guān)度計算模型的k 枝剪求解法 [J].計算機工程與設(shè)計,2013,34(8):2939-2943.]
[11]LIU Yuntong,XIONG Jing.An algorithm for parsing the simple semantic units based on the semantic relevancies [J].International Journal of Applied Mathematics and Statistics,2013,47 (17):372-379.
[12]LIU Yuntong,SUN Hua.Word sense disambiguation for the simple semantic units based on dynamic programming [J].Computer Engineering and Design,2014,35 (4):1480-1485(in Chinese).[劉運通,孫華.基于動態(tài)規(guī)劃的簡單語義單元詞義消歧 [J].計算機工程與設(shè)計,2014,35 (4):1480-1485.]
[13]LI Yongliang,HUANG Shuguang,LI Yongcheng,et al.Improved CYK algorithm based on shallow parsing [J].Journal of Computer Applications,2011,31 (5):1335-1338 (in Chinese).[李永亮,黃曙光,李永成,等.基于淺層剖析的CYK 改進(jìn)算法 [J]. 計算機應(yīng)用,2011,31 (5):1335-1338.]