490 likes | 620 Views
第二十二章 能溝通的代理人. 22.1 溝通的行動 22.2 溝通代理人的種類 22.3 英文子集合的正規文法 22.4 語法分析(剖析) 22.5 限定子句文法 22.6 將文法參數化 22.7 語意說明 22.8 混淆與去除混淆 22.9 溝通代理人. 22.1 溝通的行動. 一個代理人能做的行動之一是產生語言。這稱為 “ 語言行為 ” ( Speech Act)。 “ 語言 ” 與 “ 自由語言 ” 同義,但並非 “ 說話 ” ,因此打字 “ 用飛機在空中寫字 ” ,或是使用符號式語言,全都算是語言行為。.
E N D
第二十二章 能溝通的代理人 22.1 溝通的行動 22.2 溝通代理人的種類 22.3 英文子集合的正規文法 22.4 語法分析(剖析) 22.5 限定子句文法 22.6 將文法參數化 22.7 語意說明 22.8 混淆與去除混淆 22.9 溝通代理人
22.1 溝通的行動 一個代理人能做的行動之一是產生語言。這稱為“語言行為”(Speech Act)。“語言”與“自由語言”同義,但並非“說話”,因此打字“用飛機在空中寫字”,或是使用符號式語言,全都算是語言行為。
當代理人可能正在執行一項例行的行為時,為何還要執行語言行為?想像有一群代理人一起探索Wumpus的世界,這個群體會因為下列的行為而獲益(整體與個別的益處):當代理人可能正在執行一項例行的行為時,為何還要執行語言行為?想像有一群代理人一起探索Wumpus的世界,這個群體會因為下列的行為而獲益(整體與個別的益處): 通知(Inform) 詢問(Query) 回答(Answer)問題 要求(Request)或命令(command) 約定(Promise)做某些事情或提議(offer)交易 回應(Acknowledge) 分享(share)
要知道語言行為的問題很類似於其他的理解(understanding)問題,例如理解影像或醫療診斷。我們得到一組性質含糊的輸入,必須根據這些輸入往回推以決定哪一個環境的狀態能造成該輸入。 理解問題還包括了更普遍的規劃認知(plan recognition)問題。若觀察到一個代理人轉向並朝著黃金移動,就能夠理解形成一個代理人信念模式的行為,說明代理人的目標是得到黃金。
語言的基礎 區別正規語言和自然語言,前者例如Lisp和一階邏輯被創造並賦予精確定義,後者就像中文、丹麥語、和英語這類人類用來與其他人交談的的語言。雖然我們主要是對自然語言感興趣,卻仍會善用所有正規語言理論的工具,由Backus-Naur Form(BNF)表示法開始,在附錄B有定義。
溝通的組成步驟 一個典型的溝通片段中,說者S想要將命題P以字W傳遞給聽者H,由七個程序所構成。其中有三項發生在說者: 意圖(intention):S希望H相信P (其中S一般都相信P) 產生(generation):S選擇字W (因為能表達P的意義) 合成(synthesis):S使用字W(通常對H提出)
有四項發生於聽者: 認知(perception):H察覺到W’(理想上W’=W,但而認知不當還是有可能發生) 分析(analysis):H推論W’有可能的意義P1, …, Pn(字和片語都可有多個意義) 去除混淆(disambiguation):H推論S意圖傳達Pi(理想上Pi=P,但仍有可能發生誤判) 結合(incorporation):H決定相信Pi(或是拒絕Pi,若與H已存在的信念不符合時) 讓我們在圖22.1所示的範例內容中觀察這七種程序。
兩種溝通的模型 對於溝通的研究圍繞在將代理人的信念轉換為文字和轉變回其他代理人知識庫(或腦中)之信念的方法。有兩種探討這個程序的方法。編碼訊息(encoded message)模型表示說者已有一個明確的命題P,並將該命題編碼為字(或訊號)W。接著聽者嘗試將訊息W解碼以接收原始的命題P(參照摩斯密碼,Morse code)。
22.2 溝通代理人的種類 本章要考量使用兩種不同溝通方式的代理人。第一種代理人分享一個共用的內部表現語言;他們可以完全不用任何外部語言溝通。接著是另一種對彼此的內部語言不做任何假設的代理人,但使用一個英語的子集合作為共用的通訊語言。
用說和問做溝通 代理人共用相同的內部表示語言,並可以經由TELL和ASK界面直接存取其他每個代理人的知識庫。亦即,代理人A可用TELL(KBB, “P”)與代理人B溝通命題P,只要A用TELL(KBA, “P”)將命題P加入自己的知識庫。同樣的,代理人A可以用ASK(KBB, “Q”)找出是否B知道Q。我們稱此為精神感應溝通(telepathic communication)。圖22.2用圖解表示每個代理人除了有認知和行動埠,還被修改為增加了對自己的知識庫有輸出入埠。
其他符號則是動態的(dynamic):它們是代理人開始探索世界之後才被創造出來的。範例包括常數PA1表示一個坑洞,SA9表示目前狀況。困難的部份是讓這些動態符號的使用能夠同步。有三項困難點:
1.需要一個命名策略,使得A和B不會同時使用相同的符號表示不同的事情。我們採用的策略是讓每個代理人以及其名稱都作為每個它所導出之符號說明的一部份。 2.必須有某種將不同代理人導出之符號互相關連的方法,使得一個代理人能說出是否PA1和PB2(假設)表示相同的坑洞。這有幾分相似於單一代理人外觀的問題。
3.最後一項困難是讓不同代理人知識庫間的差異獲得一致。若溝通是自由的而且是即時性的,則所有代理人都可以在學得新事實的時候,採用對每個代理人廣播每個新事實的策略。這種方法使得每個代理人都有完全相同的知識。3.最後一項困難是讓不同代理人知識庫間的差異獲得一致。若溝通是自由的而且是即時性的,則所有代理人都可以在學得新事實的時候,採用對每個代理人廣播每個新事實的策略。這種方法使得每個代理人都有完全相同的知識。
用正規語言溝通 因為有破壞行動的問題,也因為讓所有代理人用相同的內部語言並不可行,大部分代理人藉由語言溝通,而非直接存取知識庫。圖22.3是這種溝通形態的圖示。外部溝通與言語內部表現語言不同,而且每個代理人可以有不同的內部語言。
能溝通的代理人 現在要看看一個溝通的例子,用wumpus世界代理人的形式,扮演一個能由主人下命令指揮的機器奴隸。每一回,奴隸用英文(其實是一個限制子集合)描述自己的認知,等待一個來自主人的命令,接著解譯命令並執行。代理人程式如圖22.4所示。本章其餘各部份充滿代理人程式所遺漏的常式(routines)。
22.3 英文子集合的正規文法 定義一個英文子集合的正規文法,適用於造出關於wumpus世界的句子。我們稱此為語言0。用這種方法定義語言,隱然是主張正規語言技術適合於處理自然語言。就很多方面而言,它們是合適的:自然語言使用固定的字母(用於書寫的語言)或聲音(用於訴說的語言)集合,結合成為一個可靠的文字子集合。每個階層皆可被視為一個正規語言的符號。
0的字彙集 定義一個文法的第一個步驟是定義一個字彙集,或是可用的語彙文字。文字被分類為各種範疇,或是字典使用者熟知之語言的一部份:名詞、代名詞、表示事物的名稱、表示事件的動詞,形容名詞的形容詞,以及形容動詞的副詞。
0的文法 下一個步驟是將文字結合為片語。我們用五個非終止符號定義不同種類的片語:句式(S),名詞片語(NP),動詞片語(VP),介系詞片語(PP),以及冠詞片語(RelClause)。圖22.6表示一個0的文法,以及對每個改寫法則的範例。
22.4 語法分析(剖析) 有很多剖析(parsing)的演算法──在給定一個文法的狀況下,修復一段言詞的片語結構。圖22.7是一個很簡單的演算法,非決定性地選擇一棵可能的剖析樹,若存在的話。它將一個文字的串列視為一個剖析樹林(parse forest):剖析樹的一個有序串列。圖22.8就顯示出剖析字串”the wumpus is dead”的執行過程。
22.5 限定子句文法(Definite Clause Grammar, DCG) BNF有兩個問題。第一,我們對於使用語言做溝通感興趣,因此需要一些方法將一個意義與每個字串做關連,但BNF只處理字串,而非意義。第二,我們想要描述前後文相關(context-sensitive)文法,但BNF是前後文無關。
22.6 將文法參數化 0的簡單文法產生許多英文句子,但也發生過度產生──產生不符合文法的句子──例如”Me smells a stench。”這個字串有兩個問題:應該是”I”,而不是”me”,且應該是”smell”而非”smells”。要修正這些問題,首先要決定實際的英文是什麼,然後思考如何讓文法反應實際的英文。很多語言將名詞分解成不同的狀況(cases),取決於其在句中所扮演的角色。
首先考慮名詞的狀況。問題是隨著目前為止所造成的特質(亦即我們所定義的非終止符號),英文並非前後文無關。事實並非任何NP皆能與VP結合以產生一個句子,例如,NP ”I”可以,但”me”就不行。若想要堅持前後文無關文法,就必須介紹新的分類,例如NP0或NP1,以分別代表主格和受格狀況中的名詞片語。還需要將Pronoun類別分開成為兩個類別PronounS(包括”I”)和PronounO(包括”me”)。該文法的必要改變列於圖22.9。
動詞子分類化 1語言是0的一項改進,但仍有不符合文法的句子。問題之一是動詞片語放在一起的方式。我們希望能夠接受像”give me the gold”和”go to 1,2”的動詞片語。 子類別化串列(subcategorization list)是一個動詞所能接受之補語類別串列,因此範例中的”give”有子分類化串列 [NP,PP]。圖22.11提供一些動詞和其子分類化串列的範例,或簡稱為subcats。
參數化文法之衍生能力 參數化文法的衍生能力取決於擴增之值的數量。若是有限數量,則擴增的文法相當於前後文無關文法。證明的方法,先想像每個擴增的規則都是一個規則概要(rule schema),代表一個規則集合,每個規則概要都對應擴增詞組單位中一項可能值的組合。
22.7 語意說明 在開始自然語言之前,先考量正規語言的語法。處理像”X+Y”這種算術表示式或X^Y這類邏輯表示式的意義很容易,因為它們都有複合的語意(compositional semantics)。這表示任何片語的語意都是其子片語之語意的函數;不取決於之前和之後的任何片語,或是包含給定的片語。因此若知道X和Y(和+)的意義,就能知道整個片語的意義。
用語意作為DCG擴增 22.6節介紹如何用擴增的方法描述數和數字的語意。事實上,不難使用同樣的觀念描述完整算術語言的語意,如同圖22.13所列。圖22.14展現對應於該文法之3+(42)的剖析樹,並伴隨語意擴增。字串被分析成Exp(5),一項語意被解譯為5的表示式。
“John loves Mary”的語意 第一個步驟要決定何者為事實──要將哪個語意表示法關聯於哪一個片語。稍後要探討簡單敘述句”John loves Mary”,並將其語意說明Loves(John, Mary)相關聯。很容易可看出語意說明的哪一個部份來自於句中的哪一個字。
我們以圖22.15所顯示的文法和圖22.16的剖析樹作結尾。我們以圖22.15所顯示的文法和圖22.16的剖析樹作結尾。
1的語意 對於”John loves Mary”已經沒有疑問了,但是當我們全面考量1時,事情卻顯得更複雜了。在語意表達方面我們立刻要面對第8章的所有選擇:例如要如何表現時間,事件,以及內容?第一個選擇是使用8.4節的事件微積分表示法。 由敘述句”Every agent smells a wumpus”的表示可得知,立刻就出現兩個問題。第一,整個句子的語意似乎是NP的語意加上在部分填上VP的語意。第二個問題是我們需要將變數a當成Perceive關係的一項參數。
將準邏輯形式轉換為邏輯形式 語意說明的最後一個步驟是把準邏輯形式轉變為真正的一階邏輯。對準邏輯型態來說,就表示將量化項目轉變為真正的項目。用一個簡單的規則來表示:對每個準邏輯形式QLF中的量化項目〔qx P(x)〕,將量化項目以x取代,並將QLF以qx P(x) op QLF取代,當q是時op 是,若q為或!則op是。
實際解譯 對於實際資訊最明顯可見的需求是解釋索引(indexicals)的意義,索引是直接對應於目前狀況的片語。例如,在敘述句”I am in Boston today”之中,索引”I”和”today”的解譯就取決於誰在何時敘述該句。
22.8 混淆與去除混淆 在理想的通訊交換中,說者腦中有一個命題P並執行一項可能有多種解釋的語言行為,但是在目前狀況下最好是解釋為在溝通P。聽者了解這點,因此以P做為解釋,表示聽者能夠去除混淆或是解決了混淆。偶爾聽者可能會感到混淆,並且必須要求說明,但若是太常發生、或是聽者要求對說明再作說明,就會顯得很煩。
最簡單的混淆型態為字彙混淆(lexical ambiguity),一個字可能有多於一種意義。例如,形容詞“hot”可表示溫暖、辣、令人驚訝、放射性的、強烈的、性感的、流行的、或是偷來的。 語法混淆(syntactic ambiguity, 也被稱為結構性混淆(structural ambiguity))有時可能伴隨字彙混淆而發生。例如字串”I smelled a wumpus in 2,2”有兩種剖析:一種是命題片語修飾名詞,另一種則修飾動詞。
去除混淆 去除混淆是一種診斷的問題。聽者主張一個環境的模型,當聽到一項新的語言行為,就將該語言行為的可能解譯加入模型中以做為假說。第V部分的非確定推論技術可用來決定哪一項解譯最恰當。
通常去除混淆需要結合四種模型: 1.環境模型(The world model):一項事實發生在該環境中機率。 2.心智模型(The mental model):若該事實發生,則說者實現將該事實與聽者溝通之意圖的機率。9(這結合了關於說者的信念、說者對於聽者之信念的信念、以及諸如此類的模型。) 3.語言模型(The language model):已知說者意圖傳達某特定事實,則某特定文字字串被選取的機率。 4.聽覺模型(The acoustic model):已知說者以選擇一個已知文字字串,則特定聲音序列被產生的機率。在第24章介紹認知的時候,會再作討論。
22.9 溝通代理人 第一個建立溝通代理人的步驟是擴展文法成為能接受像“Go east”這類命令。目前為止,2語言只有一種語言行為的型態:敘述句。我們要用命令和知識將其擴展到產生2語言。
要靠指揮者(或任何聽到該項確認的人)作實際解譯以了解那個被解譯為Ack(True)的“OK”表示該代理人同意徹底執行一項命令(通常是最近的命令)。機器人奴隸的代理人程式列於圖22.4。但是就某方面來說,並不需要一個新的代理人程式﹔所要做的是使用既存的代理人(例如一個邏輯規劃代理人)並告知目標為理解其輸入以及正確的回應。