日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

N-Gram的基本原理

發布時間:2024/4/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 N-Gram的基本原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.N-Gram的介紹

N-Gram是基于一個假設:第n個詞出現與前n-1個詞相關,而與其他任何詞不相關(這也是隱馬爾可夫當中的假設)。整個句子出現的概率就等于各個詞出現的概率乘積。各個詞的概率可以通過語料中統計計算得到。通常N-Gram取自文本或語料庫。

N=1時稱為unigram,N=2稱為bigram,N=3稱為trigram,假設下一個詞的出現依賴它前面的一個詞,即 bigram,假設下一個詞的出現依賴它前面的兩個詞,即 trigram,以此類推。

舉例中文:“你今天休假了嗎”,它的bigram依次為:

你今,今天,天休,休假,假了,了嗎

理論上,n 越大越好,經驗上,trigram 用的最多,盡管如此,原則上,能用 bigram 解決,絕不使用 trigram。

假設句子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...)
p(T)?就是語言模型,即用來計算一個句子 T 概率的模型。

以上公式難以實際應用。此時出現馬爾可夫模型,該模型認為,一個詞的出現僅僅依賴于它前面出現的幾個詞。這就大大簡化了上述公式。

P(w1)P(w2|w1)P(w3|w1w2)…P(wn|w1w2…wn-1)≈P(w1)P(w2|w1)P(w3|w2)…P(wn|wn-1)

一般常用的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出現的次數。以此類推

2.一個經典的二元語言模型例子

語料庫中一些單詞的詞頻,統計出各個單詞與其他單詞的前后聯系的頻次,組成一個7*7的二維矩陣,如下圖

那么語句 ?“I want to eat Chinese food” ?的二元語言模型概率計算過程如下

3.構建 N-Gram 語言模型

通常,通過計算最大似然估計(Maximum Likelihood Estimate)構造語言模型,這是對訓練數據的最佳估計,如 bigram 公式如下:

p(wi|wi?1)=fraccount(wi?1,wi)count(wi?1)——條件概率

如給定句子集“<s> I am Sam </s>

? ? ? ? ? ? ? ? ? ? ? ?<s> Sam I am </s>

? ? ? ? ? ? ? ? ? ? ? ?<s> I do not like green eggs and ham </s>”

部分 bigram 語言模型如下所示

?

count(wi)?如下:

count(wi?1,wi)?如下:

則 bigram 為:

那么,句子“<s> I want chinese?food </s>”的概率為:

p(<s>Iwantchinesefood</s>)?=p(I|<s>)P(want|I)p(chinese|want)p(food|chinese)p(</s>|food)=.000031

?

轉載于:https://www.cnblogs.com/bep-feijin/p/9430164.html

總結

以上是生活随笔為你收集整理的N-Gram的基本原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。