汪平仄,曹存根,王 石
(1. 中國(guó)科學(xué)院 計(jì)算技術(shù)研究所,北京 100190)(2. 中國(guó)科學(xué)院大學(xué),北京 100049)
任何概念詞都有一定的語(yǔ)義,其直接表達(dá)語(yǔ)義的能力非常弱,因此我們必須借助其他類型的知識(shí)來(lái)進(jìn)一步表達(dá)或者刻畫(huà)它所蘊(yùn)涵的語(yǔ)義。概念的屬性就是一種此類的知識(shí)。
一般認(rèn)為,屬性是一種概念內(nèi)涵的載體。一個(gè)屬性描述了概念的一個(gè)特征或性質(zhì)。屬性具備描述概念和鑒別概念的功能,通過(guò)屬性,我們可以區(qū)分不同的概念,發(fā)現(xiàn)它們之間的差異。屬性在文本中表現(xiàn)為不同的屬性名稱。屬性名稱是表示屬性的專有名詞,大多數(shù)屬性名稱都能起到見(jiàn)名知義的作用。
在本文中,屬性名稱也稱屬性詞;在不致混淆的情況下,我們可能會(huì)直接使用屬性或?qū)傩栽~來(lái)簡(jiǎn)稱屬性名稱。
中文屬性名稱主要包括數(shù)量型、定性型、角色型三種類型[1]。目前的屬性名稱獲取依據(jù)語(yǔ)料數(shù)據(jù)的來(lái)源,主要包括基于結(jié)構(gòu)化數(shù)據(jù)源的提取,如Web查詢?nèi)罩綶2];基于半結(jié)構(gòu)化的Web網(wǎng)頁(yè)的提取,如從網(wǎng)頁(yè)表格或表單中提取[3],從Wikipedia Articles中提取[4];以及基于多數(shù)據(jù)源的提取[5-6]。基于結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)源的方法因其語(yǔ)料結(jié)構(gòu)規(guī)整簡(jiǎn)短,具有一定的規(guī)律性,針對(duì)性強(qiáng),主要采用弱文法和統(tǒng)計(jì)的方式進(jìn)行提取,具有較高的準(zhǔn)確率,但由于數(shù)據(jù)源的規(guī)模有限,因此召回率普遍不高?;诙鄶?shù)據(jù)源的方法主要是將結(jié)構(gòu)化與非結(jié)構(gòu)數(shù)據(jù)交叉迭代起來(lái)獲取,首先從結(jié)構(gòu)化數(shù)據(jù)中獲取準(zhǔn)確率較高的結(jié)果作為種子屬性,然后使用種子屬性從非結(jié)構(gòu)化文本中迭代獲取更多的屬性。這種方法相比單一語(yǔ)料來(lái)源,綜合考慮了準(zhǔn)確率和召回率,但獲取方法相對(duì)更加復(fù)雜,且結(jié)果屬性的好壞和屬性類型過(guò)多依賴于種子。
我們提出了一種基于前后綴迭代的屬性名稱獲取方法,語(yǔ)料來(lái)源于非結(jié)構(gòu)化數(shù)據(jù)源。本方法的每一步迭代分為兩個(gè)步驟。
第一個(gè)步驟是: 從現(xiàn)有屬性集合中選擇合適的前后綴,構(gòu)造詞匯—句法模式,從Web網(wǎng)頁(yè)中提取候選屬性;
第二個(gè)步驟是: 采用基于相似性的驗(yàn)證模型對(duì)候選屬性進(jìn)行驗(yàn)證以擴(kuò)充現(xiàn)有屬性集合。
與現(xiàn)有的屬性名稱獲取方法相比,本方法的特點(diǎn)在于:
(1) 基于非結(jié)構(gòu)化的數(shù)據(jù)源,但引入了種子屬性,兼顧了準(zhǔn)確率和召回率,具有多數(shù)據(jù)源的優(yōu)點(diǎn),但獲取方法更簡(jiǎn)單;
(2) 強(qiáng)化了結(jié)果的驗(yàn)證,提出了一組基于相似性的屬性驗(yàn)證模型,提高了候選結(jié)果的準(zhǔn)確率;
(3) 提出了一種滾雪球似的屬性迭代獲取方法,極大地提高了召回率、準(zhǔn)確率和屬性類型覆蓋率。
本文的組織如下: 第2節(jié)介紹候選屬性名稱的獲取方法;第3節(jié)介紹候選屬性名稱的驗(yàn)證方法;第4節(jié)給出實(shí)驗(yàn)結(jié)果與實(shí)驗(yàn)分析;第5節(jié)給出與相關(guān)工作的比較;第6節(jié)總結(jié)全文,并且討論進(jìn)一步的工作。
為了方便陳述,我們先引入一些概念,并通過(guò)例子加以解釋。
在一個(gè)屬性詞中,我們稱其中具有語(yǔ)義的最小單元為屬性元(attribute element)。例如,在屬性“IT產(chǎn)業(yè)增速”中,“IT”、“產(chǎn)業(yè)”、“增速”均為屬性元。
屬性詞中的各屬性元的地位并不是平等的,有一個(gè)是處于核心地位的,也有依存在其他屬性元上以修飾它們的[7-9]。 有一類屬性元,它們經(jīng)常出現(xiàn)在屬性詞的結(jié)尾而被其他屬性元所修飾,我們稱它為屬性后綴(簡(jiǎn)稱后綴)。表1中給出了一些常見(jiàn)的屬性后綴。
表1 一些常見(jiàn)的屬性后綴
出現(xiàn)在屬性開(kāi)頭的屬性元稱為屬性前綴(簡(jiǎn)稱前綴),它們充當(dāng)屬性的修飾性成分。表2中給出了一些常見(jiàn)的屬性前綴。
表2 一些常見(jiàn)的屬性前綴
前綴和后綴是屬性名稱中重要的元素。我們對(duì)手工獲取的屬性名稱進(jìn)行統(tǒng)計(jì),結(jié)果表明約53%的屬性包含前綴,97%的屬性包含后綴。因此,基于這種觀察,我們提出了一種基于前后綴的屬性名稱獲取方法。
概念C和其屬性A的搭配常常滿足一定的句法結(jié)構(gòu),例如,A[的]C[是|為|包括],其中方括號(hào)[]中間的內(nèi)容表示可省。如對(duì)“中國(guó)”這一概念,我們常常會(huì)說(shuō): “中國(guó)的國(guó)土面積”、“中國(guó)總?cè)丝跀?shù)為”、“中國(guó)的GDP”,等等。
我們把概念C的所有屬性名稱構(gòu)成的集合稱為C的屬性空間,記為RC。
一般而言,給定屬性空間RC中常見(jiàn)的后綴集合SUF={SUF1…SUFi…SUFk},我們就可以構(gòu)造一批簡(jiǎn)單的查詢模式,從Web網(wǎng)頁(yè)中提取語(yǔ)料,如“C的**SUFi”和“C的*SUFi(是|為|包括)”。在Google支持的查詢模式中,一個(gè)通配符“*”匹配一個(gè)詞。得到語(yǔ)料后,可以將通配符匹配到的序列和SUFi一起提取出來(lái)作為候選屬性名稱。
同樣,如果有一組前綴詞集合PRE={PRE1…PREi…PREk},也可以構(gòu)造類似的查詢模式,如“C的PREi**(是|為|包括)”。得到語(yǔ)料后,可以將PREi(包括PREi)以及通配符匹配到的序列提取出來(lái)作為候選屬性名稱。
這種基于屬性前后綴的獲取方法提取簡(jiǎn)單,且結(jié)果具有一定的準(zhǔn)確率。但人工給定的前后綴詞典畢竟數(shù)量有限,而且對(duì)不同類型的概念,其前綴后綴的差異也較大。如果對(duì)每個(gè)概念,將前后綴詞典中所有的元素均嘗試一次,則不僅耗時(shí),還會(huì)得到許多錯(cuò)誤的結(jié)果,影響結(jié)果的準(zhǔn)確率。因此,我們對(duì)每類概念,給出一批人工驗(yàn)證過(guò)的正確屬性(這些屬性可能是手工整理的,也可能是自動(dòng)獲取后經(jīng)過(guò)人工校驗(yàn)的)作為種子集合Seeds,依據(jù)屬性前后綴詞典,從Seeds中提取前后綴,使用這些前后綴進(jìn)行獲取。同時(shí),為了打破前后綴詞典和Seeds的限制,我們提出了一種前后綴擴(kuò)充的迭代獲取方法。
本方法的基本思路是: 首先從種子屬性中提取新的前后綴,然后使用新的前后綴從Web中獲取新的候選屬性,并驗(yàn)證得到正確屬性;然后從驗(yàn)證過(guò)的正確屬性中提取新的前后綴,并使用新的前后綴繼續(xù)從Web中獲取新的候選屬性,如此反復(fù)迭代。具體的算法見(jiàn)圖1。
屬性迭代獲取算法(AIAAlgorithm)Step1:SUFnewproduceNewSuffix(Seeds);PREnewproduceNewPrefix(Seeds);Step2:While(SUFnew!=null||PREnew!=null){ As'getcandidateattributesbysuffix(SUFnew); AsvalidateAs'; putAsintoRC; putproduceNewPrefix(As)intoPREnew; As'getcandidateattributesbyprefix(PREnew); AsvalidateAs'; putAsintoRC; clearPREnew; SUFnewproduceNewSuffix(As);}圖1 屬性迭代獲取算法AIA
在算法AIA中,
(1) 算法在同一概念C的屬性空間RC中執(zhí)行;
(2) SUFnew表示新產(chǎn)生的后綴詞,PREnew表示新產(chǎn)生的前綴詞;
(3) 函數(shù)produceNewSuffix(Para)是從屬性集合Para中生成新的后綴詞;函數(shù)produceNewPrefix(Para)是從屬性集合Para中生成新的前綴詞。
對(duì)于produceNewSuffix(Para),我們給出了一種比較簡(jiǎn)單的訓(xùn)練方式: 根據(jù)Suffixes Dictionary(屬性后綴詞典),從Para中得到未曾使用過(guò)的后綴詞,加入到返回結(jié)果中;同時(shí),對(duì)于Para中不出現(xiàn)在Suffixes Dictionary(屬性后綴詞典)中的結(jié)尾詞,如果其在Para中的頻率大于等于頻繁閾值s,也將它們作為潛力后綴詞加入到返回結(jié)果中。produceNewPrefix (Para)的訓(xùn)練方式類似,只不過(guò)是依據(jù)Prefixes Dictionary(前綴詞典),從Para中屬性的開(kāi)頭詞中提取。
每一次對(duì)概念C的屬性空間RC擴(kuò)充時(shí),需要對(duì)新的候選屬性集合As′進(jìn)行驗(yàn)證。As′中有幾種常見(jiàn)的錯(cuò)誤,以下列出3個(gè)主要錯(cuò)誤,并分析產(chǎn)生錯(cuò)誤的原因,同時(shí)給出預(yù)處理策略。
1. 需要?jiǎng)冸x。例如,從源句子“中國(guó)的很多工業(yè)產(chǎn)品產(chǎn)量已經(jīng)躍居在世界的第一位”,我們獲得了候選屬性為“很多工業(yè)產(chǎn)品產(chǎn)量”。為消除此類錯(cuò)誤,我們將候選屬性開(kāi)頭的程度副詞“很多”剝離掉。
2. 是句子片段。例如,從源句子“根源是中國(guó)的傳統(tǒng)文化輕視技術(shù)”,我們獲得了候選屬性“傳統(tǒng)文化輕視技術(shù)”。由于屬性名稱均是名詞短語(yǔ),因此對(duì)每個(gè)候選屬性,我們采用基于句法模式的概念識(shí)別方法[10-11],如果該候選屬性無(wú)法通過(guò)名詞短語(yǔ)識(shí)別,則直接丟棄。
3. 不完整。例如,從源句子“中國(guó)的進(jìn)口價(jià)格指數(shù)出現(xiàn)了比較大的上升”,我們獲得了候選屬性“進(jìn)口價(jià)格”。通過(guò)觀察源句子,知道正確的屬性應(yīng)該是“進(jìn)口價(jià)格指數(shù)”。作為預(yù)處理,如果發(fā)現(xiàn)“價(jià)格”后面還有新的后綴詞“指數(shù)”,則將“進(jìn)口價(jià)格”和“進(jìn)口價(jià)格指數(shù)”一起作為候選屬性進(jìn)行驗(yàn)證。
經(jīng)過(guò)以上的預(yù)處理,我們由As′得到候選屬性集As″。下一步將對(duì)As″進(jìn)行驗(yàn)證。
在驗(yàn)證中,本文引入了以下兩條啟發(fā)式規(guī)則,并通過(guò)例子來(lái)說(shuō)明。
啟發(fā)式規(guī)則1(示例):
已知“自行車保有量”是“中國(guó)”的屬性,那么“機(jī)動(dòng)車保有量”也可能是“中國(guó)”的屬性。
其理由是“自行車”和“機(jī)動(dòng)車”有某種程度的相似性。
啟發(fā)式規(guī)則2(示例):
已知兩個(gè)屬性“IT產(chǎn)業(yè)增速”、“GDP年均增速”是“中國(guó)”的屬性,那么“信息產(chǎn)業(yè)年均增速”也可能是“中國(guó)”的屬性。
其理由是“IT”和“信息”有某種程度的相似性;而通過(guò)“GDP年均增速”可以認(rèn)為在“中國(guó)”的屬性空間中“年均”可以搭配“增速”以修飾它。同樣如果已知“鋼鐵行業(yè)發(fā)展?fàn)顩r”,“經(jīng)濟(jì)發(fā)展前景”是“中國(guó)”的屬性,那么“鋼鐵行業(yè)發(fā)展前景”也可能是“中國(guó)”的屬性。
基于以上的啟發(fā)式規(guī)則,我們提出了一種基于相似性的屬性驗(yàn)證模型。
在啟發(fā)式規(guī)則示例中,我們知道屬性元之間存在某些相似性。
在漢語(yǔ)構(gòu)詞和構(gòu)字中,包含了豐富的語(yǔ)義信息。比如“自行車”、“機(jī)動(dòng)車”均以“車”結(jié)尾,預(yù)意著它們都是一種“車”。同樣,能確定上下位關(guān)系等受限語(yǔ)境的詞,借鑒文獻(xiàn)[12],我們也能定義它們之間的語(yǔ)義相似性。但是對(duì)于絕大多數(shù)屬性元,很難得到這樣的語(yǔ)義信息。所以,我們提出了一種更一般的屬性元相似度定義方式。
前面的例子表明,我們更關(guān)心的是結(jié)構(gòu)相似,即屬性元依存關(guān)系之間的相似性。
我們不易直接把握“需求量”和“總產(chǎn)值”之間的語(yǔ)義相似度,但是如果我們得到了以下候選屬性: “煤炭需求量”、“煤炭總產(chǎn)值”,“鋼鐵需求量”、“鋼鐵總產(chǎn)值”,我們會(huì)認(rèn)為“需求量”和“總產(chǎn)值”之間的相似度較高,因?yàn)樗鼈儽幌嗤膶傩栽揎?。?jù)此,我們得到以下假設(shè)。
假設(shè)在一個(gè)概念的屬性空間中,如果兩個(gè)屬性元AE1和AE2頻繁被相同的屬性元修飾(即被相同的屬性元所依存),那么AE1,AE2之間的相似度較高;反之,則相似度越低。
考慮到依存關(guān)系,我們定義函數(shù)D(x,用它來(lái)表示依存在x上的屬性元集合。例如,D(“需求量”)={“煤炭”,“鋼鐵”…}。
基于這個(gè)假設(shè),借鑒文獻(xiàn)[13]的方法,我們提出一種建立在依存關(guān)系上的屬性元相似度,如式(1)所示。
(1)
其中,I(S=-∑f∈SlogP(f,
P(f)為屬性元f在訓(xùn)練語(yǔ)料中的概率,-logP(f)表示f的信息量;
與以上假設(shè)同理,如果兩個(gè)屬性元AE1和AE2頻繁修飾相同的屬性元(即依存在相同的屬性元上),那么AE1和AE2之間的相似度較高;反之越低。例如,我們有以下候選屬性: “煤炭消費(fèi)量”、“煤炭需求量”、“煤炭進(jìn)口量”、“石油消費(fèi)量”、“石油需求量”、“石油進(jìn)口量”,我們會(huì)認(rèn)為“煤炭”和“石油”之間的相似度較高,因?yàn)樗鼈冃揎椫嗤膶傩栽?“消費(fèi)量”、“需求量”等。我們定義函數(shù)BD(x,用它來(lái)表示x所依存的屬性元集合。例如,BD(“石油”={“需求量”,“進(jìn)口量”,“消費(fèi)量”…}。則: 概念C上兩個(gè)屬性元在被依存關(guān)系上的相似度定義為式(2)。
(2)
綜合以上考慮,我們定義概念C上AE1和AE2的相似度如式(3)所示。
Sim(AE1,AE2|C
=λ·SimD(AE1,AE2|C+
(1-λ·SimBD(AE1,AE2|C
(3)
其中,λ[0,1]為加權(quán)系數(shù),根據(jù)具體應(yīng)用或試驗(yàn)確定。
為了簡(jiǎn)化陳述,下文定義的所有公式均是指在概念C上的。
在屬性元相似度基礎(chǔ)上,我們引入依存對(duì)(P,P′的相似度如式(4)所示。
(4)
例如, 對(duì)依存對(duì)“(IT,產(chǎn)業(yè))”和“(信息,產(chǎn)業(yè))”之間的相似度,表示為Sim(IT,信息)×Sim(產(chǎn)業(yè),產(chǎn)業(yè))
對(duì)有相似關(guān)系的屬性名稱A和A′,若A中的依存對(duì)P能在A′中找到相似的依存對(duì)P′,則構(gòu)造從P到P′的映射,稱這個(gè)過(guò)程為對(duì)齊。
在屬性名稱對(duì)齊時(shí),需要依存對(duì)的兩個(gè)屬性元都相似才能將其對(duì)齊。
設(shè)A1=“IT產(chǎn)業(yè)增速”,依存結(jié)構(gòu)見(jiàn)圖2;A2=“GDP年均增速”,依存結(jié)構(gòu)見(jiàn)圖3;A3=“信息產(chǎn)業(yè)年均增速”,依存結(jié)構(gòu)見(jiàn)圖4。圖5中給出了A1和A3對(duì)齊后的結(jié)構(gòu)圖。
圖2 A1的依存結(jié)構(gòu)圖3 A2的依存結(jié)構(gòu)
圖4 A3的依存結(jié)構(gòu)
圖5 A1和A3對(duì)齊后的結(jié)構(gòu)
在依存對(duì)相似度的基礎(chǔ)上,我們引入馬爾科夫假設(shè),認(rèn)為屬性的各個(gè)依存對(duì)之間彼此獨(dú)立,于是我們定義屬性A和A′之間的相似度如式(5)所示。
(5)
其中,
(1) Pi(A),Pi(A′)表示為A和A′的第i個(gè)對(duì)齊的依存對(duì);
(2) Max_Pair(A,A′為A,A′依存對(duì)數(shù)量的較大值。
根據(jù)圖5中A1和A3的對(duì)齊結(jié)果,計(jì)算A1和A3之間的相似度,如果“IT”與“信息”的相似度為0.8,則如式(6)所示。
Sim(A1,A3)=(0.8×1+1×1)/3=0.6(6)
引入定量指標(biāo)屬性置信度D (D∈[0,1]) 來(lái)描述屬性的正確性。
如果已知候選屬性A′的置信度D(A′;A和A′的相似度為Sim(A,A′);A的置信度未知,我們定義:
定義1由A′推導(dǎo)出A的屬性置信度如式(7)所示。
真實(shí)的屬性空間中,和A相似的屬性數(shù)量常常會(huì)大于1,令其相似屬性集合Sim(A)={A1,A2,…An}。我們可以在Sim(A)上定義A的置信度。如,我們可以在Sim(A)中,找到一個(gè)與它最相似的屬性Ai,用D(Ai→A)作為A的置信度,如式(8)所示。
屬性置信度1
其中i=argmaxiSim(Ai,A)
同樣,也可以在Sim(A)中,將得到的推導(dǎo)置信度的最大值作為其置信度,如式(9)所示。
屬性置信度2
類似于屬性置信度,我們也可以得到依存對(duì)P的兩種置信度定義方式,用來(lái)描述依存關(guān)系的穩(wěn)定程度,分別為式(10)、式(11)所示。
依存對(duì)置信度1
其中i=argmaxiSim(P(Ai),P)
依存對(duì)置信度2
定義依存對(duì)置信度的意義將在3.7節(jié)中說(shuō)明。
在上述例子的A1,A2,A3中,只有當(dāng)A1和A2都為正確屬性時(shí),即關(guān)系(IT,產(chǎn)業(yè))、(產(chǎn)業(yè),增速)、(年均,增速)都合理時(shí),才有可能認(rèn)為A3也是正確屬性。盡管A1和A3可能最相似,但A3的真實(shí)置信度和A1,A2都相關(guān),而不僅僅取決于其中的某一個(gè)。因此,如果對(duì)A3中的依存關(guān)系做劃分。(信息,產(chǎn)業(yè))、(產(chǎn)業(yè),增速)由A1決定,而(年均,增速)由A2決定,則可以由A1,A2得到的A3的置信度。于是,我們得到式(12)。
屬性置信度3
其中
(1) t為劃分個(gè)數(shù);
(3) 選擇t最小化原則進(jìn)行劃分;若t最小時(shí)存在多個(gè)劃分,選擇D3(A)最大化進(jìn)行劃分。
在屬性置信度的基礎(chǔ)上,我們提出了一個(gè)屬性驗(yàn)證算法。算法的基本思想是: 對(duì)種子屬性和待驗(yàn)證的候選屬性做屬性元分解和依存關(guān)系解析,然后根據(jù)屬性元之間的相似關(guān)系,構(gòu)建屬性空間圖,圖中的節(jié)點(diǎn)為屬性,邊表示相似關(guān)系。然后從種子屬性開(kāi)始,采用廣度優(yōu)先搜索計(jì)算相鄰節(jié)點(diǎn)的置信度。詳細(xì)的驗(yàn)證算法(AV Algorithm)如圖6所示。