1. 程式人生 > >N-gram的簡單的介紹

N-gram的簡單的介紹

形式 ram rod 關聯 概率 發生 沒有 TP 兩個

目錄

  1. 聯合概率
  2. 條件概率
  3. N-gram的計算方式

前言:

    N-gram是機器學習中NLP處理中的一個較為重要的語言模型,常用來做句子相似度比較,模糊查詢,以及句子合理性,句子矯正等. 再系統的介紹N-gram前,我們先了解一下這幾種概率.

正文:

  1、聯合概率介紹:

    形如:p(W1,....,Wn); 表示的意思是: w1,...Wn同時發生的概率.列舉一個具體的例子說明:

    P(A,B) ,表示的是A,B同時發生的概率.

   1.1 當A,B相互獨立時,也就是交集為空的時候,P(A,B) = P(A)P(B)

   1.2 當A,B相關聯的時候,或者說存在交集的時候,P(A,B) = P(A)P(B|A),如下圖所示

       技術分享圖片

 總的樣本數為T,A的樣本數為7,B的樣本數為6,A,B相同的樣本數為2

那麽:

    P(A,B) =2/T

1.3 1.2處的公式簡化到一般形式:

   P(w1,w2,w3) = P(W1)P(W2|W1)P(W3|W1,W2)

  一般形式為: P(W1,W2,..,Wn) = P(W1)P(W2|W1)...(Wn|Wn-1,...,W2,W1);

  抽象為:

      P(W1,W2,...,Wn) = ∏ni P(wi|w1,w2,..wi-1) (累乘)

2、條件概率:

  形如: P(A|B), 當某一系列事件放生時,該事件發生的概率.,如上圖中的韋恩圖所示:

     P(A|B) = P(A,B)/P(A) = 2/7

  我們將其擴展到一般形式:

    P(A|B,C) = P(A,B,C) / P(B,C) = P(A,B,C) / ( P(B|C) P(C) )

3. N-gram的計算方式:

    N-gram是依據一個預料庫中,對於單詞的統計,來計算. N-gram常見的有1-gram(一元模型),2-gram(二元模型) ,3-gram(三元模型);

    在語義上只認為相近的幾個詞有關聯 ,如果用韋恩圖表示:

       3.1 對於一元模型(1-gram),每個詞都是獨立分布的,也就是對於P(A,B,C) 其中A,B,C互相之間沒有交集. 所以P(A,B,C) = P(A)P(B)P(C)

       比如語句:“貓,跳上,椅子” ,P(A="貓",B="跳上",C="椅子") = P("貓")P(“跳上”)P("椅子");其中各個詞的數量數語料庫中統計的數量

跳上 椅子
13 16 23

       依據這些數據就可以求出P(A,B,C),也就是這個句子的合理的概率.

       3.2 對於二元模型,每個詞都與它左邊的最近的一個詞有關聯,也就是對於P(A,B,C) = P(A)P(B|A)P(C|B)

       比如語句:“貓,跳上,椅子” ,P(A="貓",B="跳上",C="椅子") = P("貓")P(“跳上”|“貓”)P("椅子"|“跳上”);其中各個詞的數量數語料庫中統計的數量

跳上 椅子
0 9 1
跳上 0 3 15
椅子 0 0 0

       依據這些圖表一和圖表二就可以求出P(A,B,C),也就是這個句子的合理的概率.

              P(A,B,C) = P(A)P(B|A)P(C|B)

       3.3 對於三元模型,每個詞都與它左邊的最近的兩個詞有關聯. 計算同上.

          

       

N-gram的簡單的介紹