タグ

スムージングに関するmoockmoockのブックマーク (2)

  • Kneser-Ney スムージングによる文書生成 - 木曜不足

    少し前に Kneser-Ney スムージングの性能を測ってみた記事 を書いたが、今回は Kneser-Ney スムージングによる n-Gram 言語モデルで文書生成を行なってみた。 スクリプトはこちら。 https://github.com/shuyo/iir/blob/master/ngram/knlm.py 適当なテキストファイル(複数可)を入力すると、1行1文書の訓練データとみなして Kneser-Ney スムージング付きの n-Gram 言語モデルを学習後、文書を生成してファイルに出力する。 オプションもいくつか指定できるが、-h でヘルプを出すか、ソースを読むかしてもらえば。 与えられた文書の確率を Kneser-Ney で計算するには、ディスカウントによって生じる正規化係数の補正を求めるために N1+ などのちょいややこしい値をあらかじめ計算して保持しておかないといけないが、文

    Kneser-Ney スムージングによる文書生成 - 木曜不足
  • Ngram言語モデルメモ - Negative/Positive Thinking

    はじめに 現在よく使われていると思われる確率的言語モデルについて簡単に調べてみたのでメモ。 Ngram言語モデルとは 例えば、「お酒が飲みたい」と「バリウムが飲みたい」という文章があった時に、前者の方がよく聞く文章で、後者はほとんど聞かない文章 上記のような「文章の出やすさ」を数学的モデルで表現したい 特に確率を使って表現したい(確率的言語モデル) 単語列が与えられたとき、その単語列の生起確率は 例えば「お酒/が/飲みたい」は、P(お酒が飲みたい)=P(お酒)*P(が|お酒)*P(飲みたい|お酒が) しかし、P(単語|ながーい文章)を求めるのは実際には難しい 単語の種類がmで単語列の長さがnならば、m^n通りをすべて計算して値を推定しなければならない→無理 Ngram言語モデルは、「各単語の生起確率は、直前の(N-1)単語までのみに依存する」モデル(Markovモデル) 2gram3gra

    Ngram言語モデルメモ - Negative/Positive Thinking
  • 1