自然語言處理(N gram語言模型)

2021-09-16 12:04:59 字數 2049 閱讀 9447

n-gram語言模型

問題描述:由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個**使用者填寫的公司名是否有效的模型出來。

目標:問題提出來了,就是想找到一種辦法來**使用者填寫的公司名是否有效?

問題分析:要想**使用者填寫的公司名稱是否有效,需要用到nlp的知識內容,我們首先能夠想到的是利用nlp中的語言模型,來對公司名稱進行訓練建模,並結合其他的特徵(如:長度等)進行**。

一、n-gram的原理

n-gram是基於乙個假設:第n個詞出現與前n-1個詞相關,而與其他任何詞不相關。(這也是隱馬爾可夫當中的假設。)整個句子出現的概率就等於各個詞出現的概率乘積。各個詞的概率可以通過語料中統計計算得到。假設句子t是有詞序列w1,w2,w3…wn組成,用公式表示n-gram語言模型如下:

p(t)=p(w1)*p(w2)*p(w3)***p(wn)=p(w1)*p(w2|w1)*p(w3|w1w2)***p(wn|w1w2w3…)

一般常用的n-gram模型是bi-gram和tri-gram。分別用公式表示如下:

bi-gram:  p(t)=p(w1|begin)*p(w2|w1)*p(w3|w2)***p(wn|wn-1)

tri-gram:  p(t)=p(w1|begin1,begin2)*p(w2|w1,begin1)*p(w3|w2w1)***p(wn|wn-1,wn-2)

注意上面概率的計算方法:p(w1|begin)=以w1為開頭的所有句子/句子總數;p(w2|w1)=w1,w2同時出現的次數/w1出現的次數。以此類推。(這裡需要進行平滑)

1
二、n-gram的應用

根據上面的分析,n-gram(有時也稱為n元模型)是自然語言處理中乙個非常重要的概念,通常在nlp中,它主要有兩個重要應用場景:

(1)、人們基於一定的語料庫,可以利用n-gram來預計或者評估乙個句子是否合理。

(2)、另外一方面,n-gram的另外乙個作用是用來評估兩個字串之間的差異程度。這是模糊匹配中常用的一種手段。

1、n-gram在兩個字串的模糊匹配中的應用

首先需要介紹乙個比較重要的概念:n-gram距離。

(1)n-gram距離

它是表示,兩個字串s,t分別利用n-gram語言模型來表示時,則對應n-gram子串中公共部分的長度就稱之為n-gram距離。例如:假設有字串s,那麼按照n-gram方法得到n個分詞組成的子字串,其中相同的子字串個數作為n-gram距離計算的方式。具體如下所示:

字串:s=「abc」,對字串進行分詞,考慮字串首尾的字元begin和end,得到begin,a,b,c,end。這裡採用二元語言模型,則有:(begin,a)、(a,b)、(b,c)、(c,end)。

字串:t=「ab」,對字串進行分詞,考慮字串首尾的字元begin和end,得到begin,a,b,end。這裡採用二元語言模型,則有:(begin,a)、(a,b)、(b,end)。

此時,若求字串t與字串s之間的距離可以用m-(n-gram距離)=0。

然而,上面的n—gram距離表示的並不是很合理,他並沒有考慮兩個字串的長度,所以在此基礎上,有人提出非重複的n-gram距離,公式如下所示:

4+3-2*3=1

2、n-gram在判斷句子有效性上的應用

假設有乙個字串s=「abc」,則對應的bi-gram的結果如下:(begin,a)、(a,b)、(b,c)、(c,end)。則對應的出現字串s的概率為:

p(abc)=p(a|begin)*p(b|a)*p(c|b)*p(end|c)。

3、n-gram在特徵工程中的應用

全新的介面設計 ,將會帶來全新的寫作體驗;

在創作中心設定你喜愛的**高亮樣式,markdown 將**片顯示選擇的高亮樣式 進行展示;

全新的 katex數學公式 語法;

增加了支援甘特圖的mermaid語法1 功能;

增加了 焦點寫作模式、預覽模式、簡潔寫作模式、左右區域同步滾輪設定 等功能,功能按鈕位於編輯區域與預覽區域中間;

增加了 檢查列表 功能。

自然語言處理 n gram模型深度理解

n gram模型是自然語言處理裡面的乙個傳統模型。我們來看看他是怎麼實現的吧!要了解n gram模型,我們先來看看什麼是語言模型!the students opened their 其中可以填寫books laptops exam minds 那麼語言模型就是用來 這個空當中應該填寫什麼單詞。語言模...

自然語言處理中的N Gram模型詳解

n gram 有時也稱為n元模型 是自然語言處理中乙個非常重要的概念,通常在nlp中,人們基於一定的語料庫,可以利用n gram來預計或者評估乙個句子是否合理。另外一方面,n gram的另外乙個作用是用來評估兩個字串之間的差異程度。這是模糊匹配中常用的一種手段。本文將從此開始,進而向讀者展示n gr...

自然語言處理中n gram模型學習筆記

對於很多自然語言處理領域的問題,比如機器翻譯,處理要確定 結果中的字詞集合以外,還有乙個非常重要的方面就是要評估文字序列是否符合人類使用的習慣。也就是要判斷文字是否通順 自然 甚至在翻譯問題上,信 達 雅 是一種高階的要求。語言模型就是用於評估文字符合語言使用習慣程度的模型。要讓機器來評估文字是否符...