タグ

ブックマーク / jetbead.hatenablog.com (3)

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

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

    Ngram言語モデルメモ - Negative/Positive Thinking
    Kesin
    Kesin 2014/08/24
  • ナップサック問題として複数文書要約を解くを試す - Negative/Positive Thinking

    はじめに 複数文書要約をナップサック問題として解く、という話を聴いて、簡単に試せそうなのでやってみる。 手法 西川ら「冗長性制約付きナップサック問題に基づく複数文書要約モデル」 https://www.jstage.jst.go.jp/article/jnlp/20/4/20_585/_pdf 上記の論文中で紹介されている「動的計画ナップサックアルゴリズム」を参考に。 (論文で提案されている手法ではないことに注意) コード #include <iostream> #include <vector> #include <map> #include <sstream> class KPSummary { // T[i][k] := 文iまでで最大要約長がkのときの最適解値 // U[i][k] := 経路復元用(文iを利用したかどうか) std::vector< std::vector<int

    ナップサック問題として複数文書要約を解くを試す - Negative/Positive Thinking
    Kesin
    Kesin 2014/03/24
  • Suffix Arrayメモ - Negative/Positive Thinking

    はじめに Suffix Arrayあたりをちょっと調べてみたのでとりあえずメモ。 調べてみたら結構研究されていて全部まとめるのが面倒あとできちんと理解しておきたい。 Suffix Array(接尾辞配列)とは 文字列に対して、その文字列の接尾辞集合を辞書順ソートしたもの ここでの接尾辞集合は「abcd」という文字列の場合、以下の4つの接尾辞になる abcd bcd cd d これは各インデクスから最後までの部分文字列なので、元の文字列があればインデクスから部分文字列を得ることができる 与えられた文字列からある文字列が含まれるかどうかを検索したい場合、Suffix Arrayは辞書順に並んでいるので、2分探索することで高速に検索することができる 構築方法 普通のQuicksort 普通に文字列をソートする方法 QuicksortにO(n log n)、文字列比較にO(n)かかる Mamber

    Suffix Arrayメモ - Negative/Positive Thinking
  • 1