言語モデルの基礎 2

Similar documents
先 週 の 復 習 : 文 の 確 率 計 算 文 の 確 率 が 欲 しい W = speech recognition system 変 数 で 以 下 のように 表 す ( 連 鎖 の 法 則 を 用 いて ): P( W = 3, w 1 = speech, w 2 = recognitio

NLP プログラミング勉強会 5 HMM による品詞推定 自然言語処理プログラミング勉強会 5 隠れマルコフモデルによる品詞推定 Graham Neubig 奈良先端科学技術大学院大学 (NAIST) 1

NLP プログラミング勉強会 4 単語分割 自然言語処理プログラミング勉強会 4 - 単語分割 Graham Neubig 奈良先端科学技術大学院大学 (NAIST) 1

本チュートリアルについて 14 部構成 比較的簡単なトピックから 各回 プログラミング言語 任意 チュートリアルで 新しい内容 宿題 プログラミング演習 次の週 結果について発表 もしくは話し合いをする スライドは Python で Python, C++, Java, Perl についての質問い答

NLP プログラミング勉強会 6 かな漢字変換 自然言語処理プログラミング勉強会 6 - かな漢字変換 Graham Neubig 奈良先端科学技術大学院大学 (NAIST) 1

文章のトピック 文章には様々なトピックが存在する Cuomo to Push for Broader Ban on Assault Weapons 2012 Was Hottest Year in U.S. History 2

Formal Model for Kana-Kanji Conversion (KKC) In Japanese input, users type in phonetic Hiragana, but proper Japanese is written in logographic Kanji K

自然言語は曖昧性だらけ! I saw a girl with a telescope 構文解析 ( パージング ) は構造的な曖昧性を解消 2

様々なミクロ計量モデル†

メソッドのまとめ

スライド 1

音響モデル triphone 入力音声 音声分析 デコーダ 言語モデル N-gram bigram HMM の状態確率として利用 出力層 triphone: 3003 ノード リスコア trigram 隠れ層 2048 ノード X7 層 1 Structure of recognition syst

基礎プログラミング2015

Microsoft Word - Time Series Basic - Modeling.doc

復習 プログラミング 1 ( 第 4 回 ) 関数の利用 2 ループ処理 (while 文 ) 1. Chapter の補足 2 1. 関数とローカル変数 2. Chapter 3.1 の補足 1. Iteration, looping ( 反復処理 ) 2. ループ処理の例 実行例 3

<91E58DE390ACE6FC F32378D865F8DEC8BC697702E696E6464>

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A

PowerPoint プレゼンテーション

Program Design (プログラム設計)

情報量と符号化

タダでマナべるさかぽん先生.tv 一般動詞の否定文 疑問文 今日の単語今日の授業で使う英単語です しっかり覚えてから授業に進みましょう 単語を 覚えた =その単語を 読める 意味が分かる 書ける 声に出して書きながら覚えていきましょう 1 行く go 2 来る come 3 へ ( 行く

プログラミング 1 ( 第 5 回 ) ループ処理 (for 文 ) range() 関数とリストによるシーケンス集合表現 1. Chapter 3.2 For Loops 1. もう一つのループ処理 2. シーケンス集合とコード例 2. Chapter 3.4 A Few Words About

切片 ( 定数項 ) ダミー 以下の単回帰モデルを考えよう これは賃金と就業年数の関係を分析している : ( 賃金関数 ) ここで Y i = α + β X i + u i, i =1,, n, u i ~ i.i.d. N(0, σ 2 ) Y i : 賃金の対数値, X i : 就業年数. (

プレポスト【解説】

Probit , Mixed logit

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

N-gram Language Models for Speech Recognition

Rの基本操作

基礎統計

スライド 1

PDF


したがって このモデルではの長さをもつ潜在履歴 latent history が存在し 同様に と指標化して扱うことができる 以下では 潜在的に起こりうる履歴を潜在履歴 latent history 実際にデ ータとして記録された履歴を記録履歴 recorded history ということにする M

スライド 1

文庫●注文一覧表2016c(7月)/岩波文庫


PowerPoint プレゼンテーション

C プログラミング 1( 再 ) 第 4 回 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 1

講義「○○○○」

数値計算法

Microsoft PowerPoint slide2forWeb.ppt [互換モード]

NeOSU_18.indd

Information Theory

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

2006年10月5日(木)実施

Microsoft Word - 3new.doc


2

endo.PDF

生命情報学

Microsoft Word - no103.docx

演習 レシピテキストの係り受け解析

講習No.12

統計学的画像再構成法である

Microsoft Word - VBA基礎(3).docx

UX-V503CL/UX-V503CW

プログラミング入門1

( ) FAS87 FAS FAS87 v = 1 i 1 + i

0-Ł\04†E01.pdf

cat A

Microsoft PowerPoint - 14回パラメータ推定配布用.pptx

Microsoft PowerPoint - データ解析基礎4.ppt [互換モード]

Microsoft Word - Matlab_R_MLE.docx

25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble

PowerPoint プレゼンテーション

ポインタ変数

kiso2-03.key

東邦大学理学部情報科学科 2011 年度 卒業研究論文 Collatz 予想の変形について 提出日 2012 年 1 月 30 日 指導教員白柳潔 提出者 藤田純平

ポインタ変数

Python Speed Learning

PowerPoint プレゼンテーション

B演習(言語処理系演習)第一回

プログラミング実習I

プログラミング入門1

untitled

第5回東京都廃棄物審議会

西食堂

フィジカルコンディショニング

PowerPoint プレゼンテーション

支援リスト3/30.xls

untitled


Prog1_2nd

異文化言語教育評価論 ⅠA 第 4 章分散分析 (3 グループ以上の平均を比較する ) 平成 26 年 5 月 14 日 報告者 :D.M. K.S. 4-1 分散分析とは 検定の多重性 t 検定 2 群の平均値を比較する場合の手法分散分析 3 群以上の平均を比較する場合の手法 t 検定

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft Word - ランチョンプレゼンテーション詳細.doc

PowerPoint プレゼンテーション

スライド 1

Prog1_12th

SAP11_03

Microsoft Word - sample_adv-programming.docx

Microsoft PowerPoint - 【配布・WEB公開用】SAS発表資料.pptx

英語の天使 No.46 主語が 3 人称 単数の文 1 学習 POINT 1 主語について 主語 とは 文の中の ~ が ~ は に当たる語のことです 英語では I( 私は ) you( あなたは ) he( 彼は ) she( 彼女は ) My mother( 私の母は ) Bob( ボブは )

情報工学概論

2

JavaプログラミングⅠ

Microsoft Word - 補論3.2

Kumamoto University Center for Multimedia and Information Technologies Lab. 熊本大学アプリケーション実験 ~ 実環境における無線 LAN 受信電波強度を用いた位置推定手法の検討 ~ InKIAI 宮崎県美郷

untitled

Transcription:

自然言語処理プログラミング勉強会 1 1-gram 言語モデル Graham Neubig 奈良先端科学技術大学院大学 (NAIST) 1

言語モデルの基礎 2

言語モデル 英語の音声認識を行いたい時に どれが正解 英語音声 W1 = speech recognition system W2 = speech cognition system W3 = speck podcast histamine W4 = スピーチ が 救出 ストン 3

言語モデル 英語の音声認識を行いたい時に どれが正解 英語音声 W1 = speech recognition system W2 = speech cognition system W3 = speck podcast histamine W4 = スピーチ が 救出 ストン 言語モデルは もっともらしい 文を選んでくれる 4

確率的言語モデル 言語モデルが各文に確率を与える W1 = speech recognition system W2 = speech cognition system W3 = speck podcast histamine W4 = スピーチ が 救出 ストン P(W1) = 4.021 * 10-3 P(W2) = 8.932 * 10-4 P(W3) = 2.432 * 10-7 P(W4) = 9.124 * 10-23 P(W1) > P(W2) > P(W3) > P(W4) が望ましい ( 日本語の場合は P(W4) > P(W1), P(W2), P(W3) ) 5

文の確率計算 文の確率が欲しい W = speech recognition system 変数で以下のように表す P( W = 3, w1= speech, w2= recognition, w3= system ) 6

文の確率計算 文の確率が欲しい W = speech recognition system 変数で以下のように表す ( 連鎖の法則を用いて ): P( W = 3, w1= speech, w2= recognition, w3= system ) = P(w1= speech w0 = <s> ) * P(w2= recognition w0 = <s>, w1= speech ) * P(w3= system w0 = <s>, w1= speech, w2= recognition ) * P(w4= </s> w0 = <s>, w1= speech, w2= recognition, w3= system ) 注 文頭 <s> と文末 </s> 記号 注 P(w0 = <s>) = 1 7

確率の漸次的な計算 前のスライドの積を以下のように一般化 W + 1 P(W )= i =1 P(wi w 0 wi 1 ) 以下の条件付き確率の決め方は P( wi w 0 wi 1 ) 8

最尤推定による確率計算 コーパスの単語列を数え上げて割ることで計算 c (w1 wi ) P( wi w 1 w i 1)= c (w 1 w i 1) i live in osaka. </s> i am a graduate student. </s> my school is in nara. </s> P(live <s> i) = c(<s> i live)/c(<s> i) = 1 / 2 = 0.5 P(am <s> i) = c(<s> i am)/c(<s> i) = 1 / 2 = 0.5 9

最尤推定の問題 頻度の低い現象に弱い 学習 i live in osaka. </s> i am a graduate student. </s> my school is in nara. </s> <s> i live in nara. </s> 確率計算 P(nara <s> i live in) = 0/1 = 0 P(W=<s> i live in nara. </s>) = 0 10

1-gram モデル 履歴を用いないことで低頻度の現象を減らす c (wi ) P( wi w 1 w i 1) P( wi )= w c (w) P(nara) = 1/20 = 0.05 i live in osaka. </s> = 2/20 = 0.1 i am a graduate student. </s> P(i) my school is in nara. </s> P(</s>) = 3/20 = 0.15 P(W=i live in nara. </s>) = 0.1 * 0.05 * 0.1 * 0.05 * 0.15 * 0.15 = 5.625 * 10-7 11

整数に注意 2 つの整数を割ると小数点以下が削られる $./my-program.py 0 1 つの整数を浮動小数点に変更すると問題ない $./my-program.py 0.5 12

未知語の対応 未知語が含まれる場合は 1-gram でさえも問題あり i live in osaka. </s> i am a graduate student. </s> my school is in nara. </s> P(nara) = 1/20 = 0.05 P(i) = 2/20 = 0.1 P(kyoto) = 0/20 = 0 多くの場合 例 音声認識 未知語が無視される 他の解決法 少しの確率を未知語に割り当てる (λunk = 1-λ1) 未知語を含む語彙数を N とし 以下の式で確率計算 1 P( wi )=λ1 P ML ( wi )+ (1 λ 1) N 13

未知語の例 未知語を含む語彙数 N=106 未知語確率 λunk=0.05 (λ1 = 0.95) 1 P( wi )=λ1 P ML ( wi )+ (1 λ 1) N P(nara) = 0.95*0.05 + 0.05*(1/106) = 0.04750005 P(i) = 0.95*0.10 + 0.05*(1/106) = 0.09500005 P(kyoto) = 0.95*0.00 + 0.05*(1/106) = 0.00000005 14

言語モデルの評価 15

言語モデルの評価の実験設定 学習と評価のための別のデータを用意 学習データ i live in osaka i am a graduate student my school is in nara... モデル 学習 評価データ i live in nara i am a student i have lots of homework モデル モデル 評価 モデル評価の尺度 尤度 対数尤度 エントロピー 16 パープレキシティ

尤度 尤度はモデル M が与えられた時の観測されたデータ ( 評価データ Wtest) の確率 P(W test M )= w W P ( w M ) test i live in nara i am a student my classes are hard P(w= i live in nara M) = 2.52*10-21 P(w= i am a student M) = 3.48*10-19 P(w= my classes are hard M) = 2.15*10-34 x x = 1.89*10-73 17

対数尤度 尤度の値が非常に小さく 桁あふれがしばしば起こる 尤度を対数に変更することで問題解決 log P(W test M )= w W log P( w M ) test i live in nara i am a student my classes are hard log P(w= i live in nara M) = -20.58 log P(w= i am a student M) = -18.45 + + log P(w= my classes are hard M) = -33.67 = -72.60 18

対数の計算 Python の math パッケージで対数の log 関数 $./my-program.py 4.60517018599 2.0 19

エントロピー エントロピー H は負の底2の対数尤度を単語数で割っ た値 1 H (W test M )= log P(w M ) 2 W test w W test i live in nara i am a student my classes are hard log2 P(w= i live in nara M)= log2 P(w= i am a student M)= ( 68.43 + 61.32 + log2 P(w= my classes are hard M)= 111.84 ) 単語数 / 12 = 20.13 * </s> を単語として数えることもあるが ここでは入れていない 20

パープレキシティ 2のエントロピー乗 PPL=2 H 一様分布の場合は 選択肢の数に当たる V =5 1 H = log 2 5 H log2 PPL=2 =2 1 5 =2 log 2 5 =5 21

カバレージ 評価データに現れた単語 n-gram の中で モデル に含まれている割合 a bird a cat a dog a </s> dog は未知語 カバレージ : 7/8 * * 文末記号を除いた場合は 6/7 22

演習問題 23

演習問題 2つのプログラムを作成 train-unigram: 1-gram モデルを学習 test-unigram: 1-gram モデルを読み込み エントロピー とカバレージを計算 テスト 学習 test/01-train-input.txt 正解 test/01-train-answer.txt テスト test/01-test-input.txt 正解 test/01-test-answer.txt data/wiki-en-train.word でモデルを学習 data/wiki-en-test.word に対してエントロピーとカバ レージを計算 24

train-unigram 擬似コード create a map counts create a variable total_count = 0 for each line in the training_file split line into an array of words append </s> to the end of words for each word in words add 1 to counts[word] add 1 to total_count open the model_file for writing for each word, count in counts probability = counts[word]/total_count print word, probability to model_file 25

test-unigram 擬似コード λ1 = 0.95, λunk = 1-λ1, V = 1000000, W = 0, H = 0 モデル読み込み create a map probabilities for each line in model_file split line into w and P set probabilities[w] = P 評価と結果表示 for each line in test_file split line into an array of words append </s> to the end of words for each w in words add 1 to W set P = λunk / V if probabilities[w] exists set P += λ1 * probabilities[w] else add 1 to unk add -log2 P to H print entropy = +H/W print coverage = + (W-unk)/W 26