摘 要:在國家科技基礎條件平臺中如何建設漢語字詞之間的語義關系庫,并且利用初始的語義關系庫自動獲取句法模式和新的關系。使用了句法模式的概念,并提出了利用已有關系發現新模式、利用已有模式發現新關系的方法,創造性地設計相關模型并實現了一個中文語義關系知識庫系統。利用此系統結合自然語言處理相關技術,從搜狗語料庫和百度百科頁面文件中大規模自動化獲取了有效關系200多個,并從中提取了繼承、同義等有效的新關系1 000多條。實驗證明其效率達到約40%,主要取決于關系中查詢詞的距離取值和語料庫本身的性質。
關鍵詞:自然語言處理; 信息抽取; 語義關系抽?。?句法模式
中圖分類號:TP301.2 文獻標志碼:A 文章編號:1001-3695(2008)08-2295-04
Mutual-extraction between semantic relationships and
lexical patterns in natural language processing
LIANG Na1, GENG Guo-hua1, ZHOU Ming-quan2
(1. School of Information Science Technology, Northwest University, Xi’an 710127, China; 2. College of Information Science Technology, Beijing Normal University, Beijing 100875, China)
Abstract:This paper focused on an automatic approach to build a semantic relationship database in the national science and technology infrastructure platform, identified lexical patterns and extended new semantic relationships by existing ones from corpus. In fact there were a lot of potential relationships between words, and these words could be connected to a big network by them. So the problem was how to model this network and how to get relationships automatically. With the concept of lexical pattern, devised a new method: generalized new patterns form the existing relationships and generalized new relationships from existing patterns. This paper designed and realized a Chinese semantic relationships knowledgebase system. Using this system and NLP technology, extracted more than 200 effective relationships and more than 1 000 new relationships (such as inherit and synonym)from Sogou corpus and Baidu Baike. The experiment result shows that the precision of these relationships is around 40%, depends on the distance between the searching words and the type of articles in corpus.
Key words:natural language processing(NLP); information extraction; relation extraction; lexical patterns
0 引 言
自然語言處理是計算機科學領域與人工智能領域中的一個重要方向。實現人機間自然語言通信意味著要使計算機既能理解自然語言文本的意義,也能以自然語言文本來表達給定的意圖、思想等。前者稱為自然語言理解,后者稱為自然語言生成。然而這兩者都遠不如人們原來想象的那么簡單。造成困難的根本原因是自然語言廣泛存在的各種各樣的歧義性或多義性;自然語言的形式(字符串)與其意義之間是一種多對多的關系,且相互間存在大量的關系。
大約20世紀90年代開始,自然語言處理領域發生了巨大的變化。首先對系統輸入,要求研制的自然語言處理系統能處理大規模的真實文本,而不是如以前的研究性系統那樣,只能處理很少的詞條和典型句子;其次對系統的輸出,鑒于真實理解自然語言是十分困難的,對系統并不要求能對自然語言文本進行深層的理解,但要能從中抽取有用的信息,如自動提取索引詞、過濾、檢索、進行自動摘要等。
雖然上述新趨勢給自然語言處理領域帶來了成果,但從理論方法的角度看,由于采集、整理、表示和有效應用大量知識的困難,這些系統更依賴于統計學的方法和其他簡單的方法或技巧,如馬爾可夫模型、向量空間模型、TF-IDF算法等。這些統計學的方法和其他簡單的方法似乎也快達到它們的極限了。因此,近年來人們開始越來越重視字詞間語義關系的基礎工作,展開了大規模真實語料庫的研制以及大規模、信息豐富的詞典編制工作等。比如普林斯頓大學認知科學實驗室開發了一部在線詞典數據庫系統WordNet,將英文的單詞組織為同義詞集合,每一個集合表示一個基本的詞匯概念,并在這些詞匯概念間建立了多種詞匯語義關系。目前,WordNet被成功地用于詞義消歧、語言學自動處理、雙語及多國語機器翻譯、檢索系統等一系列語言工程[1]。
在WordNet的影響下,許多國家都已著手實施構造本民族語言的WordNet,我國也出現了CWB中文詞庫等一些手工建立的語義詞典。這些基礎性的工作為自然語言處理作出了很大的貢獻。但是必須看到,這些基礎性的工作也還是遠遠不夠的,它們僅僅是靜態的、最原始的數據,必須從大規模語料和詞典中獲取動態的字詞間關系,并且這個過程應當是自動化的、可自學習的。
綜合以上觀點,筆者認為,要取得新的更大的進展,僅靠目前已有的方法是遠遠不夠的。因此,在國家科技基礎條件平臺應用服務支撐系統中,本文將基于字詞間語義關系的推理方法與基于統計的方法結合起來,創造性地提出并實現了一個語義關系知識庫系統,包括基于句法模式的語義關系自動化發現等功能(本系統是基于中文的自然語言處理工作,本文所提到的字詞均指漢語字詞)。
1 語義關系和句法模式
1.1 字詞間的語義關系
語義關系是字詞之間具有的各種廣泛而大量的關系,所有字詞依靠關系構成一個巨大的語義網絡。
定義1 詞間關系 兩個以上的詞之間會有某種語義上的聯系,這里只研究詞之間的二元關系。設W是所有詞的集合,R是W上所有具有某種語義聯系的詞的偶對集合。顯然,R是W×W的一個子集,有RW×W。
例如,詞W1與W2是W中的兩個元素,若它們之間在語義上具有某種確定的關系R(如同義、反義等),則稱它們之間具有語義關系R,記為W1RW2。
本文定義的詞間主要的語義關系有:
a)Ris-a——從屬,即面向對象中的繼承—泛化關系,表示為Ris-a={(father,son)| father∈W∧son∈W∧Son is a kind of father}。說明:此關系為自反、反對稱、傳遞的,因此是W上的半序關系。
b)Rcomp——組合,表示整體與部分的關系,如計算機—內存,表示為Rcomp={(whole,part)|whole∈W∧part∈W∧part is a component of whole}。
c)Rattr——屬性,這里指一個詞描述了另一個對象的屬性,如葡萄—味道。
d)Rattr-v——屬性值,這里指一個詞作為描述另一個對象的屬性的值,如葡萄—酸甜。
e)Raction——動作,一個詞作為對象的某種操作,如狗—吠。
f)Rsynonym——同義,詞義相同或相近。
說明:此關系為自反、對稱、傳遞的,因此是W上的等價關系,所有的同義詞構成W上的一個劃分,將W劃分為若干個等價類。
g)Rantonym——反義,詞義相反或相對。
說明:此關系為反自反、對稱的。
h)Rgeneral——一般關聯,兩個或多個詞的某種關系,如水果—果脯。
說明:此關系為廣泛意義的關聯,所有未歸類為以上關系的二元集合均可視為這里的一般關聯。
以上對關系的幾種定義方法部分來自于面向對象思想,并且可以產生自動演繹、歸納等特性。這是現有的WordNet、CBW中文詞典等尚未做到的。將一個詞代表的具體東西看做一個對象,將一個詞代表的本體看做一個類,則詞與詞之間就會產生面向對象中的各種關系。最廣泛、最直接的關系是繼承、組合、關聯等。子類的一些特性可以從父類得到繼承,系統會自動演繹出子類的基本特性。同樣,系統也能歸納某父類下所有的子類字詞,如果它們都具有某種相同屬性詞或操作詞,那么這個詞就會自動上移到父類。
1.2 句法模式
句法模式是一種用來在語料庫中匹配句子、發現關系的語法規則。例如:“A是一種B”或“A是B的一種”,就是兩個用來發現繼承關系的模式。
本文中模式的書寫規則以正則表達式為基礎,略加修改,概述如下:
a)[ ],里面的詞描述了一個取值范圍,如[father]代表繼承關系中父類集合中的某個詞。
b)+,代表1或多個正好在它之前的那個字符,如A+代表A、AA、AAA等。
c)*,代表0或多個任意字符。
d)$,代表行結束符,如“。$”能夠匹配字符串“這是一個蘋果?!钡木湮?。此符號在后文中主要用來斷句。
e),代表AND關系,如[father N.]表示既符合父類又是名詞的一個取值。
f)|,代表OR關系,如[、|。]表示頓號或句號。
在語料庫中的一個實例:
S=軟玉主要是由透閃石、陽起石等組成的一種礦物。
——語料來自新華網
以上書寫規則對應的模式為
M=[wholeson]是由([part]、)+ [part]等組成的一種[father]
另外,模式也有好壞之分。通過好的模式可以發現新的正確的關系。比如通過以上模式發現了語料中的三個關系:Rcomp:軟玉—透閃石, 軟玉—陽起石;Ris-a:軟玉—礦物。
2 語義關系的自動獲取
2.1 問題陳述
定義2 詞是語義中代表某種概念實體的、可以獨立運用的最小單位。
定義3 句子是能表達一個完整的意思、由m個詞W與標點符號連接的有序集合,句尾一般使用句號、問號、省略號、感嘆號等結束,記為S={W|W1W2…Wm}。
定義4 文章是由n個句子S與段落標記組成的有序集合,記為A={S|S1S2…Sn}。
定義5 語料庫是由p篇不重復文章A組成的集合,記為D={A|A1A2…Ap}。
若已知:
a)自然語言中存在某些確定的詞間關系R1,R2, …,這里用Ri統一表示。
b)已有一些詞間關系Ri的子集Ri′,其中:Ri′Ri。
c)大規模語料庫D。
如何利用已知的Ri′和D擴充Ri′為Ri″,使得Ri′Ri″且Ri″/Ri趨向于Φ( 即如何利用已知的關系Ri′從D中得到盡可能多的未知關系)。
2.2 問題分析
既然R是詞間廣泛存在的某種關系,這種關系又是存在于自然語言中的本質屬性,那么R必然在自然語言中有所體現。一個比較具體的例子是:
現有大規模語料庫D1,保存有大量不同種類的常見文本。其中:句子S1,S2∈D1,且S1和S2的內容為
S1=20世紀20年代初,上海馬路各式交通工具混雜,據當時報紙報道,上海街頭“每天要通過大量各式各樣的車輛——汽車、卡車、電車、馬車、人力車、獨輪推車、手推車……以及成千上萬的行人”。
S2=最新與最舊的、最快與最慢的,以及最自由散漫的行人,并駕齊驅,蔚為大觀。
——《車影行蹤》,上海檔案信息網
若在分析此段語料之前,已有關于“車”的關系的記錄,保存在兩張表中,如表1、2所示。
表1 Word_basic相關詞synonymantonymgrammarexplain車車輛/N.(略.)新/舊A.(略.)快/慢A.(略.)………表2 Word_relations相關詞關系相關詞關系交通工具車Ris-a車馬路Rgeneral車汽車Ris-a車速度Rattr車電車Ris-a速度快Rattr-v車馬車Ris-a速度慢Rattr-v……可根據表中的數據,將隱藏在句子S1中的關系挖掘出來:
S′1=車輛——汽車、卡車、電車、馬車、人力車、獨輪推車、手推車…
從中可以看到一定的句法模式。事實上,設滿足一定的模式記為M,則從S1′中可推得:
M1 = [father]——([son]、)+[son]…
其中:+號代表1或多個在它之前的單詞。通過模式M1可以有效地發現新的關系,如(車輛,卡車)∈Ris-a等。
同理,可從S2中利用已有關系發現蘊涵的模式M2:
S2=最新與最舊的、最快與最慢的,以及最自由散漫的行人,并駕齊驅,蔚為大觀。
M2=(最[synonym1adj]與最[synonym1adj]的[、|,])+
可見,需要做的是找到某種算法,從語料庫D中自動化地得到有效的模式,再利用各種模式來發現更多詞間關系,從而擴充已有的關系集。
3 實現方法
3.1 系統設計
本系統分為語義關系數據庫、系統程序模塊組、大規模語料庫和應用程序接口四部分,如圖1所示。本文著重闡述的是系統程序模塊組中的關系發現維護組件和模式發現維護組件。
3.2 主要思路和使用的技術
1)斷句原理和標準
要對句子進行處理,首先要對大規模文本庫D中的文章進行斷句。本文對于文章的斷句提出了采用基于標點符號與句子長度相結合(防止句子過長或無標點)的方法。設文章A可被斷句為n個句子:A={S|S1S2…Sn},可作為斷句依據的標點符號集合為P,句子長度為L,最大長度為Lmax,則認為滿足以下條件的劃分為一次滿足要求的斷句:(i∈Γ) ($i∈P) ∨ L<Lmax。其中:$i為Si的最末一個字符;Γ為指標集合。2) 關于分詞技術
得到了句子,接下來就要對句子進行分析,分詞是其中必不可少的一個步驟。本系統使用基于統計學的二階馬爾可夫分詞模型進行分詞。一般來說,N階馬爾可夫模型就是假設當前詞的出現概率只與它前面的N個詞有關(馬爾可夫假設)。這樣,一個句子就構成了一條馬爾可夫鏈。重要的是這些概率參數都是可以通過大規模語料庫來計算的。比如三元概率有P(Wi|Wi-2Wi-1) ≈ count(Wi-2Wi-1Wi) /count(Wi-2Wi-1)。其中:count(…) 表示一個特定詞序列在整個語料庫中出現的累計次數。
這樣,若一個句子可以有多種劃分,本文認為滿足最大概率的劃分是最合理的分詞,即取P(W1, W2, W3,…, Wn)的最大值為最佳分詞結果。關于這方面詳細資料參見文獻[2]。
3)倒排索引思想在句子集上的應用
對于文檔集合上的關鍵詞檢索,最基本的查詢方法可以通過順序掃描文本的方式來實現,這種方法稱為順序查找。順序查找基本上無須對文檔集合中的信息作任何形式的預處理,查詢時直接在文檔中進行基于字符串的簡單匹配。這種方法相對比較簡單,容易實現,但當需要查找的文件大小達到一定數量級別時,其效率就非常低。正因如此,人們提出了各種不同的查找方法,倒排索引就是其中的一種方法。
索引是在搜索時使用到的一種特殊的數據結構。當文檔的數量相當龐大,并且這些文檔中的信息相對穩定時,建立索引可以大大提高搜索時的效率。索引的技術主要有以下三種:倒排索引、后綴數組和簽名文件。其中,倒排索引在當前大多數的信息檢索系統中得到了廣泛的應用,它對于關鍵詞的搜索非常有效。
倒排索引是一種面向單詞的索引機制。通常情況下,倒排索引結構由詞典和出現情況兩部分組成。對于每一個單詞,都會有一個詞匯列表記錄單詞在所有文檔中出現的位置,這些位置可以是單詞的位置(文本中的第幾個單詞),也可以是字符的位置(文本中的第幾個字符)。更多詳情參見文獻[3]。
以上文出現的兩個句子S1、S2簡單舉例說明。首先在對所有的文章進行斷句、分詞后,將所有句子的集合進行自動編號,得到關于句子(已分詞)的表,如表3所示。
表3 關于句子的表
S_IDsentence120世紀20年代初,上海馬路各式交通工具混雜,據當時報紙報道,上海街頭“每天要通過大量各式各樣的車輛——汽車、卡車、電車、馬車、人力車、獨輪推車、手推車……以及成千上萬的行人”2最新與最舊的、最快與最慢的,以及最自由散漫的行人,并駕齊驅,蔚為大觀3……設表3中一共有m個句子,利用此表中句子的編號,對每個出現過的詞都建立一個m位的二進制索引值,每個索引值的第i位以0(或1)表示這個詞沒有(或有)在第i篇出現過。比如車輛在句子S1中出現過,在S2中沒有出現過,則末兩位為01。結果如表4所示。
表4 實驗結果item_IDiteminverted_Index1車輛xxx…xxx012行人xxx…xxx113……這樣,在系統中去查詢一個單詞在哪些句子中出現過,則只需讀出這個單詞的索引,取出值為1的位號即可。
4) 句法模式發現方法
在實際使用中,設多個有一定關系R的詞記為Wi,則Wi∈R,將它們的集合記為Wsearch,使用它們作為關鍵詞進行查詢?,F需查詢它們同時在哪些句子中出現,則可將它們的反向索引相與:
result=ANDi∈Wsearchinverted_Indexi
其中:result為代表結果的二進制串,最后將其中值為1的序號讀出即可得到滿足要求的句子。
接下來,對找到的句子進行去噪預處理、詞性標注、關系代詞替換、冗余信息截去等工作后,即可得到一條模式。
3.3 算法設計與優化
1)建立句子的倒排索引表 對語料庫D中的所有文章A進行預處理、斷句、分詞,得到所有句子的集合S,并對S按照上文所說原理建立倒排索引。
2)兩個詞result計算 選定R,令初始的Wsearch只有兩個元素:Wsearch={W1,W2},W1,W2∈R。利用倒排索引表計算包含這兩個詞的所有的句子集合,其序號記為result1,2,則有
result1,2= W1∧W2
可以用同樣的方法計算R中的所有n×(n-1)/2個W對,得到n×(n-1)/2個result。但注意到同樣的關系集R里并不是任何兩個單詞都有關系R。因此將所有R上的詞以它們的關系連接為圖,記d為圖上兩點的距離。規定滿足條件d(W1,W2)=1的兩個詞才進行索引的并操作。此步驟實際是限制只對具有直接關系的單詞對進行查找,大大提高了效率。
3)多詞result合并 將所有具有一個相同W且值不為零的result進行兩兩相與操作,得到的結果中為1的位代表了三個相關單詞同時出現的句子。
將新的result重復進行上面的兩兩相與操作,以找出同時出現四個、五個、……相關詞的句子,直到result全為零,或只剩一個result為止。
4)從句子中提取模式 將所有的result進行整理,一一讀出對應的句子序號,記錄在一張初始表中。表中記錄了初步滿足要求的句子,表項主要有:
句子序號S_ID使用的關系R 已分詞的句子S′ 根據這張初始表,對找到的句子進行詞性標注、關系代詞替換、冗余信息截去等工作后,就可得到一條模式。將模式記錄在一張模式表中:模式序號M_ID模式M出現次數F原句ID列表在此同時注意合并同類模式并記錄相同模式出現的次數T。
由于自然語言的多樣性,在實際使用中這樣的處理也會得到大量無意義的模式,可以使用基于統計的方法來消歧,將出現概率極小的模式和關系視為無效。
設最小支持度是某模式出現的次數,記為supmin(F)。在本系統中,認為滿足supmin(F)>2 的模式為可信模式。
5)對每個關系集合Rj上的所有元素分別作如上步驟1)~4)的操作,找出所有的句子,并進行步驟4)的處理,得到模式。
在這里只是簡單介紹了字詞關系、倒排索引、句子模式等在句子集上應用的基本原理,系統中真正的細節會比此處介紹的復雜很多。
3.4 實現過程與結果分析
1)語料的選取 本系統采用了搜狗語料庫和百度百科作為對比。搜狗語料庫是搜狗lab提供的文本分類語料庫(精簡版),來源于Sohu新聞網站保存的大量經過編輯手工整理與分類的新聞語料與對應的分類信息,包括財經、IT、健康、體育、旅游、教育、招聘、文化、軍事九大類。精簡版共17 910個文件,平均每個文件占1~10 KB,共約2 500萬字,可以說是十分翔實豐富的,基本代表了一個完整覆蓋面廣的語料環境[4]。另外,還抓取了百度百科的17 000個網頁作為對比,平均每個網頁的大小與搜狗文本相近。百度百科是基于維基思想的在線百科辭典,采集它的網頁作為語料庫實驗材料有涵蓋面很全面、解釋性和陳述性的詞語多等特點,無疑是非常好的語料庫資源[5]。
2)初始語義關系庫的獲取 對于相關詞的語義庫,可以采用多種方法,如人工收集、結合程序自動導入已有關系列表等來完成初始關系庫的建立,為后面的自動化挖掘采集作準備。
3)實驗及結果分析 最終利用上文所講的方法編寫PHP程序進行了實現。模式和關系的發現經歷了如下過程:初步模式→有效模式→初步關系→有效關系。
首先從語料庫中得到了大量的初步模式,經過支持度計算篩選出有效模式;再將有效模式中的初步關系抽取出來;最后對關系進行人工鑒定,找出認為有效的關系。圖2顯示了在兩種語料庫中發現的關系和模式數量對比。
由圖2可見,用此方法產生了大量的無效初步模式。但使用經過自動統計支持度后得到的200多條有效模式,最終發現了一些關系,有效關系約1 000多條,它們的正確率在搜狗語料庫和百度百科中分別是40%和42%。由此可見這個方法是有一定效果的。
有趣的是,其中最有效的幾條模式是由標點符號發揮了重大作用,如模式[son、]+[son]等[*]的[father]。這樣簡短而有效的模式在系統中占了絕大多數。
4 結束語
現有的很多基礎知識庫或本體系統都是手工構建的,近年來有關如何自動或半自動地構建類似系統的研究越來越多。本文基于自然語言處理目前的現狀和不足,提出了建設基礎知識庫和語義庫的重要性及一個具體的半自動化構建方法,使得計算機實現語義級別的檢索和分類有了一條可行的途徑。經實驗,該方法能夠大大提高語義關系的構建效率,且在一定程度上能夠保證質量。
本文提出的語義關系模型只定義了幾種比較常見的關系,并且詞間關系沒有強弱權值。事實上在自然語言中,關系廣泛而大量地存在,許多關系無法精確分類,或是并不明顯。在系統的實現中,僅用二元關系去建模也顯露出一些缺點。今后的工作中將著重致力于語義關系模型的改進,包括基于統計的軟關系自動生成和詞間關系的模糊化等。
參考文獻:
[1]FELLBARUM C. WordNet: an electronic lexical database[M]. Massachusetts: MIT Press, 1998:1-22.
[2]梁南元. 書面漢語自動分詞系統——CDWS[J]. 中文信息學報, 1987,1(2):44-52.
[3]李棟, 史曉東. 一種支持高效檢索的實時更新倒排索引策略[J]. 情報學報, 2006,25(1):16-20.
[4]搜狗實驗室[EB/OL]. http://www.sogou.com/labs/.
[5]百度百科[EB/OL]. http://baike.baidu.com.
[6]RUIZ-CASADO M, ALFONSECA E, CASTELLS P. Automatising the learning of lexical patterns : an application to the enrichment of WordNet by extracting semantic relationships from Wikipedia[J]. Data Knowledge Engineering, 2007, 61(3):484-499.
[7]姚天順,朱靖波,張利,等. 自然語言理解:一種讓機器懂得人類語言的研究[M].2版.北京: 清華大學出版社, 2002.
[8]晉耀紅. HNC (概念層次網絡) 語言理解技術及其應用[M]. 北京: 科學出版社, 2006.
[9]XIA Sun, ZHENG Qing-hua. An approach to acquire semantic relationships between terms[C]//Proc of ACM Symposium on Applied Computing. New York: ACM Press, 2005:1630-1633.
[10]ZHUGE Hai, ZHENG Li-ping, ZHANG Nan, et al. An automatic semantic relationships discovery approach[C]//Proc of the 13 th Interna-tional World Wide Web Conference on Altermate Track Papers Pos-ters. New York: ACM Press,2004:278-279.
[11]ZHANG Kuo, WU Gang, LI Juan-zi. Logical structure based semantic relationship extraction from semi-structured documents[C]//Proc of the 15th International Conference on World Wide Web. New York: ACM Press, 2006:1063-1064.
[12]王永慶. 人工智能原理與方法[M]. 西安:西安交通大學出版社,1998.
[13]BERRY M J A, LINDFF G S. 數據挖掘技術[M]. 北京:機械工業出版社,2006.
[14]戴汝為. 社會智能科學[M]. 上海: 上海交通大學出版社, 2007.
[15]曹晶. 同義詞挖掘及其在概念信息檢索系統中的應用研究[D]. 長春:東北師范大學, 2006.
[16]饒弋寧,劉強,杜曉黎,等. 支持智能搜索的自擴展知識庫模型的研究和設計[J]. 計算機應用研究, 2006,23(6):223-226.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文