18.05.2015 Views

SRI-LM toolkit

SRI-LM toolkit

SRI-LM toolkit

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>SRI</strong>-<strong>LM</strong> <strong>toolkit</strong><br />

2003/12/16<br />

Louis Tsai<br />

Speech Lab, CSIE, NTNU<br />

louis@csie.ntnu.edu.tw<br />

1


<strong>SRI</strong><strong>LM</strong><br />

• 由 <strong>SRI</strong> International 所 開 發 出 來 的 tool, 用<br />

在 Statistical Language Models<br />

• http://www.speech.sri.com/projects/srilm<br />

• 目 前 版 本 Ver 1.3.3 2003/03<br />

2


Create language model<br />

~<br />

W<br />

=<br />

arg max<br />

W<br />

P(<br />

W<br />

|<br />

X<br />

)<br />

≅<br />

arg max<br />

W<br />

P(<br />

X<br />

| W<br />

) P(<br />

W<br />

)<br />

•<strong>SRI</strong>-<strong>LM</strong> <strong>toolkit</strong> :<br />

•Step 1. Calculate ngram count from training data<br />

•Step 2. Create <strong>LM</strong> from ngram count<br />

3


training data<br />

• 已 斷 好 詞 的 文 件<br />

(ssp.train)<br />

關 心 孩 子 學 業<br />

可 是 又 苦 無 時 間 為 孩 子 挑 選 參 考 書 的 家 長 們<br />

從 今 天 起<br />

多 了 一 個 輕 鬆 的 選 擇<br />

只 要 趁 工 作 之 餘 逛 到 巷 口 的<br />

填 個 國 小 參 考 書 預 購 單<br />

就 能 以 八 五 折 的 價 格 在 限 定 時 間 內 取 貨 了<br />

這 項 服 務 明 年 還 將 擴 展 到 國 中 參 考 書<br />

由 於 國 小 教 科 書 版 本 不 同<br />

參 考 書 也 相 當 多<br />

各 書 店 進 書 狀 況 和 數 量 也 不 相 同<br />

4


Vocabulary<br />

(Lexicon2003-72k.txt)<br />

巴<br />

八<br />

扒<br />

叭<br />

…<br />

巴 巴<br />

叭 叭<br />

八 寶<br />

八 方<br />

八 德<br />

八 堵<br />

吧 女<br />

…<br />

共 有 71695 個 words<br />

5


ngram count file<br />

在 整 個 training<br />

data 中 出 現 的 次 數<br />

(ssp.n3.count)<br />

Unigram<br />

Bigram<br />

Trigram<br />

想 像 得 到 4<br />

想 像 得 到 的 3<br />

想 像 得 到 的 事 2<br />

想 像 得 到 的 1<br />

想 像 得 到 球 員 1<br />

想 像 得 到 球 員 可 以 1<br />

鳳 凰 123<br />

鳳 凰 騋 4<br />

鳳 凰 騋 4<br />

鳳 凰 花 5<br />

鳳 凰 花 開 1<br />

鳳 凰 花 4<br />

鳳 凰 20<br />

鳳 凰 自 行 車 1<br />

鳳 凰 自 行 車 1<br />

鳳 凰 城 20<br />

鳳 凰 城 8<br />

鳳 凰 城 大 學 1<br />

鳳 凰 城 的 1<br />

鳳 凰 城 警 方 1<br />

鳳 凰 城 太 陽 5<br />

鳳 凰 城 電 3<br />

鳳 凰 城 水 星 1<br />

鳳 凰 機 場 1<br />

鳳 凰 機 場 供 1<br />

鳳 凰 一 樣 1<br />

鳳 凰 一 樣 快 速 1<br />

鳳 凰 中 隊 1<br />

鳳 凰 中 隊 1<br />

鳳 凰 自 然 1<br />

鳳 凰 自 然 來 1<br />

鳳 凰 般 3<br />

鳳 凰 般 重 1<br />

鳳 凰 般 再 度 2<br />

鳳 凰 科 技 6<br />

……<br />

6


以 \data\ 開 頭<br />

<strong>LM</strong> Format<br />

(ssp.n3.kn.lm)<br />

最 高 的 ngram 沒<br />

有 backoff weight<br />

\data\<br />

ngram 1=71697<br />

ngram 2=2795822<br />

ngram 3=1700527<br />

各 種 ngram 的 個 數<br />

\1-grams: 是<br />

unigram 的 開 頭<br />

\1-grams:<br />

-1.804081 <br />

-99 -0.5467538<br />

-2.548589 一 -0.6464233<br />

-3.989615 一 一 -0.2506604<br />

-6.685257 一 一 恐 怖 -0.1400223<br />

-6.685257 一 一 恐 怖 攻 擊 -0.1128442<br />

-6.075799 一 丁 點 -0.1827688<br />

-4.105376 一 九 九 -1.257224<br />

-5.808214 一 了 百 了 -0.308177<br />

-5.921716 一 刀 兩 斷 -0.3545529<br />

-3.940887 一 下 -0.367599<br />

…<br />

-0.4833062 糊 裏 糊 塗<br />

-0.6593975 餐 廳 裏 往<br />

-0.6593975 館 裏 大 家<br />

-0.2190889 鎮 裏 不 同<br />

-0.4833062 鐵 窗 裏 竄<br />

-1.223669 恒 大<br />

-1.223669 恒 生<br />

-0.3077702 恒 春<br />

-0.3159989 小 型 恒 指<br />

-0.4833062 屏 東 恒 春<br />

-0.2190889 范 恒 山<br />

-0.4833062 從 恒 春<br />

-0.4833062 邊 恒 雄<br />

-0.6593975 上 粧 <br />

-0.2759993 化 粧 品<br />

\end\<br />

Log probability<br />

(Base 10)<br />

Log of backoff<br />

weight (Base 10)<br />

以 \end\ 結 尾<br />

7


ngram-count<br />

• 計 算 training data 中 每 個 出 現 的 ngram 的<br />

出 現 次 數<br />

3 表 示 trigram<br />

要 計 算 count 的 Training data<br />

詞 典 檔<br />

有 -unk: 把 OOV 當 作 一 個 符 號 處 理<br />

無 -unk: 遇 到 OOV 就 移 除<br />

輸 出 的 ngram count 檔 名<br />

8


Good-Turing Discounting and<br />

預 設 的<br />

discounting 跟<br />

backoff 方 法<br />

Katz Backoff<br />

前 一 步 ngram count 所 產 生 的 檔<br />

要 輸 出 的 <strong>LM</strong> 檔<br />

9


Compute perplexity<br />

<strong>LM</strong> 檔<br />

要 算 perplexity 的 test data<br />

輸 出 範<br />

例 :<br />

−<br />

logprob<br />

句 數 + 字 數<br />

10<br />

字 數<br />

10 −logprob<br />

10


Good-Turing Discounting Parameters<br />

maxcount<br />

mincount<br />

自 行 指 定 mincount 跟 maxcount :<br />

11


Modified Kneser-Ney Discounting<br />

12


• Take the conditional probabilities of bigrams (m-gram,<br />

m=2) for example:<br />

0 ≤ D ≤1<br />

⎧max{ C[ wi−<br />

1,<br />

wi<br />

] − D,<br />

0}<br />

⎪<br />

if C[ wi−<br />

1,<br />

wi<br />

] > 0<br />

P ( ) = ⎨ [<br />

−<br />

]<br />

KN<br />

wi<br />

w<br />

C w<br />

i−1<br />

i 1<br />

⎪<br />

⎩α<br />

( wi−<br />

1) PKN<br />

( wi<br />

)<br />

otherwise<br />

1.<br />

P<br />

KN<br />

( w ) C[ • w ]/<br />

C[ • w ]<br />

i<br />

=<br />

i ∑<br />

w<br />

C<br />

[•<br />

w ]<br />

i<br />

is<br />

j<br />

the<br />

j<br />

,<br />

unique<br />

words<br />

preceding<br />

w<br />

i<br />

2. normalizing constant<br />

α<br />

( w )<br />

i −1<br />

1 −<br />

=<br />

∑<br />

w<br />

i<br />

: C<br />

[ w w ]<br />

i −1<br />

∑<br />

w<br />

i<br />

i<br />

> 0<br />

: C<br />

max<br />

[ w w ]<br />

i −1<br />

i<br />

{ C [ w<br />

i −1w<br />

i<br />

] − D , 0}<br />

C [ w<br />

i −1<br />

]<br />

P ( w )<br />

= 0<br />

KN<br />

i<br />

13


Witten-Bell Discounting<br />

14


Witten-Bell Discounting<br />

• Key Concept—Things Seen Once: Use the count<br />

of things you’ve seen once to help estimate the<br />

count of things you’ve never seen<br />

• So we estimate the total probability mass of all the<br />

zero N-grams with the number of types divided by<br />

the number of tokens plus observed types:<br />

i:<br />

∑<br />

c i<br />

p<br />

=<br />

T<br />

*<br />

i<br />

= 0 N +<br />

T<br />

N : the number of tokens<br />

T : observed types<br />

15


Witten-Bell Discounting<br />

• T/(N+T) gives the total “probability of unseen N-<br />

grams”, we need to divide this up among all the<br />

zero N-grams<br />

• We could just choose to divide it equally<br />

Z<br />

=<br />

i:<br />

∑<br />

c i<br />

= 0<br />

1<br />

Z is the total number of<br />

N-grams with count zero<br />

p * T<br />

= i Z(<br />

N + T<br />

)<br />

16


Witten-Bell Discounting<br />

p<br />

*<br />

i<br />

ci<br />

= if ( ci<br />

N + T<br />

><br />

0)<br />

Alternatively, we can represent the smoothed counts directly as:<br />

c<br />

*<br />

i<br />

=<br />

⎧T<br />

⎪Z<br />

⎨<br />

⎪ci<br />

⎩<br />

N<br />

N + T<br />

N<br />

N + T<br />

,<br />

,<br />

if<br />

if<br />

c<br />

c<br />

i<br />

i<br />

=<br />

><br />

0<br />

0<br />

17


18<br />

Witten-Bell Discounting<br />

N<br />

T<br />

N<br />

T<br />

N<br />

N<br />

T<br />

N<br />

N<br />

T<br />

N<br />

NT<br />

T<br />

N<br />

N<br />

c<br />

Z<br />

T<br />

N<br />

N<br />

Z<br />

T<br />

c i<br />

i<br />

i<br />

=<br />

+<br />

+<br />

=<br />

+<br />

+<br />

+<br />

=<br />

+<br />

+<br />

⋅<br />

+ ∑<br />

><br />

)<br />

(<br />

2<br />

0<br />

:<br />

1<br />

)<br />

( 0<br />

:<br />

=<br />

+<br />

+<br />

+<br />

=<br />

+<br />

+<br />

⋅<br />

+ ∑<br />

><br />

T<br />

N<br />

N<br />

T<br />

N<br />

T<br />

T<br />

N<br />

c<br />

Z<br />

T<br />

N<br />

Z<br />

T<br />

c i<br />

i<br />

i


• For bigram<br />

∑<br />

p<br />

Witten-Bell Discounting<br />

( w<br />

|<br />

w<br />

)<br />

T ( wx<br />

)<br />

N(<br />

w ) T ( w<br />

*<br />

i x<br />

i:<br />

c(<br />

wx wi<br />

) = 0<br />

x<br />

+<br />

=<br />

T: the number of bigram types, N: the number of bigram token<br />

x<br />

)<br />

Z(<br />

p<br />

*<br />

w x<br />

) =<br />

∑<br />

1<br />

i:<br />

c(<br />

w x w i ) = 0<br />

T ( wi<br />

−1)<br />

( wi<br />

| wi<br />

−1)<br />

= if( c<br />

−1<br />

Z(<br />

w )( N(<br />

w ) + T ( w ))<br />

i−1<br />

i−1<br />

i−1<br />

w i w<br />

i<br />

=<br />

0)<br />

∑<br />

p<br />

( w<br />

|<br />

w<br />

)<br />

=<br />

c(<br />

w<br />

c(<br />

w )<br />

*<br />

x<br />

i x<br />

i:<br />

c(<br />

wx wi<br />

) > 0<br />

x<br />

+<br />

wi<br />

)<br />

T ( w<br />

x<br />

)<br />

19


Absolute Discounting<br />

20


P<br />

abs<br />

Smoothing<br />

absolute discounting<br />

• Absolute discounting subtracting a fixed<br />

discount D


Ristad's Natural Discounting<br />

Eric Ristad's Natural Law of Succession -- The discount factor d is identical<br />

for all counts,.<br />

d = ( n(n+1) + q(1- q) ) / ( n^2 + n + 2q )<br />

where n is the total number events tokens, q is the number of observed<br />

event types. If q equals the vocabulary size no discounting is performed.<br />

22

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!