自然語言中的短語和語法結構


“人工智慧”(AI)是計算機科學的一個分支,試圖賦予計算機理解口語和書面文字的能力,類似於人類,這是一個“自然語言處理”(NLP)的領域。

計算語言學結合了多種技術,包括深度學習、機器學習和統計學。結合這些技術使計算機能夠完全“理解”文字和語音的含義,包括說話者或作者的意圖和情感,並能夠將人類語言解釋為文字和音訊資料。

為什麼在NLP中使用語法結構很重要?

交流是透過來自共同符號系統的資訊訊號來共享資訊的行為。交流幫助個人在一個並非所有事物都可見的世界中取得成功,因為它允許他們從他人的觀察和推論中獲得知識。由於人類比任何其他物種都更頻繁地進行交流,因此計算機代理將需要學習語言才能有效運作。為了完全理解對話,需要比基本的垃圾郵件分類技術更高階的模型。這些模型涉及分析句子的語法結構,加入單詞背後的含義,然後將其應用於翻譯文字或識別語音等任務。

N-gram 模型就是這樣一種模型,它用於許多自然語言處理應用程式中,包括語音識別、機器翻譯和預測文字輸入模型。N-gram 模型預測最有可能出現在 N-1 個單詞序列之後的單詞。它是一個機率模型,已經在文字語料庫上進行了實踐。

為了構建 N-gram 模型,我們計算單詞序列在文字中出現的頻率,並估計機率。然而,這些模型存在侷限性,因此我們可以透過使用平滑、插值和回退等技術來改進。我們可以透過觀察“紅色汽車”比“汽車紅色”和其他類似例子更常見來推斷,在英語中,形容詞通常出現在名詞之前。雖然此規則存在例外,例如“主菜”中的形容詞“主”,但瞭解詞性是一種有用的概括。當我們將不同的詞性組合成名詞短語或動詞短語等短語,然後將這些短語組合成以樹為代表的句子結構時,這種理解就變得更有用,巢狀的短語由其各自的類別標記。

語法形式的型別

僅僅基於重寫規則,喬姆斯基 (1957) 區分了四類語法形式。每個類別都可以描述較低能力類別可以描述的所有語言,以及一些額外的語言,並且這些類別可以按層次排列。語法形式可以根據它們生成或可以表示的語言數量進行分類。以下是喬姆斯基提出的四種分類:

  • 遞迴可列舉文法

  • 上下文無關文法

  • 正則文法

  • 上下文有關文法

遞迴可列舉文法

遞迴可列舉文法中沒有語法規則。與規則 AB -> CD 一樣,重寫文法的左右兩側都允許包含任意數量的終結符和非終結符。這些文法的表達能力與圖靈機相當。

示例

這是一個遞迴可列舉文法的示例:

S → aSb | ε

在這個文法中,S 作為起始符號,而“a”和“b”代表終結符,空字串分別用ε表示。這個文法產生所有以零個或多個“a”符號開頭,並且具有相同數量的“b”符號的字串。例如,此語言產生諸如“ab”、“aabb”、“aaabbb”等字串。

需要注意的是,由於此文法是遞迴可列舉的,因此沒有演算法能夠在有限的時間內檢測給定字串是否屬於此文法產生的語言。這是因為該文法支援無限遞迴,這使得“S”可以在非終結符“S”再次出現在右側之前被替換為“aSb”。結果,這個文法產生無限數量的字串。

上下文無關文法

上下文無關文法 (CFG) 是一種形式文法,它根據其組成元素(稱為符號或非終結符)以及指定如何連線這些符號以構成可接受的句子或短語的規則來指定語言的結構。上下文無關文法 (CFG) 在左側只有一個非終結符。每個規則允許在任何情況下將右側重寫為非終結符。CFG 廣泛用於自然語言和程式語言的文法,儘管現在人們普遍認識到至少某些自然語言包含並非上下文無關的結構(Pullum,1991)。上下文無關文法可以表示 a 和 b,但不能表示 a 和 bn c。

示例

這是一個生成簡單的算術表示式語言的上下文無關文法的示例:

S → A
A → A + M | M
M → M * K | K
K → A | num

在這個文法中,非終結符 A、M 和 K 分別代表表示式、項和因子。終結符 +、* 和 () 分別代表算術運算子和括號,而符號 num 表示數值。根據產生式規則,可以將這些符號連線起來以建立有效的表示式。例如,規則 M -> M * K 允許透過使用 * 運算子將較小的項與因子組合來生成項。規則 A -> A + M 允許透過使用 + 運算子將兩個較小的表示式組合來形成表示式。

我們可以使用這種語言建立諸如“2 + 3 * 4”、“(5 + 6) * 7”和“8”之類的表示式。

正則文法

產生正則語言的形式文法稱為正則文法。“正則語言”是指任何可以用正則表示式表示的語言,或者可以使用確定性或非確定性有限自動機表示的語言。每個規則的左側只有一個非終結符,右側有一個終結符,後面可能有一個非終結符。正則文法與有限狀態機等效。它們不適合程式語言(aan bn 語言的子集),因為它們無法表達諸如平衡的開括號和閉括號之類的特性。最接近的是表達 a*b*,這是一系列任意數量的 a 後跟任意數量的 b。

示例

這是一個例子:

S -> 0K | 1M | ε
K -> 0K | 1K | ε
M -> 0M | 1M | ε

在這個文法中,起始符號是 S,空字串用ε表示。該文法產生由 0 和 1 組成的字串,以及可選的最終符號。例如,它可以產生空字串、字串“0110”、“101”和“0010”。產生式規則允許重複 0 或 1,也可以選擇完全排除它們。可以使用具有三個狀態的有限自動機(每個非終結符一個)來描述此文法。

上下文有關文法

上下文有關文法是一種形式文法,其產生式規則具有 A -> αBβ 的形式,其中 A 是非終結符,α 和 β 是任意符號串(終結符和非終結符),且 β 是一個非空的符號串。條件是β的字串長度必須至少與α的字串長度一樣長。這意味著非終結符 A 只能在由字串 α 和 β 指定的確切上下文中被替換為 β。

示例

這是一個上下文有關文法規則的示例:

SAB → SBB

根據此規則,非終結符 S 只有在它緊跟在字母“A”和“B”之後時才能被替換為 SBB。可以使用此規則將字串“SABB”更改為“SBBBB”;但是,“SABAB”不能更改,因為“A”和“B”沒有出現在上下文中。

直到 20 世紀 80 年代,語言學家才專注於上下文無關語言和上下文有關語言。由於需要快速吸收和學習千兆位元組或太位元組的網際網路文字,即使這意味著更不深入的檢查,近年來人們對正則文法的興趣也再次興起。

結論

已經建立了一個基本的英語文法,用於與 Wumpus 世界代理進行通訊。它將被增強以更像真實的英語,並被稱為 E0。但是,沒有完美的英語文法,因為不同的人對什麼是正確的英語有不同的看法。

更新於:2023年8月7日

瀏覽量 1K+

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告