Applied Natural Language Processing —— 讀書筆記 第二章

前一章描述了自然語言理解中關於人如何理解的部分,這個過程包含了內部和外部的信息。外部信息是通過視覺或者聽覺傳遞的語言內容,內部信息是個人關於這個時間和語言的知識。這些過程的結果就是使得人們能夠理解語言輸入。

解決自然語言理解包含三個問題,第一個是模擬思考問題的過程,第二個是模擬思考的結果,第三個是模擬理解這個輸入語言內容所需要的世界知識world knowledge。後兩個都涉及到了如何表示的問題。

AI問題的研究帶來了許多表示抽象物體的方式,這一章的目的就是展示如何用AI技術解決這三個問題,在討論的同時也會包含NL技術發展的歷史。這個講解會按照概念從屬理論conceptual dependency來講。


2.1 不基於理解的自然語言處理

首先來討論一個問題,計算機需要在多大的程度上理解自然語言。

最開始嘗試進行自然語言處理是在20世紀50年代中期。當時的研究是利用大量的計算資源,將一種語言翻譯成爲另一種語言,用的具體技術是在存儲一些很大的源語言,這些源語言被當作是字典,翻譯就逐字翻譯(查字典)。有一些其他的系統會用到語法分析來調整對應不同語言之間字的順序。

總的流程就是source text -> target language translation

但是這些機器翻譯的結果並不是令人滿意。最主要的問題是這種逐字翻譯、一一對應的翻譯方式是有問題的,原因是每個單詞詞意的模糊性(多義性);另外有一些俚語或者隱喻性的內容也會造成翻譯上的困難。除了多義性,還有一個與之相反的原因,許多源語言中的單詞在目標語言中沒有對應的單詞翻譯。其他一些單詞則是不同語境和文化背景下,含義有所變化。(對於這些人工解決都有點困難的問題,在電腦能給解決之前是不是得先有人工解決的方案?)

人工翻譯不會遇到這些問題的原因是人們會先將語言進行理解,也就是source text -> meaning of source text -> target language translation

1960年,Bar Hillel聲明,如果電腦程序要能夠成功將一個語言轉換成另一個語言,那麼它必須先像人一樣,理解語言。六年後,在現在非常著名的ALPAC(1966)報告中這個觀點被重申。


2.2 電腦程序能夠理解意味着什麼?

隨着1966ALPAC報告的發佈,當時人們還不太瞭解對於程序來說,理解語言意味着什麼。之後,大量的工作投入到當中。


2.2.1 文字含義在人類記憶時的表現

首先對於人類認知語言的方面,我們並不清楚在這方面的物理結構,比如多少腦細胞和化學物質涉及到。但是我們能夠知道一些功能性特徵,並且用電腦程序模擬。

文字含義的表現不是基於字的word based,證明:人們可以記下一個故事的大概內容,但是無法記住每個單詞。

文字含義的表現必須是獨立於語言的。另外可以證明語言文字的表示不是基於字的,就是無法逐字將一門語言翻譯成另外一門語言。

基於以上的理由,許多人認爲存在一種特殊的語言language of thought。

2.2.2 概念從屬理論conceptual dependency

Schank的概念從屬理論是最新的理論(本書是1987年發行)。

概念從屬是一種獨立於語言的language-independent機制。Schank理論的基本原理是:

For any two sentences that are identical in meaning, regardless of language, there should be only one representation.

Schank確定了11個原始行爲primitive ACT作爲理論的基礎,它們代表的是行爲,而不是動詞。這麼做的原因是,如果ACT表示的是動詞,有時候會受到上下文含義的影響。比如gave,在句子John have Mary a book.和句子John gave Mary a tip on the ninth race.有不同的含義。

每一個原始行爲primitive ACT都是一個框架,有slot組成,每個slot都填入名詞。除了表示行爲,Schank的理論還提供了一系列狀態的表示,狀態的表示有連續的、有範圍的(-10到10這種),還有表示物品之間關係的,比如CONTROL, PART, POSSESSION, OWNERSHIP, CONTAIN等等。

手段:許多句子的概念化都由多於一個primitive ACTs組成。

因果關係:ACTs組合起來,也經常表示ACT和狀態改變的因果關係。在概念從屬理論中,有五個因果鏈的類型:resultant, enablement, disenablement, initiation, reason.比如如下句子:

John killed Mary.

(do   actor   (John)

        result  (Health    object    (Mary)

                                   value    (-10))

用概念從屬,就可以避免語言輸入時候產生的模糊性。

2.2.3 電腦理解的過程

表示法的理論,比如概念從屬理論conceptual dependency,對於電腦的自然語言理解沒有什麼太大的價值。概念從屬理論的價值在於,Schank和他的學生對此並不滿足,他們將自然語言作爲輸入,將文字表示作爲輸出,這個程序叫做解析器parser。

第一個解析器是1972年由Chris Riesbeck寫完的ELI,他當時是作爲斯坦福graduate student,在Roger Schank's lab打工。後來又Larry Birnbaum和Mallory Selfridge在Riesbeck的最開始版本上面進行了提升,放到了他們自己的CA解析器上(1979)。再後來是1982年Michael Dyer和Tom Wolf的BORIS解析器。概念解析器一般有兩個組成部分,一個是程序上的部分procedural,另一個是說明的部分declarative。

1. 說明的部分declarative component是一個英語單詞、短語和習語表達組成的字典。概念從屬的語法就是一個特殊的語法頭,比如ATRANS,後面是幾個slot-value對。

2. 過程的部分procedural component,或者說控制結構control structure,從左到右讀入input,然後將運行的結果保存到兩個數據結構中:concept-list和demon-list。每個單詞、短語和習語表達都會在字典中找到對應的意思,並且加到concept-list中。所以字典中的demons都會添加到demon-list中。demons的作用是如何將concept-list中單獨的概念集合成更大的概念。最終,就是將整個句子表示成一個意思。

概念上來說,demon會和主程序並行進行。demon可以理解爲對某些狀態的期望值,可以達到去除多樣性的作用。每當有demon符合或者不符合是,都會從demon-list中添加或者刪除。


Rieger提出了引用機制inference mechanism,這個機制會將輸入中對應的矩陣轉換成相對應的概念,同時也有用到某種控制結構。

margie系統級那個Riesbeck概念解析器、Rieger引用機制和由Neil Goldman寫得發生器組成。margie系統說明了概念從屬方法的可行性。生成器有兩種模式,改意模式paraphrase mode和引用模式inference mode。改意模式是會根據同一個input,產生很多含義相同的句子。引用模式是會根據概念分析其產生的初始結果,利用一些引用內容進行提升。

margie系統中的推薦機制缺陷是無法控制,會產生大量的引用,其中許多是不相關的。

Schank和Abelson假設了人們在記憶的時候,在語言理解過程中有一個上層的機制,叫做腳本scripts。一個腳本包含了一系列場景scene,比如有個人在餐廳吃飯,scene就如下: entering -> ordering -> eating -> exiting

Wilensky在1987年提出了一個目標分類,他的一個項目PAM就可以理解行爲的目標。

Schank在1982年提出了script的結果是靜態的,無法滿足動態記憶,比如遺忘、回憶和學習。爲了滿足這些動態記憶的過程,Schank提出了另外一種叫做MOP的結構。

以上提到的scrip、plan和goal都是知識架構knowledge structure,是一種不連貫記憶。另外一種知識架構就是語義網絡。語義架構是將事實組織起來,比如動物的分類,每一種分類都有各自的特徵。


2.3 NLP的理論問題

2.3.1 表現上的問題

AI研究已經發掘了許多表現特徵的策略,除了概念從屬和語義網絡,其他人還做了許多有關於primitive的工作。大部分的知識結構只在特定的條件下比較適用,比如prolog是特地爲支持邏輯形式support logic formalism設計的。

2.3.2 語法和語義

大部分理論都認爲自然語言系統可以將一個自然語言轉換到一個獨立語言表現上,比如

English -> Meaning Representation

現在的爭論之處是是否有必要在這中間加入一層語法表示

English -> Syntactic Representation -> Meaning Representation

大家都確定語法分析在自然語言理解中起作用,但是起作用的程度收到了質疑。




總結:

這一張討論最主要的貢獻還是就究竟對於電腦來講,什麼叫做自然語言理解——讓電腦產生一個規範的、獨立於語言的含義表示。從自然語言到含義表示的多對一使得我們可以用推測inference過程。推測過程和推理reasoning過程然後可以得到真實世界的知識。

這一類可以理解自然語言的系統被叫做基於知識的自然語言系統。

發佈了288 篇原創文章 · 獲贊 12 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章