NLP 語言模型_ 它們是什麼_ N-gram 示例


NLP 中的語言模型是統計生成的計算模型,它們捕獲單詞和短語之間的關係以生成新的文字。從本質上講,它們可以找到給定單詞序列中下一個單詞的機率,以及整個單詞序列的機率。

這些語言模型很重要,因為它們有助於各種 NLP 任務,例如機器翻譯、語言生成和詞語補全等。您可能沒有意識到,但在電腦或手機上打字時,所做的更正和您的寫作本質上是由 NLP 指導的;詞語補全,有時拼寫和短語的錯誤檢測,都是基於機率語言模型。

本文將介紹語言模型的工作原理、統計和機率背景、使用的各種技術以及它們在各種環境中的應用。具體來說,我們將介紹 N-gram 模型,它是其中最基本的一種。

什麼是 N-gram 語言模型以及它是如何推匯出來的?

語言模型有兩種型別:統計模型和基於神經網路的語言模型。N-gram 屬於統計模型,藉助馬爾可夫屬性,為句子和句子中的單詞建立機率分佈。讓我們深入瞭解這些模型是如何形成的。根據我們對條件機率的瞭解,我們可以使用機率的鏈式法則找到單詞序列的機率,以及給定公式的下一個單詞的機率,其中 Wi 表示句子中的第 i 個單詞

序列的機率如下

Equation 1: P(W1, W2,....., Wn) = P(W1) x  P(W2|W1) x P(W3|W1,W2) …..x P(Wn|W1,W2,....,Wn-1)

序列中給定單詞的機率將是

$$\mathrm{公式\:2\::\:P(Wi\:|\:Wi-1,\:Wi-2,\:.....,\:W1)\:=\:\frac{Count(wi−1,wi−2,....,w1)}{Count(wi,wi−1,wi−2,...,w1)}}$$

然而,在處理大型語料庫時,上述公式中使用的這種方法的一般思想需要花費太多時間和資源來計算。我們可以改為利用我們對機率的瞭解來尋找新的方法來近似單詞和句子的機率。

在處理每個前面的單詞時,我們意識到這可能是一項相當繁瑣的任務,因此我們可以假設上述馬爾可夫屬性。

這意味著,與其關注每個前面的單詞,我們只關注固定數量的單詞,這些單詞反過來代表所有前面的單詞。因此,我們得到以下估計 -

Equation 3: P(Wi = w1 | Wi-1 = wi-1, Wi-2 = wi-2, …. W1 = w1)  ≈ P(Wi = wi | Wi-1 = wi-1) 

現在,我們可以結合“公式 1”和“公式 3”來建立一個公式,我們可以透過近似更容易地使用它 -

Equation 4: P(W1, W2,....., Wn)  ≈ P(W1) x  P(W2|W1) x P(W3|W2) …..x P(Wn|Wn-1) 

請注意,在上面的公式中,我們是如何只選擇機率序列中的兩個單詞的?好吧,在 n-gram 模型中,這將是一個二元語法。如果我們只關注每個特定的單詞,它將是單字語法,如果我們依次選擇三個單詞,我們將得到三元語法。這種命名約定繼續命名為 4-gram、5-gram,依此類推。

何時使用哪個模型

要了解何時使用哪種型別的模型,例如二元語法或 5-gram 模型,將取決於資料集的大小。二元語法模型適合小型資料集,因為它們比大型資料集上的較大 n-gram 更可能出現,這可能會導致稀疏性。另一方面,對於較大的資料集,較大的 n-gram 模型 n 大小將起作用。

為了幫助具體理解這一點,讓我們用實際的單詞替換上面公式中提到的變數。下面是一個特定句子的二元語法模型示例(請注意,STARTEND 用於指示下一個單詞是開頭還是前一個單詞是結尾) -

P(This is a test sentence) = P(This | START) x P(is | This) x P(a | This is) x P(test | This is a) x P(sentence | This is a test ) x P(END | This is a test sentence) ≈ P(This | START) x P(is|This) x P(a|is) x P(test|a) x P(sentence|test) x P(END |sentence)

結論

在本教程中,我們介紹瞭如何在不使用深度學習的情況下計算特定的語言模型,深度學習在過去幾年中迅速普及。這應該讓您很好地瞭解不斷變化的領域中不同的想法是如何產生的。

更新於: 2023年7月19日

245 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.