孫 龍,李 彥
(1.四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都 610065;2.四川大學(xué) 制造學(xué)院,四川 成都 610065)
一般而言,技術(shù)系統(tǒng)可提供具有人為效應(yīng)即所需功能,因此功能的概念對(duì)于確定產(chǎn)品的基本特性至關(guān)重要,被認(rèn)為是技術(shù)分析的基礎(chǔ)[1],而獲取文檔隱含的功能概念涉及到文檔語義技術(shù)[2]。為了有效表征文檔的語義信息,目前越來越多的研究開始聚集于基于語義元組模型的文檔結(jié)構(gòu)特征提取。一些研究中以SAO(subject-action-object)[3]或AO(action-object)[4]結(jié)構(gòu)表達(dá)功能信息。這種結(jié)構(gòu)可以使用文本挖掘技術(shù)提取。目前,大量研究采用了自然語言處理技術(shù)(NLP)進(jìn)行文本包含功能結(jié)構(gòu)元組(SAO,AO)的挖掘,并對(duì)提取的功能結(jié)構(gòu)元組進(jìn)行了廣泛應(yīng)用。如基于(SAO)結(jié)構(gòu)專利挖掘開發(fā)的半自動(dòng)構(gòu)建客戶作業(yè)圖的方法[5],通過功能結(jié)構(gòu)元組挖掘識(shí)別專利技術(shù)發(fā)展趨勢和新興技術(shù)[6]以及結(jié)合TRIZ趨勢分析確定可以轉(zhuǎn)讓的有前景的技術(shù)專利[7],利用功能結(jié)構(gòu)元組的語義專利檢索完成關(guān)鍵詞專利檢索[8]。
在詞匯模型(又稱詞袋模型)[9]中,其詞匯構(gòu)成是一個(gè)個(gè)孤立的詞,缺少上下文環(huán)境,難以解決歧義問題。而功能結(jié)構(gòu)元組由于有明確的主謂賓(SAO)或動(dòng)賓(AO)結(jié)構(gòu),一定程度上具備了上下文解釋的基礎(chǔ),有利于減少同形同義詞的歧義。同時(shí),提取的功能結(jié)構(gòu)元組(SAO)、(AO)中共同的Action可以更明確揭示出與主題概念S或O的關(guān)系,而且可以具體化為P&S模式[10]:“Problem問題”和“Solution解決方案”。
目前,SAO結(jié)構(gòu)提取研究有很大進(jìn)展,總體歸納起來有基于規(guī)則和基于統(tǒng)計(jì)兩種途徑。基于規(guī)則的方法主要采取人工(也可以是自動(dòng)學(xué)習(xí))建立的語言的規(guī)則集合,按照這些規(guī)則從語句結(jié)構(gòu)中抽取SAO。例如,文獻(xiàn)[11]通過LinkGrammer語法解析實(shí)現(xiàn)了SAO的抽取,文獻(xiàn)[12]根據(jù)stanford nlp設(shè)計(jì)了SAO解析規(guī)則,這些基于規(guī)則的SAO抽取方法基本上采取無監(jiān)督學(xué)習(xí)實(shí)現(xiàn)。相比監(jiān)督學(xué)習(xí)方式,其優(yōu)點(diǎn)是不用標(biāo)注大量的用于學(xué)習(xí)的語料,而且能夠很方便地通過規(guī)則的增刪修改控制抽取過程,從而修正結(jié)果實(shí)現(xiàn)SAO結(jié)構(gòu)提取。這種方法目前應(yīng)用較為普遍,但也存在一些缺點(diǎn),主要是設(shè)計(jì)建立抽取規(guī)則階段工作量大,而且受設(shè)計(jì)者主觀影響較大。
另一些研究是通過機(jī)器學(xué)習(xí)及統(tǒng)計(jì)技術(shù)來學(xué)習(xí)語句抽取,這些統(tǒng)計(jì)方法基本上采取了詞袋模式常用的支持向量機(jī)、條件隨機(jī)場以及共現(xiàn)算法來進(jìn)行實(shí)現(xiàn)。例如,文獻(xiàn)[13]中采取了支持向量機(jī),通過語句上下文、詞語距離以及句法特征來實(shí)現(xiàn)SAO抽取?;诮y(tǒng)計(jì)的方法可以通過樣本的學(xué)習(xí)去發(fā)現(xiàn)語料中的規(guī)律,而且一定程度上能夠減少主觀的判別失誤。但基于統(tǒng)計(jì)的方法需要對(duì)實(shí)體之間的關(guān)系定義進(jìn)行大量的人工標(biāo)注[14],概率模型、語言模型參數(shù)的準(zhǔn)確性直接依賴于語料的多少,而提取質(zhì)量的高低主要取決于概率模型的好壞和語料庫的覆蓋能力。同時(shí),由于基于統(tǒng)計(jì)的學(xué)習(xí)算法模型一般是黑箱,比較難以解釋。
為了提高功能結(jié)構(gòu)元組SAO或AO識(shí)別的準(zhǔn)確性,有必要將基于規(guī)則的方法與基于統(tǒng)計(jì)的方法相結(jié)合,發(fā)揮兩種方法各自的優(yōu)點(diǎn),具體思路是:
(1)為解決直接由原始文本識(shí)別功能結(jié)構(gòu)元組帶來的提取的功能結(jié)構(gòu)元組數(shù)量過大,矩陣稀疏的問題,利用基于統(tǒng)計(jì)textrank方法,先對(duì)文本進(jìn)行主題提取,獲取文檔關(guān)聯(lián)度最高的主題詞匯,過濾噪聲詞匯;
(2)按照基于規(guī)則的方式,通過詞法分析樹結(jié)構(gòu),提取文檔的功能結(jié)構(gòu)元組。針對(duì)工程技術(shù)知識(shí)文檔的功能結(jié)構(gòu)特點(diǎn),可以按照分析樹的結(jié)構(gòu),設(shè)計(jì)出一系列規(guī)則,對(duì)subject,action,object進(jìn)行識(shí)別,進(jìn)而抽取功能結(jié)構(gòu)元組;
(3)用第一步獲取的主題詞匯與文檔中提取的功能結(jié)構(gòu)元組進(jìn)行比對(duì)計(jì)算,保留關(guān)聯(lián)度高的功能元組,過濾掉關(guān)聯(lián)度低的功能元組。
整個(gè)過程如圖1所示。
圖1 功能結(jié)構(gòu)元組提取流程
在整個(gè)流程中,首先要解決的是從分析樹中提取功能結(jié)構(gòu)元組的算法。分析樹是一種有序的、有根的樹,根據(jù)上下文無關(guān)文法表示字符串的句法結(jié)構(gòu)。解析樹通?;谠~語結(jié)構(gòu)語法或依賴語法的依賴關(guān)系構(gòu)造??梢陨勺匀徽Z言語句的解析樹。比如將某防盜鎖技術(shù)文檔中的語句“在一側(cè)鎖芯體遭暴力破壞時(shí)即能主動(dòng)限制開鎖撥輪的旋轉(zhuǎn)開啟”進(jìn)行解析,將獲得如圖2所示的解析樹??梢钥闯?,解析樹每個(gè)節(jié)點(diǎn)要么是根節(jié)點(diǎn),要么是分支節(jié)點(diǎn),要么是葉節(jié)點(diǎn)。分支節(jié)點(diǎn)是連接到兩個(gè)或多個(gè)子節(jié)點(diǎn)的母節(jié)點(diǎn),葉節(jié)點(diǎn)是不支配樹中其他節(jié)點(diǎn)的終端節(jié)點(diǎn)。root是根節(jié)點(diǎn),NP和VP是分支節(jié)點(diǎn),“鎖芯體”(NN常用名字)、破壞(VV動(dòng)詞)、限制(VV動(dòng)詞)和開鎖拔輪(NR固有名字)都是葉節(jié)點(diǎn)。葉節(jié)點(diǎn)包含了句子的詞匯和標(biāo)記。在這個(gè)例子中,LCP(方位短語)是IP(簡單從句)和LC(方位詞)的父元素。子節(jié)點(diǎn)是至少有一個(gè)節(jié)點(diǎn)在其上面的節(jié)點(diǎn),由樹的一個(gè)分支連接。圖中DEG(助詞)即為DNP(由“的”構(gòu)成的表示所屬關(guān)系的短語)的子節(jié)點(diǎn)。
通過解析樹提取SAO或AO結(jié)構(gòu),文中是通過基于規(guī)則的方法,主要是建立產(chǎn)生式規(guī)則來進(jìn)行。當(dāng)前,上下文無關(guān)文法CFG一般由四元組(T,N,R,S)來表示:其中“終結(jié)符”T表示詞集,“非終結(jié)符”N表示語法成分。“終結(jié)符”T、“非終結(jié)符”N的交集為空集,T∩N=??!爱a(chǎn)生式”R表示規(guī)則集合,S為起始符。產(chǎn)生式規(guī)則集R形式化表示為(α,β)∈R,其中非終結(jié)符α∈N,β∈(T∪N)為終結(jié)符或字符串變量;通常更多地用α→β來表示產(chǎn)生式。
圖2 解析樹
比如,對(duì)于句法規(guī)則:
(1)S→NP VP;
(2)NP→n;
(3)VP→v VP。
若其對(duì)串“token/n token/v token/n”進(jìn)行解析,那么其結(jié)構(gòu)正好與SAO的subject,action,object實(shí)現(xiàn)一一映射。因?yàn)閷?shí)踐中,對(duì)工程技術(shù)文本的解析語法樹要比以上規(guī)則更加復(fù)雜,為了從其中有效地提取SAO或AO結(jié)構(gòu),需要從語句的詞法分析樹中尋找規(guī)律性的規(guī)則。從解析樹中的詞法規(guī)則看,一些工程技術(shù)文檔中部分可以通過模式匹配的方式去獲取功能結(jié)構(gòu)元組。一些信號(hào)詞匯,比如裝置、系統(tǒng)等名詞短語后面常跟subject元組,可以通過語法標(biāo)記來對(duì)這些匹配模式進(jìn)行泛化。通過識(shí)別名詞短語,并擴(kuò)展到其關(guān)聯(lián)動(dòng)詞,可以從語句中模式匹配出action并進(jìn)行抽取。同時(shí),結(jié)合語法解析樹的標(biāo)簽,一方面,可以將所在包含subject,action,object信息的淺層模式建立集合;另一方面,可將文法解析樹中的相關(guān)結(jié)構(gòu)模式組合成更通用的語法標(biāo)記模式,如…/NN+和/NN+/PP+/VP+/NN…等等。從語句分解的詞列中,可先分別設(shè)定subject,action,object的匹配規(guī)則,再進(jìn)行(SAO)或(AO)的識(shí)別。
F={f1,f2,…,fn}為文檔提取的功能結(jié)構(gòu)元組(SAO)或(AO);
S為語句,由詞列{w1,w2,…,wn}組成;
Key={key1,key2,…,keym}為關(guān)鍵動(dòng)詞(“采用”,“提高”……);
Rule={r1,r2,…,rl}為抽取的規(guī)則合集。
其中規(guī)則的表達(dá)樣例,為了簡化,僅將其中主要部分摘錄如下:
……
VP:V[-aux] and V[-key] +Np→Obj=N
NP VP:N VP→Sub=N
Sub V Obj→act=V
……
比如第一條,如果在動(dòng)詞短語中,名詞短語前接的動(dòng)詞不是助動(dòng)詞或信號(hào)動(dòng)詞,由此可以判斷該名詞短語為object。接下來的規(guī)則可以依此類推。通過判斷各詞匯成分在語法分析樹中的詞性及位置信息而獲得相應(yīng)SAO或AO的結(jié)構(gòu)信息。其關(guān)鍵算法圖解如圖3所示。
具體流程解釋:
(1)分詞后的詞列向量逐一生成語法解析樹;
(2)若存在關(guān)鍵指示性動(dòng)詞,在偽代碼中以[+key]表示,抽取出指示性動(dòng)詞后面的從句;
(3)對(duì)從句進(jìn)行遞歸解析,通過之前建立的規(guī)則,解析和識(shí)別其中的名詞短語NN、動(dòng)詞短語VP等等;
(4)根據(jù)相應(yīng)規(guī)則,分別識(shí)別出subject,object,action;
(5)根據(jù)識(shí)別出的短語,存入SAO或AO元組集中。
其算法的偽代碼如下:
圖3 從分析樹遞歸抽取功能結(jié)構(gòu)元組示意
Function extractSAO(parsetree)
For each subtree in parsetree
If pattern(subtree)∈VPrule
Obj=NP(subtree)
Act=V(subtree)
extractSAO(subtree)
Else if pattern(subtree)∈NPVPrule
Sub=Np(subtree)
Else
Add (Act,Obj) to FunTuple
Add (Sub,Act,Obj) to FunTuple
End if
End for在這段代碼中,使用了遞歸的方法對(duì)解析樹進(jìn)行分層解析,抽取SAO或AO功能結(jié)構(gòu)元組。其中pattern函數(shù)定義了匹配模式的規(guī)則,一般是通過對(duì)解析樹結(jié)構(gòu)和詞性進(jìn)行運(yùn)算組合來進(jìn)行設(shè)計(jì),公式舉例如表1所示。
表1 公 式
上述公式中V[-aux]表示動(dòng)詞V是非助動(dòng)詞,V[-key]表示動(dòng)詞V是非提示性動(dòng)詞。
獲取SAO或AO功能結(jié)構(gòu)元組集之后,接下來所需要做的就是根據(jù)文檔提取的特征詞對(duì)SAO或AO元組集合進(jìn)行過濾,去掉無意義的噪聲SAO結(jié)構(gòu)元組:{s·s∈SAO∪AO,w∈keyword|s∩w≠?}。
在完成對(duì)SAO或AO結(jié)構(gòu)抽取之后,下一步將進(jìn)行相似度計(jì)算。其方法主要就SAO或AO結(jié)構(gòu)詞匯與分類標(biāo)簽相似度的加權(quán)值計(jì)算,并按最短距離原則歸入相應(yīng)文檔類別。對(duì)功能元組的權(quán)重計(jì)算公式如下:
(1)
其中,Wfuni表示功能元組funi所占權(quán)重;freq(funi,j)表示功能元組funi在文檔j中出現(xiàn)的頻率;公式分母則為文檔j提取的各種功能元組的數(shù)量之和。
Sim(D,Ti)=∑Sim(Sj,Ti)×WSj,
Sj∈SAO∪AO
(2)
其中,Ti為分類標(biāo)簽;D為文檔;Sj為文檔中提取的功能元組;WSj為功能元組Sj所占權(quán)重。
在相似度距離計(jì)算出來之后,即可最近距離歸出相應(yīng)類別。
為檢驗(yàn)功能結(jié)構(gòu)元組的特征提取效果,本實(shí)驗(yàn)以從中國專利網(wǎng)下載的工程技術(shù)文檔為基礎(chǔ),以國際專利分類標(biāo)準(zhǔn)IPC的8個(gè)部類詞匯作為分類標(biāo)簽,按每個(gè)分類標(biāo)簽分別下載20份專利文檔,總共160份文檔進(jìn)行驗(yàn)證測試。提取出160份文檔中的功能結(jié)構(gòu)元組,根據(jù)計(jì)算的語義相似度將樣本文檔均歸屬到相應(yīng)類別。對(duì)每個(gè)文檔相應(yīng)的IPC類別標(biāo)簽,再計(jì)算出分類的混淆矩陣。同時(shí)采取TFIDF、TextRank算法對(duì)這160份文檔進(jìn)行特征提取和分類,將其主要分類指標(biāo)進(jìn)行對(duì)比,結(jié)果如表2所示。
表2 文本分類指標(biāo)對(duì)比
續(xù)表2
根據(jù)上面的數(shù)據(jù),建立對(duì)應(yīng)的直方圖,如圖4所示。
圖4 文本分類效果比較
從上面分析可以看出,對(duì)相同的文檔語料庫、分詞組件,基于功能結(jié)構(gòu)元組的文本特征提取方法對(duì)比基于詞匯的TextRank、TF-IDF等文本特征提取方法,其分類效果有明顯改善。
在歸納總結(jié)現(xiàn)有提取文本功能結(jié)構(gòu)元組方法的基礎(chǔ)上,探索將基于統(tǒng)計(jì)的方法和基于規(guī)則的方法相結(jié)合,先通過TextRank提取出的文檔特征詞過濾掉文檔中的噪聲和無意義的語句。再從過濾后的語句中,按照語法分析樹的層次,以遞歸方式提取文檔中的功能結(jié)構(gòu)元組。為更有效地提取語句中的功能結(jié)構(gòu)元組,從語句的詞法分析樹中尋找規(guī)律性的規(guī)則。通過模式匹配的方式去抽取功能結(jié)構(gòu)元組,并通過語法標(biāo)記來對(duì)這些匹配模式進(jìn)行泛化,并通過建立一系列產(chǎn)生式來定義提取規(guī)則。
經(jīng)驗(yàn)證,該功能結(jié)構(gòu)元組的文本特征提取方法,對(duì)比詞匯模型的分類方法,其類別查全率、查準(zhǔn)率、F1值的宏平均、微平均等指標(biāo)均有改善。