自然語言處理 - 簡介
語言是一種藉助於言語、閱讀和書寫進行溝通的方法。例如,我們思考、決策、計劃等等,都是用自然語言,準確地說,是用文字來完成的。然而,在這個人工智慧時代,擺在我們面前的一個重大問題是:我們能否以類似的方式與計算機溝通?換句話說,人類能否用他們的自然語言與計算機溝通?開發 NLP 應用對我們來說是一個挑戰,因為計算機需要結構化資料,而人類語言是非結構化的,往往具有歧義性。
從這個意義上說,我們可以說自然語言處理 (NLP) 是計算機科學,特別是人工智慧 (AI) 的一個子領域,它關注的是使計算機能夠理解和處理人類語言。從技術上講,NLP 的主要任務是為計算機編寫程式,用於分析和處理大量的自然語言資料。
NLP 歷史
我們將 NLP 的歷史劃分為四個階段。這些階段具有不同的關注點和風格。
第一階段(機器翻譯階段) - 20 世紀 40 年代後期至 60 年代後期
這一階段的工作主要集中在機器翻譯 (MT) 上。這個階段是一個充滿熱情和樂觀主義的時期。
現在讓我們看看第一階段包含的內容:
在 Booth & Richens 於 1949 年對機器翻譯的研究和 Weaver 的備忘錄之後,NLP 的研究始於 20 世紀 50 年代初。
1954 年,喬治城-IBM 實驗展示了從俄語到英語的有限自動翻譯實驗。
同年,《機器翻譯》(MT) 期刊開始出版。
第一次國際機器翻譯 (MT) 會議於 1952 年舉行,第二次於 1956 年舉行。
1961 年,在特丁頓國際機器翻譯語言和應用語言分析會議上提出的工作是這一階段的頂峰。
第二階段(人工智慧影響階段)– 20 世紀 60 年代後期至 70 年代後期
在這個階段,完成的工作主要與世界知識及其在構建和操縱意義表示中的作用有關。這就是為什麼這個階段也被稱為人工智慧風格階段。
這一階段包含以下內容:
1961 年初,開始研究解決和構建資料或知識庫的問題。這項工作受到了人工智慧的影響。
同年,還開發了一個棒球問答系統。該系統的輸入受到限制,所涉及的語言處理很簡單。
Minsky (1968) 描述了一個更先進的系統。與棒球問答系統相比,該系統得到了認可,併為在解釋和響應語言輸入時對知識庫進行推理的需求提供了支援。
第三階段(語法邏輯階段)– 20 世紀 70 年代後期至 80 年代後期
這個階段可以描述為語法邏輯階段。由於上一階段實際系統構建的失敗,研究人員轉向使用邏輯進行人工智慧中的知識表示和推理。
第三階段包含以下內容:
在十年結束時,語法邏輯方法幫助我們獲得了功能強大的通用句法處理器,例如 SRI 的核心語言引擎和語篇表示理論,這些提供了處理更長語篇的方法。
在這個階段,我們獲得了一些實用的資源和工具,例如解析器,例如 Alvey 自然語言工具以及更多可操作的和商業系統,例如用於資料庫查詢的系統。
20 世紀 80 年代對詞典的研究也指向了語法邏輯方法的方向。
第四階段(詞彙語料庫階段)– 20 世紀 90 年代
我們可以將其描述為詞彙語料庫階段。該階段具有在 20 世紀 80 年代後期出現的詞彙化語法方法,並日益產生影響。隨著用於語言處理的機器學習演算法的引入,這個十年自然語言處理領域發生了革命。
人類語言的研究
語言是人類生活中至關重要的組成部分,也是我們行為中最基本的一個方面。我們主要可以透過兩種形式體驗它——書寫和口語。在書寫形式中,它是將我們的知識一代一代傳承下去的一種方式。在口語形式中,它是人類協調日常行為的主要媒介。語言在各個學術學科中都有研究。每個學科都有自己的一套問題和解決這些問題的一套解決方案。
請考慮下表以瞭解這一點:
| 學科 | 問題 | 工具 |
|---|---|---|
語言學家 |
如何用詞構成短語和句子? 什麼限制了句子的可能含義? |
關於形式和意義的直覺。 結構的數學模型。例如,模型論語義學、形式語言理論。 |
心理語言學家 |
人類如何識別句子的結構? 如何識別單詞的含義? 理解發生在什麼時候? |
主要用於測量人類績效的實驗技術。 觀察結果的統計分析。 |
哲學家 |
單詞和句子如何獲得意義? 單詞如何識別物件? 什麼是意義? |
使用直覺進行自然語言論證。 邏輯和模型論等數學模型。 |
計算語言學家 |
我們如何識別句子的結構? 如何對知識和推理進行建模? 我們如何使用語言來完成特定任務? |
演算法 資料結構 表示和推理的形式模型。 人工智慧技術,如搜尋和表示方法。 |
語言中的歧義和不確定性
歧義通常用於自然語言處理,可以指能夠以多種方式理解的能力。簡單來說,我們可以說歧義是能夠以多種方式理解的能力。自然語言非常含糊不清。NLP 具有以下型別的歧義:
詞彙歧義
單個詞的歧義稱為詞彙歧義。例如,將單詞silver視為名詞、形容詞或動詞。
句法歧義
當一個句子以不同的方式解析時,就會發生這種歧義。例如,句子“The man saw the girl with the telescope”。它含糊不清的是男人看到拿著望遠鏡的女孩,還是他透過望遠鏡看到她。
語義歧義
當詞語本身的含義可能被誤解時,就會發生這種歧義。換句話說,當句子包含一個含糊不清的詞或短語時,就會發生語義歧義。例如,句子“The car hit the pole while it was moving”具有語義歧義,因為解釋可以是“正在移動的汽車撞上了電線杆”和“汽車撞上了正在移動的電線杆”。
回指歧義
這種歧義是由於在語篇中使用回指實體造成的。例如,馬跑上山。山很陡峭。它很快累了。這裡,兩次“它”的回指造成了歧義。
語用歧義
這種歧義指的是短語的上下文賦予其多種解釋的情況。簡單來說,我們可以說,當陳述不明確時,就會出現語用歧義。例如,句子“我也喜歡你”可以有多種解釋,例如我喜歡你(就像你喜歡我一樣),我喜歡你(就像其他人一樣)。
NLP 階段
下圖顯示了自然語言處理中的階段或邏輯步驟:
形態分析
這是 NLP 的第一階段。這一階段的目的是將語言輸入塊分解成對應於段落、句子和單詞的標記集。例如,像“uneasy”這樣的詞可以分解成兩個子詞標記,如“un-easy”。
句法分析
這是 NLP 的第二階段。這一階段的目的是雙重的:檢查句子是否結構良好,並將其分解成一個結構,該結構顯示不同單詞之間的句法關係。例如,像“The school goes to the boy”這樣的句子會被句法分析器或解析器拒絕。
語義分析
這是 NLP 的第三階段。這一階段的目的是從文字中提取確切的含義,或者可以說從字典中提取含義。對文字進行有意義性檢查。例如,語義分析器會拒絕像“熱的冰淇淋”這樣的句子。
語用分析
這是 NLP 的第四階段。語用分析只是將存在於給定上下文中的實際物件/事件與在上一階段(語義分析)中獲得的物件引用相匹配。例如,句子“把香蕉放在架子上的籃子裡”可以有兩種語義解釋,語用分析器將在這兩種可能性之間進行選擇。