N-gramモデルのデータスパース問題の解決策の1つ:Good-Turing平滑化

時間と空間の雷から転載

        統計言語モデルの章では、データのまばらさというN-gramモデルの避けられない問題についてお話しましたが、その理由は、大規模なコーパス統計と限られたコーパスの矛盾にあります。ジップの法則によれば、確率ゼロの問題は避けられないと推測できます。データのまばらさの問題の解決策は平滑化です。多くの平滑化アルゴリズムがあります。この記事では、多くのアルゴリズムの最良のものを紹介します。Good-Turing平滑化アルゴリズム。

        Good-Turing推定法は、多くの平滑化手法の中核であり、1953年にIJGoodによってTuringの方法を参照して提案されました。基本的な考え方は、頻度カテゴリ情報を使用して頻度を平滑化することです。r回発生するn-gramの場合、r *回発生すると想定されます。


        その中で、nrは、トレーニングコーパスで正確にr回発生するNタプルの数です。言い換えると、r回発生するNタプルの調整は、r回発生するNタプルとr +1回発生するNタプルの2つのカテゴリによって決定されます。統計がr *回のNタプルの確率は次のとおり
        です。
        つまり、Nはこの分布の元の統計に等しいことに注意してください
        したがって、サンプル内のすべてのイベントの確率の合計は次の ようになります。したがって、n1 / Nの確率余剰を未確認のイベントに割り当てることができます。Good-Turing(Good-Turing)の推定方法をよりよく理解するために、例を使用して説明します。
        トレーニングセット:T = {<s>小さいものは何ですか?} | T | = 8
        検証セット:V = {小さいものは何ですか?<s>飛んでいる鳥は鳥です。}、| V | = 12
        inトレーニングセットでは、次のようになります。p(<s>)= p(it)= p(small)= p(?)= 0.125、p(what)= p(is)= 0.25、その他は
        平滑化されていない場合は0 です。処理中、検証セットの2つの文の確率は次のとおりです。p(それは何ですか?)=(0.25 * 2)*(0.125 * 2)≈0.001p(飛んでいます。)= 0.125 * 0.25 *(0 * 2)= 0
        ここで、Good-Turingアルゴリズムを使用して、次のように平滑化処理を実行します。
        まず、r回発生するNタプルカテゴリの数を計算します。 シーケンスはN(0)= 6、N(1)です。 = 4、N(2)= 2、N(i)= 0、i> 2:
        次に、各確率値を再推定します。
        イベントが0回発生する確率の場合:Pr(。)= p(flying)= p(birds)= p(are)= p(bird)= p(a)=(0 + 1)* N(0+ 1)/(8 * N
        (0))= 1 * 4 /(8 * 6)≈0.0831 回の発生の時間確率の場合:Pr(it)= p(<s>)= p(small)= p( ?)=(1 + 1)* N(1 + 1)/(8 * N(1))= 2 * 2 /(8*4)=0.125
        2回の発生の時間確率の場合:Pr(what)= Pr (is)=(2 + 1)* N(2 + 1)/(8 * N(2))= 3 * 0 /(8 * 2)= 0:
        正規化処理のために元の値0.25を保持 、6 * P0 +4 * P1 + 2 * P2 = 1.5。
        したがって、正規化した後、P '(IT)= P '(<S>)= P '(小)= P'(?)= 0.125 / 1.5≈0.08、P '(何)= P'(あります)= 0.25 /1.5≈0.17、p'(。)=  
        p '(鳥)= p'(are)= p '(鳥)= p'(a)= 0.083/1.5≈0.06
        したがって、p '(それは何ですか? )=(0175 * 2)*(0.08 * 2)≈0.0002p '(飛んでいます。)≈0.08* 0.17 *(0.06 * 2)≈0.00004


        統計言語モデルの章では、データのまばらさというN-gramモデルの避けられない問題についてお話しましたが、その理由は、大規模なコーパス統計と限られたコーパスの矛盾にあります。ジップの法則によれば、確率ゼロの問題は避けられないと推測できます。データのまばらさの問題の解決策は平滑化です。多くの平滑化アルゴリズムがあります。この記事では、多くのアルゴリズムの最良のものを紹介します。Good-Turing平滑化アルゴリズム。

        Good-Turing推定法は、多くの平滑化手法の中核であり、1953年にIJGoodによってTuringの方法を参照して提案されました。基本的な考え方は、頻度カテゴリ情報を使用して頻度を平滑化することです。r回発生するn-gramの場合、r *回発生すると想定されます。


        その中で、nrは、トレーニングコーパスで正確にr回発生するNタプルの数です。言い換えると、r回発生するNタプルの調整は、r回発生するNタプルとr +1回発生するNタプルの2つのカテゴリによって決定されます。統計がr *回のNタプルの確率は次のとおり
        です。
        つまり、Nはこの分布の元の統計に等しいことに注意してください
        したがって、サンプル内のすべてのイベントの確率の合計は次の ようになります。したがって、n1 / Nの確率余剰を未確認のイベントに割り当てることができます。Good-Turing(Good-Turing)の推定方法をよりよく理解するために、例を使用して説明します。
        トレーニングセット:T = {<s>小さいものは何ですか?} | T | = 8
        検証セット:V = {小さいものは何ですか?<s>飛んでいる鳥は鳥です。}、| V | = 12
        inトレーニングセットでは、次のようになります。p(<s>)= p(it)= p(small)= p(?)= 0.125、p(what)= p(is)= 0.25、その他は
        平滑化されていない場合は0 です。処理中、検証セットの2つの文の確率は次のとおりです。p(それは何ですか?)=(0.25 * 2)*(0.125 * 2)≈0.001p(飛んでいます。)= 0.125 * 0.25 *(0 * 2)= 0
        ここで、Good-Turingアルゴリズムを使用して、次のように平滑化処理を実行します。
        まず、r回発生するNタプルカテゴリの数を計算します。 シーケンスはN(0)= 6、N(1)です。 = 4、N(2)= 2、N(i)= 0、i> 2:
        次に、各確率値を再推定します。
        イベントが0回発生する確率の場合:Pr(。)= p(flying)= p(birds)= p(are)= p(bird)= p(a)=(0 + 1)* N(0+ 1)/(8 * N
        (0))= 1 * 4 /(8 * 6)≈0.0831 回の発生の時間確率の場合:Pr(it)= p(<s>)= p(small)= p( ?)=(1 + 1)* N(1 + 1)/(8 * N(1))= 2 * 2 /(8*4)=0.125
        2回の発生の時間確率の場合:Pr(what)= Pr (is)=(2 + 1)* N(2 + 1)/(8 * N(2))= 3 * 0 /(8 * 2)= 0:
        正規化処理のために元の値0.25を保持 、6 * P0 +4 * P1 + 2 * P2 = 1.5。
        したがって、正規化した後、P '(IT)= P '(<S>)= P '(小)= P'(?)= 0.125 / 1.5≈0.08、P '(何)= P'(あります)= 0.25 /1.5≈0.17、p'(。)=  
        p '(鳥)= p'(are)= p '(鳥)= p'(a)= 0.083/1.5≈0.06
        したがって、p '(それは何ですか? )=(0175 * 2)*(0.08 * 2)≈0.0002p '(飛んでいます。)≈0.08* 0.17 *(0.06 * 2)≈0.00004


おすすめ

転載: blog.csdn.net/flying_all/article/details/114620681