張云翔 饒竹一



摘 要:依存句法分析是分析句子各個成分之間相互支配與被支配關系,反映的是句子各成分的語義修飾關系。本文通過對句子中干擾成分過濾和專有名詞進行替換技術來提升依存句法分析的準確率,然后對依存句法結構進行抽取與調整,并引入基本語義判別模型抽取句子的基本語義結構,通過基本語義結構的各個修飾成分進行調整得到句子的首層語義結構,然后利用首層語義結構中的每個詞的修飾成分遞歸對句子所有成分進行調整,從而得到整個句子的語義層次結構。得到了句子的首層語義結構與嵌套語義結構,便可以從各個層次分析句子蘊含的語義,為準確的把握用戶表達的需求,理解用戶的真實意圖打下扎實的基礎。
關鍵詞:語義分析;依存分析;專有名詞替換;首層語義;嵌套語義;語義層次;
引言
語義指語句包含的概念和意義,語義不僅表述事物的本質,還表述事物之間的因果、施事和邏輯關系。語義層次指的是語句中語義的嵌套關系和修飾關系。句子語義層次識別是發現句子的基本含義和嵌套語義的過程。通過句子語義層次識別能夠讓機器清楚的知道用戶各層次的語義關系,從而準確的把握用戶的需求,更加透徹的理解用戶的真實需求。
目前國內外針對語義分析的研究方法大致可以分為:基于詞語語義知識規則(如語義詞典、語言知識庫、本體庫等)的語義分析、基于統計的語義分析和基于機器學習的語義分析以及多種方法結合的分析方法。文獻[1]和文獻[2]是基于統計的思路分析文本表達的語義信息。此外董振東構建的知網知識庫[ ],是一個以漢語和英語的詞語所代表的概念為描述對象,以揭示概念與概念之間以及概念所具有的屬性之間的關系為基本內容的常識知識庫。國外經典的框架語義學 [9]是美國菲爾墨提出的一種經驗主義語義學,它提供了描寫詞語意義和語法結構意義的一種途徑。
雖然目前語義分析技術較多,但是幾乎都是針對句子的語法成分或句法結構 [6]進行分析,對于嵌套句或復雜語句結構的理解存在一定的缺陷。因此準確的獲取句子的語義層次具有重要的研究意義。本文一方面利用干擾詞過濾和專有名詞替換方法來處理句子中的特殊符號從而提升依存分析的準確率,另一方面基于依存分析得到的依存句法結構,對其進行抽取與調整,得到句子的語義層次結構。語義層次結構反映了句子各個層次的語義成分組成方式,能夠準確的把握句子的各層次語義和真實意圖。
1.語義層次識別系統介紹
語義層次識別整體流程如圖1所示,在進行依存分析前,首先對句子進行干擾成分過濾和專有名詞替換的預處理操作,排除進行依存分析時受到句子中特殊字符和數字的干擾導致依存句法結構錯誤,從而提升依存分析的準確率。在得到句子依存句法結構后結合訓練得到的基本語義判別模型提取句子的首層語義結構,再對首層語義中每個節點的修飾成分進行抽取與調整,得到節點與修飾關系之間的語義層次關系,再對每個子節點抽取其修飾成分并遞歸進行調整,直到句子中所有節點都處理完畢為止,這樣便得到句子的語義層次結構,也得到句子的首層語義結構和嵌套語義結構。
1.1術語定義
① 基本語義:指不包括嵌套成分和修飾成分的簡單句。
② 專有名詞:指具有典型規則的英文符號或數字組成的實體名詞,如身份證號、網址、郵箱、IP地址等。
③ 核心節點:指依存關系中的核心關系所代表的詞語。
④ 關鍵節點:指當前語義層次中基本語義結構中包含的節點,不包括通過依存關系調整層次后上移的節點。
⑤ 父節點:指當前詞語的依存關系指向的詞語。
⑥ 子節點:指依存關系中所有指向當前詞語的詞語。
1.2 預處理模塊
本文提出一種對句子干擾成分過濾和句子專有名詞進行替換的預處理技術來提升依存分析的準確率,首先利用專有名詞規則庫(專有名詞規則庫是事先整理好的關于各種類型專有名詞的匹配規則)對句子進行掃描,提取出句子中包含的各類型專有名詞成分,然后對句子中的干擾符號(通過干擾符號庫識別)進行過濾。具體步驟如下:
a.掃描句子中每個字符判斷是否是干擾成分(干擾成分通常指表情符號,無意義的符號,通過干擾符號表來進行匹配識別);
b.將句子中掃描出的干擾成分進行刪除;
c.利用專有名詞識別規則對句子中的專有名詞進行識別;
d.將句子中的專有名詞替換為專有名詞類型名;
e.通過專有名詞在句子中的前后詞判斷替換后的句子結構是否存在歧義;
f.若替換后的句子存在歧義,則還原成刪除干擾成分后的結構;
1.3 基本語義判別模型
本文采用SVM分類器來對句子中每個詞是否屬于基本語義進行判斷,以詞的詞性以及依存關系和子節點依存關系構成輸入向量,通過訓練用例對句子基本語義結構進行學習,得到基本語義判別模型,主要流程如圖2所示。具體步驟如下:
a.對訓練用例進行依存分析得到依存句法結構;
b.將訓練用例中每個詞的詞性和依存關系以及子節點依存關系構成輸入向量
c.利用SVM分類器(也就是本發明中基本語義判別模型所使用的分類器)對輸入向量進行訓練學習;
d.對得到的判別模型進行測試、調優;
e.得到判斷句子中每個詞是否是基本語義的判別模型。
1.4 首層語義抽取模塊
首層語義是句子的主要含義表現,因此即要準確的獲取關鍵詞語又要保留特定的表達方式才能準確的反映句子的含義。本文首層語義抽取流程如圖3所示,通過依存句法結構和基本語義判別模型抽取句子的基本語義結構,再對基本語義結構中的詞提取其子節點,并根據子節點詞性和節點間的依存關系對句子語義結構進行調整,進而得到句子的首層語義結構。具體步驟如下:
a.遍歷整個句子的依存句法結構,抽取首層語義中每個節點的子節點。
b.若首層語義中的節點有子節點則繼續下面的步驟,若沒有子節點,則設為葉子節點。
c.對子節點詞性進行判斷,若為疑問詞則節點上移一層,若為介詞,且介詞的介賓結構不做狀語,則該節點上移一層,并保持原句子順序不變
d.對子節點依存關系進行判斷,若為定中關系且兩個節點在原句中連續(即定語詞和定語修飾的詞中間不包含其它詞),則進行合并,若不連續,則需根據不連續的原因判斷是否合并,若由于多個定中子節點導致不連續或者定中嵌套狀中導致不連續則合并,反之不合并。若為右附加關系,則節點上移。
1.5 遞歸調整模塊
遞歸調整模塊是在首層語義的基礎上對首層語義的各個修飾成分進行分析和調整,從而得到整個句子的語義層次的過程,遞歸調整模塊流程如圖4所示。首先對首層語義中的非關鍵節點的子節點的修飾成分直接按從右到左的順序層次展開,而對關鍵節點的子節點結構進行子句判斷,若子節點構成嵌套子句,則以該子句為基本語義進行上述第3步操作,若不構成子句,若有子節點,則對子節點結構進行調整,若沒有子節點,則設為葉子節點。對所有的子節點遞歸進行同樣的處理,直到句子所有成分都處理完成為止。
2.實驗結果與分析
本文用500句不同數據源的測試語句進行測試,其中聊天語句200句、新聞中的語句200句、經典文獻中的語句100句。對測試語句進行基于依存分析的語義層次識別方法后得到句子的語義層次,然后由人工審核測試效果。測試結果如表1-3所示
從上面三個表格可以看出新聞和文獻的準確率要比聊天語句的準確率明顯要高,通過分析得到,這是由于新聞和文獻的表達較規范,進行依存分析得到的依存句法結構準確率明顯要高。此外通過排除依存分析錯誤干擾的情況下,準確率都達到了96%以上,說明大部分的錯誤都是來自于依存分析出錯的影響,因此只要提升依存分析的準確率就可以明顯提升語義層次識別的準確率。
3.結論
本文采用干擾符號過濾和專有名詞替換的方法來改進依存分析對特殊符號效果不好的影響,并在依存分析的基礎通過對依存句法結構進行首次語義抽取和遞歸調整策略得到句子的語義層次結構。實驗證明,在不同數據源的測試語句進行測試均取得較好的效果。
由于時間以及實驗環境的限制,本文提出的語義層次識別方法還有改進的地方,大規模測試數據的驗證還需要一個過程。因此本文的后續工作還包括:尋找更準確的依存分析算法作為技術支持或尋找新的句法分析策略,優化遞歸調整策略,構建自動校驗的機制并收集整理大規模的樣本數據。
參考文獻:
[1] 李世齊.面向文景轉換的中文淺層語義分析方法研究[D].哈爾濱:哈爾濱工業大學,2011.
[3] 李軍輝.中文句法語義分析及其聯合學習機制研究[D].蘇州:蘇州大學,2010.
[4] NirenburgS,Raskin V. Ontological semantics [M].Cambridge: MIT Press,2004.
[5] 董振東.語義關系的表達和知識系統的構造 [J].語言文字應用,1998 (3):76-82.
[6] 李正華.依存句法分析統計模型及樹庫轉化研究 [D].碩士學位論文.哈爾濱工業大學.2008.
[9] Fillmore C J. Frames and semantics of understanding [J]. Quaderni di Semantica, 1985,6(2):222-254.
[10] 付國宏. 漢語句法歧義消解的統計方法研究. 哈爾濱工業大學博士論文,2001.
[11] 趙軍,黃昌寧. 漢語基本名詞短語結構分析模型. 計算機學報,1999;22(2):136-141.
[12] 周強,黃昌寧. 基于局部優化的漢語句法分析方法.軟件學報,1999;10(1):4-6.
[13] 徐艷華. 現代漢語實詞語法功能考察及詞類體系重構 [D]. 南京:南京師范大學,2006.