語言模型(N Gram)

2021-07-27 14:11:42 字數 1683 閱讀 2628

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

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

問題分析:要想**使用者填寫的公司名稱是否有效,需要用到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)

二、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)。

N Gram語言模型

wikipedia上有關n gram的定義 n gram是一種統計語言模型,用來根據前 n 1 個item來 第n個item。在應用層面,這些item可以是音素 語音識別應用 字元 輸入法應用 詞 分詞應用 或鹼基對 基因資訊 一般來講,可以從大規模文字或音訊語料庫生成n gram模型。習慣上,1 ...

語言模型(N Gram)

問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用者填寫的公司名稱是否有...

語言模型(N Gram)

問題描述 由於公司業務產品中,需要使用者自己填寫公司名稱,而這個公司名稱存在大量的亂填現象,因此需要對其做一些歸一化的問題。在這基礎上,能延伸出乙個 使用者填寫的公司名是否有效的模型出來。目標 問題提出來了,就是想找到一種辦法來 使用者填寫的公司名是否有效?問題分析 要想 使用者填寫的公司名稱是否有...