n-gram模型是自然語言處理裡面的乙個傳統模型。我們來看看他是怎麼實現的吧!要了解n-gram模型,我們先來看看什麼是語言模型!
the students opened their _______. (其中可以填寫books/laptops/exam/minds),那麼語言模型就是用來**這個空當中應該填寫什麼單詞。
語言模型的正式定義為:
也就是我們在知道前面的單詞的情況下,計算最後乙個單詞x(t+1)的概率是多大,最後乙個單詞x(t+1)可以是詞表當中的任意單詞,我們可以將詞表當中的每乙個單詞都計算一遍。上面的這個公式其實也很容易理解,它是乙個條件概率的公式,表示的是在x(t),x(t-1),... ,x(1)發生的條件下,x(t+1)發生的概率。
同樣的,我們除了得到最後乙個單詞發生的概率,我們可以得到整段句子所發生的概率,可以使用公式寫成下面這種形式:
這樣就得到整個句子發生的概率,整個公式在概率論與數理統計裡十分常見,也就是簡單將具備發生多個事件概率表示式進行展開,方便計算。
我們的語言模型的運用非常常見,在生活當中,比如你使用了你的智慧型手機進行打字,就會出現這樣的場景:
打字的輸入法就會**你打字輸出的下乙個單詞是什麼,概率越大的放在最前面。
同樣的,我們在進行谷歌搜尋的時候,谷歌會幫我們將後面的句子進行補全,其實也是用了這個語言模型來**我們後面的乙個單詞是什麼;
下面我們進入到n-gram模型的部分。
在學習了語言模型之後,你可能就會感到很疑惑,怎麼樣才能夠實現乙個語言模型,將語言模型訓練出來呢?
答案很簡單:那就是訓練乙個n-gram模型!
下面進入n-gram模型的定義:
n-gram的定義:g-gram就是n個連續的單詞串連在一起。
1-gram(只有乙個單詞):words,i,think
2-gram:i think, ha ha, the students
3-gram: i think so, i think he, i do not think
以此類推
現在我們做出乙個簡單的假設,假設第x(t+1)個單詞是什麼僅僅取決於之前的(n-1)個單詞。那麼前面的(n-1)個單詞正好可以組成乙個(n-1)-gram。因此我們可以用前面的(n-1)個單詞來計算第x(t+1)個單詞出現的概率。列式如下:
在上面的公式當中,我們將條件概率的公式進行了展開,分子分母分別相除。在上面的公式當中,其實逗號 「,」 就相當於 「∩「 符號,表示兩個事件的交集。那麼我們如何計算出這個值呢?很簡單,用數數!公式如下:
下面舉乙個數數的例子:
得解!這樣n-gram就可以通過這個公式來計算下乙個單詞出現的概率了!以上就是n-gram模型實現的整個過程,筆者可能也有一些理解不當之處嗎,還請多多指正!
自然語言處理(N gram語言模型)
n gram語言模型 問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用...
自然語言處理中的N Gram模型詳解
n gram 有時也稱為n元模型 是自然語言處理中乙個非常重要的概念,通常在nlp中,人們基於一定的語料庫,可以利用n gram來預計或者評估乙個句子是否合理。另外一方面,n gram的另外乙個作用是用來評估兩個字串之間的差異程度。這是模糊匹配中常用的一種手段。本文將從此開始,進而向讀者展示n gr...
自然語言處理中n gram模型學習筆記
對於很多自然語言處理領域的問題,比如機器翻譯,處理要確定 結果中的字詞集合以外,還有乙個非常重要的方面就是要評估文字序列是否符合人類使用的習慣。也就是要判斷文字是否通順 自然 甚至在翻譯問題上,信 達 雅 是一種高階的要求。語言模型就是用於評估文字符合語言使用習慣程度的模型。要讓機器來評估文字是否符...