0-1语言建模当中会遇到的问题
在對語言建模之前,先來說明一些基本的簡單的概念。
我們假設:
有這樣一個集合,在這個集合里面,是我們所有的涉及到的單詞集,并且這個單詞的集合是有限的(finite)。為了表示這個集合,用字母V來表示,例如V={the,a,man,telescopo,Beckham,two…}
有了單詞的集合,然后還需要有一個單詞串的集合,為了更形象的解釋,比如:
the STOP
a STOP
the fan STOP
the fan saw Beckham STOP
the fan saw saw STOP
the fan saw Beckham play for Real Madrid STOP
…
這個單詞串的集合使用V+來表示。
為什么在每個的末尾要加一個STOP呢,這在以后的學習當中會用到,他有利于幫助我們開發一個概率模型。(convenient start to develop a probabilistic model)
現在有了上面的定義,繼續探討自然語言處理建模當中的問題。
現在:
- 我們有一個有許多句子的樣本,叫它訓練樣本training sample.
- 我們需要學習一個概率分布p(learn a probability distribution p),p滿足下面的條件:
???????
????????? 這個公式向我們表明了,x屬于V+當中的元素,所有其中的元素的概率相加結果應該是1.
為了更形象的說明P是什么,可以看下面的例子:
那么,整體的流程是怎樣的呢?
我們把training sample測試樣本當中的句子當作輸入input,經過模型的處理,最終的輸出便是p(output)。這是我們建立模型的作用。
為什么要做這些事情(這些事情指的是上面的準備測試樣本,計算概率、建模等)?
起初,研究這些是為了解決語音識別當中遇到的難題,相關的還有手寫識別等。這些技術的發展在NLP的很多領域樓來都證明十分的有用。
這些概率p該怎么計算出來呢?
原始的辦法:
- 假設我們有N個訓練用的句子sentences
- 每一個單詞串,用x1 x2 x3…xn來表示,x表示每一個單詞。使用c(x1…xn)來表示這個單詞串在訓練數據training data當中出現的次數。
- 計算方法為:p(x1…xn)=c(x1…xn)/N
這個辦法,剛一看到會覺得沒有什么不妥,其實如果細心的話可以發現這個公式是有問題的。如果某一個單詞串并沒有在訓練數據中出現,那么這個概率p的值就會變為0,如果P=0的話,那么就沒有能力去生成新的句子(has no ability to generalize to new sentences)。因為,在訓練樣本中沒有出現,并不代表在測試的時候或者在實際生活中p=0的單詞串不會出現,所以,必須要解決p=0的問題,在0-4中會提到。
轉載于:https://www.cnblogs.com/createMoMo/p/3189892.html
總結
以上是生活随笔為你收集整理的0-1语言建模当中会遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国庆去哪里玩
- 下一篇: 多项式相乘与相加演示