邱德鈞,馮 霞
(蘭州大學(xué)哲學(xué)社會(huì)學(xué)院 蘭州大學(xué)大氣科學(xué)學(xué)院,蘭州 730000)
自然語(yǔ)言中很多時(shí)候存在歧義,在數(shù)理邏輯創(chuàng)始之初,萊布尼茨就對(duì)此作了深入研究。萊布尼茨極力推動(dòng)的“通用文字”計(jì)劃,目的是對(duì)語(yǔ)言實(shí)現(xiàn)技術(shù)性理解,以規(guī)范語(yǔ)言的日常使用,實(shí)現(xiàn)無(wú)歧義地交流(1)斯特普夫和菲澤著,丁三東譯校,《西方哲學(xué)史》,中華書局,北京,2005-226.。雖然在有的領(lǐng)域受到批評(píng),但這一開創(chuàng)性的工作為人類留下了數(shù)理邏輯的寶貴財(cái)富,今天更成長(zhǎng)為人機(jī)交互的重要工具。斯通普夫說:“萊布尼茨在描述宇宙時(shí)并沒有使用機(jī)械論的模式,因?yàn)槿绻@樣做,他就不得不說這個(gè)宇宙的各個(gè)不同的部分是按照每個(gè)其他部分而行動(dòng)的,就像一個(gè)鐘的各部分影響每個(gè)其他部分的運(yùn)動(dòng)一樣。在某種意義上,萊布尼茨的解釋甚至比機(jī)械論模式的主張更加具有嚴(yán)格的決定論色彩。因?yàn)樗膯巫尤际腔ハ嗒?dú)立的,并且互不發(fā)生影響,但卻按照它們從一開始就通過上帝的創(chuàng)造而接受到的原始目的而行動(dòng)。這種決定論之所以更嚴(yán)格,是因?yàn)樗灰蕾囃獠恳蚬?lián)系的變化莫測(cè),而是依賴每個(gè)單子被給定的并且是永遠(yuǎn)固定的內(nèi)部本性?!雹賿侀_作者的本意,文字中透出了萊布尼茨力圖從單子這個(gè)簡(jiǎn)單毫無(wú)歧義的出發(fā)點(diǎn),避免日常語(yǔ)言歧義的深層的哲學(xué)思想。今天在NLP的處理中,遇見了大量的自然語(yǔ)言難題,尤其是歧義問題,哲學(xué)家從更高的范疇尋求其根由;自然語(yǔ)言處理的人們多從算法和實(shí)用出發(fā)研究,都遇到了不同的問題。本文從一階謂詞邏輯的角度討論分析NLP中的長(zhǎng)處與不足,試圖從方法論上提供一種新的思路,以利于實(shí)際的NLP工作。這是因?yàn)橐浑A邏輯本身有著豐富的表達(dá)能力,且稍加處理就能為機(jī)器識(shí)別,當(dāng)統(tǒng)計(jì)的方法遇到阻礙時(shí),我們一起看看,一階邏輯是否可以提供給人們新的思路。
漢語(yǔ)不同于英文,漢語(yǔ)句子內(nèi)部詞與詞之間沒有明顯的分隔符(如空格),而信息化處理時(shí)是以此為單位的;再者,相較于其他語(yǔ)言,漢語(yǔ)表達(dá)意境的特征突出,不追求邏輯和約束結(jié)構(gòu),很難有固定的詞句構(gòu)造規(guī)律;第三,漢語(yǔ)歷史悠久,分布廣泛,更是增加了其千變?nèi)f化的特征。因此自動(dòng)化處理時(shí)必須進(jìn)行分詞,中文自動(dòng)分詞時(shí)涉及到的歧義主要有以下幾種類型:第一類歧義是由自然語(yǔ)言的多義性所引起的歧義,句子“兵乓球拍賣完了”,有兩種分詞辦法,一是“乒乓球/拍賣/完了”,二是“乒乓球拍/賣/完了”。這兩種都是正確的,無(wú)論人工分詞還是自動(dòng)分詞都會(huì)產(chǎn)生歧義,只有結(jié)合上下文才能給出正確的結(jié)果。由機(jī)器自動(dòng)分詞產(chǎn)生的特有歧義是第二類歧義。如:“在這個(gè)問題上班里意見不統(tǒng)一”用機(jī)器切分,可以切分為“在/這個(gè)/問題/上班/里/意見/不/統(tǒng)一”,也可以切分為“在/這個(gè)/問題/上/班里/意見/不/統(tǒng)一”。只有第二種分詞是正確的,人工分詞不可能產(chǎn)生上述歧義,歧義是由于機(jī)器機(jī)械切分產(chǎn)生的。由于分詞詞典的大小引起的歧義,稱為第三類歧義,如:“王小二是一個(gè)農(nóng)民”用機(jī)器切分被分為“王/小/二/是/一個(gè)/農(nóng)民”,這里“王小二”是一個(gè)人名,在漢語(yǔ)中應(yīng)是一個(gè)詞,所以這個(gè)切分是錯(cuò)誤的。由于機(jī)器自動(dòng)分詞是根據(jù)分詞詞典進(jìn)行的。故詞典中沒有的詞,就不可能被正確切分,分詞詞典不可能也沒有必要包括所有的詞(如人名、地名),同時(shí),詞典中所包括的詞越多,就會(huì)產(chǎn)生新的歧義。例如:“發(fā)展社會(huì)主義的新鄉(xiāng)村”新鄉(xiāng)是一個(gè)地名,若詞典中有該詞,則“新鄉(xiāng)村”是一個(gè)歧義字段。因此,不論詞典的大與小都可能產(chǎn)生歧義。雖然近年發(fā)展出的消歧方法不進(jìn)行這種分類研究,而視為相同的情形處理(2)參見《神經(jīng)網(wǎng)絡(luò)和貝葉斯網(wǎng)絡(luò)在漢語(yǔ)詞義消歧上的對(duì)比研究》,盧志茂 劉挺 郎君 李生,《高技術(shù)通訊》, 2004年第8期 15-19,共5頁(yè),但從邏輯角度思考這種分類是必要的,能使我們思路更清晰和詳盡。
漢語(yǔ)中出現(xiàn)了許多歧義句子,以下分別給出它的機(jī)器自動(dòng)分詞(3)采用哈爾濱工大的HanLP自動(dòng)分詞技術(shù)Apache License Version 2.0,官網(wǎng)為:http://hanlp.com/。和謂詞公式(4)謂詞邏輯公式統(tǒng)一采用希爾伯特系統(tǒng)。,力圖從邏輯角度找到新的、一般的方法論的分析結(jié)論。
1.過直線外的一點(diǎn)能做并且只能做一條直線與它平行。
(?x)(F(x)∧G(x,a)→P(x,a)∧W(x))
這一分詞是正確的,相對(duì)于謂詞公式卻較難表達(dá)“且只能做”的涵義。不必對(duì)原文句子做改動(dòng),這正是近年算法中不用謂詞公式而是用NLP分詞的重要原因。謂詞公式雖然能準(zhǔn)確揭示內(nèi)在的邏輯關(guān)系,卻不合乎自然。
2.張三的每個(gè)朋友都是李四的朋友,所以,每個(gè)認(rèn)識(shí)李四所有朋友的人也認(rèn)識(shí)張三的所有朋友。
(?x)(P(x,a)→P(x,b))→
這是邏輯關(guān)系復(fù)雜但表述清楚無(wú)歧義的句子,HanLP處理起來(lái)沒有難度,其能力優(yōu)于謂詞公式。
由此可見,如果句子本身沒有歧義,現(xiàn)有的分詞法,無(wú)論是貝葉斯的還是神經(jīng)網(wǎng)絡(luò)的,遠(yuǎn)比謂詞公式更有優(yōu)勢(shì),這源于它不需改變句子本身就能被機(jī)器識(shí)別,而謂詞公式必須分清個(gè)體詞、個(gè)體常項(xiàng)、謂詞、謂詞的約束范圍,關(guān)鍵的在一階邏輯中不允許謂詞做為其他謂詞的運(yùn)算對(duì)象,更是與自然語(yǔ)言的習(xí)慣不符合。下面來(lái)分析有歧義的句子。
3. 嚴(yán)守一把手機(jī)關(guān)了。
(?x)(S(x)∧P(x,a)→G(a,x))
邏輯關(guān)系理解為:存在著個(gè)體x,若x是手機(jī)S,并且x屬于(P)a,那么,a關(guān)掉(G)了x。分詞法顯然沒識(shí)別“嚴(yán)守一”是一個(gè)體名詞,錯(cuò)誤地將“一把手”識(shí)別,造成了更多錯(cuò)誤。傳統(tǒng)漢語(yǔ)將這種情況是為結(jié)構(gòu)性歧義,在本文上述分類中它既屬于第二類又屬于第三類歧義。但邏輯關(guān)系的表達(dá)正確,依賴于進(jìn)行符號(hào)化的人的背景知識(shí),若是沒看過電影《手機(jī)》的人,也回避不了出錯(cuò)。同理,增加語(yǔ)料庫(kù)將“嚴(yán)守一”作為專有名詞,分詞也會(huì)正確。
4.雞不吃了。
(?x)C(a,x)
這是前些年不能正確分詞的句子,賓語(yǔ)前置,當(dāng)現(xiàn)在已經(jīng)可以準(zhǔn)確識(shí)別“雞”是前置賓語(yǔ)。但它還有一種分詞法,“雞”作為主語(yǔ)。相應(yīng)的邏輯公式得改為 (?x)((?y)s(y)∧J(x)→C(x,y))
表示為:存在個(gè)體下x,如果存在個(gè)體y是食物并且x是雞,那么x不吃y。但需要注意,即便是正確的第一種表達(dá),也沒有讓讀者領(lǐng)會(huì)到實(shí)際上這句話存在的暗示:吃的主體也許吃飽了。
5.新華為和新蘋果該選哪一個(gè)?
(?x)(?y)(H(x)∧P(y)→C(a,x)∨C(a,y))
語(yǔ)料庫(kù)中預(yù)先存在的“新華”和“華為”詞匯,調(diào)用的先后順序肯定不能用字典排序解決,采用從左到右最大匹配法可以解決這個(gè)句子的問題。注意謂詞公式將這個(gè)句子處理為了條件句,而不是原來(lái)的疑問句,因?yàn)檫壿嬏幚矸椒▽?duì)語(yǔ)句的基本要求就是首先必須是陳述句。如果考慮是語(yǔ)音環(huán)境,這個(gè)改變是巨大的。
6.為人民辦公益。
(?x)(?y)(Z(x)∧G(y)→B(x,y)∧W(x,a))
這個(gè)例子十分特別,以前人們研究它是因?yàn)橐壮霈F(xiàn)“為/人/民辦/公益”的錯(cuò)誤分詞,但現(xiàn)在已將解決。但“人民”是個(gè)特殊的集合體概念,如上將它以“a”這個(gè)個(gè)體常項(xiàng)表達(dá)??涩F(xiàn)實(shí)中存在有人處理“人民”為普遍概念,解釋為“為每一個(gè)人辦公益”,這是錯(cuò)誤的。同時(shí),現(xiàn)在的分詞方法如何教會(huì)機(jī)器區(qū)分集合體與非集合體,也應(yīng)該是一個(gè)重要的研究方向,否則像“人是由古猿變來(lái)的”這種句子的真實(shí)含義機(jī)器依舊不會(huì)明白,弄不清它的準(zhǔn)確含義是指“人類做為一個(gè)整體是由古猿變來(lái)的”,而不是“每個(gè)人都是由古猿變來(lái)的”。
7.歡迎新老師生前來(lái)就餐
(?x)(?y)(S(y)∨P(y)→W(χ,y)∧C(y))
這個(gè)句子簡(jiǎn)單,邏輯結(jié)構(gòu)復(fù)雜,存在著x,對(duì)于所有y,如果y是學(xué)生或者老師,那么,x歡迎(W)y,并且y就餐。容易錯(cuò)的是條件句的前提是或者不是“合取”。以前容易將句子分為“歡迎/新/老師/生前/來(lái)/就餐”,但現(xiàn)在nlp的處理能力顯著提高了,但精確的分詞該是“歡迎/新/老/師生/前來(lái)/就餐”,這里是把“老師生”視為名詞,“新”成了“老師生”的定語(yǔ),還是有所欠缺。
8. 這事的確定不下來(lái)。
(?x)(S(x)∧D(x))
這是貝葉斯概率分詞算法缺陷的體現(xiàn),“的”字的出現(xiàn)概率太高了,它幾乎總會(huì)從“的確”中掙脫出來(lái),而不把“的確”組合在一起。但同時(shí),謂詞邏輯對(duì)它的表達(dá)也是無(wú)力的,存在著x,x是事,并且x不能定下來(lái),“的確”這個(gè)涵義被完全忽略了。
9. 已取得文憑的和尚未取得文憑的干部。
(?x)(?y)(R(x)∧W(y)→H(x,y)∨H(x,y))
同8,“的”又兩次因頻率高獨(dú)立出來(lái)沒有與“取得文憑的”組合,“和”與“尚”因?yàn)轭l率高意外組合在一起。謂詞公式可以準(zhǔn)確但復(fù)雜地表達(dá)出來(lái),對(duì)兩個(gè)名詞組合的詞組改變?yōu)榱艘粋€(gè)條件句。
10. 人的正確思想是從天上掉下來(lái)的嗎?
(?x)((S(x)∧Z(x)→R(x))→D(x)∧T(x))
Nlp在處理這個(gè)句子時(shí)完全正確,謂詞邏輯再次遇到麻煩,由于不能處理非陳述句,必須先加工為“人的正確思想不是從天上掉下來(lái)的”,才能符號(hào)化。若機(jī)器分詞采用邏輯辦法,顯然是不可能如此的。
11. 咬死獵人的狗。
(?x)(?y)(G(x)∧R(y)→Y(x,y)∧S(y))
以前愛出現(xiàn)的錯(cuò)誤分詞“咬/死獵人/的/狗”,在這個(gè)系統(tǒng)里得到改進(jìn)。謂詞邏輯對(duì)這種短的名詞組處理起來(lái)卻不方便,也很復(fù)雜:存在x,存在y,x是狗并且y是獵人,那么,x咬y并且x死了。
12. 從中學(xué)到大學(xué)的知識(shí)。
(?x)(Z(x)∧G(x)∧U(x))
這是人工和機(jī)器分詞都應(yīng)該有兩個(gè)結(jié)果的例子,HanLP輸出了其中一種,卻不知道其內(nèi)部的選擇機(jī)制,曾嘗試多次,也未能輸出“從/中學(xué)/到/大學(xué)/的/知識(shí)”,若是后者,該句邏輯結(jié)構(gòu)簡(jiǎn)單。
謂詞邏輯在表達(dá)中文時(shí),具有以下優(yōu)勢(shì):使用符號(hào)較少就可充分表達(dá)人類眾多的自然語(yǔ)言;使用的符號(hào)系統(tǒng)可以方便為計(jì)算機(jī)識(shí)別,尤其是還有專用的Prolog計(jì)算語(yǔ)言,給人機(jī)交互帶來(lái)便利;在處理具有多義的句子中準(zhǔn)確,不會(huì)造成奇怪的新意義,如同7、8中的例子;對(duì)于較長(zhǎng)的文章,可以生成一系列公式,由這些公式或者形成推理或者檢驗(yàn)其一致性,進(jìn)行元邏輯的進(jìn)一步研究;盡管自然語(yǔ)言表達(dá)內(nèi)容數(shù)量無(wú)盡,但其基本的邏輯結(jié)構(gòu)卻是數(shù)量較少,其表現(xiàn)力足以滿足日常及專業(yè)的使用需求。
按照萊布尼茨的構(gòu)想,這種天然帶有可計(jì)算性能的工具今天在中文分詞和其他主要語(yǔ)言的分詞處理中卻退居為弱勢(shì)地位,也正反映出謂詞邏輯的天生的不足:謂詞邏輯以個(gè)體詞xi(i=1,2,3,…)為運(yùn)算對(duì)象,自然語(yǔ)言的個(gè)體往往是隱性的,有時(shí)還很難找出個(gè)體,需要另外做技術(shù)處理,如同6中的“人民”;漢語(yǔ)的簡(jiǎn)潔性造成句子的邏輯關(guān)系也是隱藏的,很少完整說“如果天下雨,那么不踢球”,而是替之以“天下雨不踢球”,更有甚者這還與“適當(dāng)溫度使雞蛋孵出小雞”是完全不同的邏輯關(guān)系,人類有時(shí)都難以區(qū)分;最后,謂詞公式必須改變?nèi)祟愂褂枚嗄甑木渥颖旧硗庠诮Y(jié)構(gòu),這個(gè)改動(dòng)巨大,如同2中,不具備專業(yè)知識(shí)都很難讀懂。基于此,無(wú)論HanLP的分詞方法有多少不足,其不改變句子外在結(jié)構(gòu)直接令機(jī)器識(shí)別這一個(gè)優(yōu)勢(shì),就使得該方法無(wú)可替代。
試圖改變謂詞邏輯劣勢(shì)的嘗試來(lái)源于給謂詞邏輯增加新的算子“情態(tài)謂詞”,如同8中的態(tài)度“的確”以前是為謂詞邏輯忽略的,但句子的中的這些情態(tài)詞卻是說話人態(tài)度的重要反應(yīng),決定著句子的真實(shí)含義。語(yǔ)義學(xué)中對(duì)情態(tài)謂詞做了大量的研究,認(rèn)為語(yǔ)言中說話人對(duì)所報(bào)道信息“可信性”的評(píng)價(jià)屬于主觀情態(tài)性范疇內(nèi)容,甚至研究了不同類型的命題態(tài)度謂詞在語(yǔ)言的使用中呈現(xiàn)出自己的不同特色,構(gòu)造出多了一個(gè)算子的演算系統(tǒng)。但這些工作只是增加了謂詞公式的復(fù)雜度,補(bǔ)充了公式的態(tài)度、可信度等表達(dá)能力,沒有解決它不直觀、不自然和改變句子本身結(jié)構(gòu)的缺陷,不會(huì)為文本分詞也更不可能為語(yǔ)音識(shí)別分詞所用。
深層的原因根植于計(jì)算機(jī)算法的本質(zhì)主要是查詢與匹配。給定的需要處理的句子文本,計(jì)算機(jī)會(huì)在已知的庫(kù)中尋找匹配項(xiàng),正序的或者是反序的多次高速匹配。匹配的首要條件就是存在一個(gè)在先建立的文本庫(kù),自然語(yǔ)言的詞匯和句子庫(kù)建立已經(jīng)持續(xù)幾十年,在將來(lái)建立一個(gè)謂詞公式庫(kù)能否對(duì)分詞歧義有作用?不考慮建庫(kù)的難度與成本,從操作上這不可取,因?yàn)楸仨氁獙⒆匀徽Z(yǔ)言轉(zhuǎn)化為公式才能與庫(kù)中已有的公式匹配比較,轉(zhuǎn)換過程會(huì)影響速度;即便以后高速計(jì)算使轉(zhuǎn)換速度忽略不計(jì),自然語(yǔ)言的豐富性和新的詞匯增加量的問題還得再處理一次,被匹配對(duì)象的問題沒能得到解決。
能不能在現(xiàn)有的匹配中,考慮加入邏輯結(jié)構(gòu)的對(duì)比,并使之在實(shí)際操作中可行?比如,一旦出現(xiàn)“天下雨不踢球”,就給出以下五種結(jié)構(gòu),結(jié)合概率和監(jiān)督學(xué)習(xí)進(jìn)行選擇:
1. 天下雨∧不踢球。
2. 天下雨∨不踢球。
3. 天下雨→不踢球。
4. 天下雨?不踢球。
同理,出現(xiàn)句子“城會(huì)玩”,也給出選擇:
1.(?x)(城里(x)→會(huì)玩(x))
2.(?x)(城里(x)∧會(huì)玩(x))
這種辦法有可能有助于提高句子分詞成功率并且切實(shí)可行,筆者將在以后的文章中具體探討,此處給出基本流程圖:
圖1 基本流程圖