语言模型:介绍
作者:chen_h
微信號 & QQ:862251340
微信公眾號:coderpai
該系列將描述一些自然語言處理方面的技術,完整目錄請點擊這里。
這個專題,我們主要學習如何從一個句子中來構建一個語言模型。語言模型最早是應用在語音識別的問題上,當然它們?nèi)匀辉诂F(xiàn)代語音識別系統(tǒng)中發(fā)揮著核心的作用。之后,語言模型也被廣泛的應用到其他的NLP任務之中。最原始的語言模型是采用參數(shù)評估技術來實現(xiàn)的,這個技術在很多的NLP任務中都被使用,比如后續(xù)我們會將到的標記問題和解析問題。
假設我們有一個語料庫,里面有很多的句子。比如,這是一個人民日報多年積累下來的文章。那么,我們可以根據(jù)這個語料庫來設計我們的語言模型。
那么什么是語言模型呢?首先,我們需要定義一個詞集 V,比如,我們對英語構建一個語言模型,那么:
在真實的環(huán)境中,V 是一個非常大的集合,它可能包含成千上萬的詞。我們假設 V 是一個有限集合。一個句子可以用如下參數(shù)來表示:
其中,n>=1,并且
我們假設 xn 是一個特殊符號 STOP,并且該符號不在集合 V 里面。那么,我們?yōu)槭裁葱枰诰渥拥淖詈蠹由?STOP ,因為這樣有助于去確定一個句子是否結尾,比較方便。舉個例子,比如:
the dog barks STOP the cat laughs STOP the cat saw the dog STOP the STOP cat the dog the STOP cat cat cat STOP STOP ...接下來,我們需要定義一個句子集合 V',這個集合中的句子是由集合 V 中的詞所決定的,但這個集合是一個無限集合,因為句子的長度你無法確定。
接下來,我們正式定義語言模型。
Definition 1:語言模型有一個有限集合 V 和一個概率方程 p(x1, x2, ..., xn) 組成,使得:
因此,p(x1, x2, .., xn) 是句子的一個概率分布。
那么,根據(jù)詞庫,我們?nèi)绾蝸碛柧毼覀兊恼Z言模型呢?我們首先來介紹一個非常直觀的方法,但是這個方法是很笨的。我們定義 c(x1, x2, x3, …, xn) 是句子 x1x2x3….xn 在語料庫中出現(xiàn)的書,N 是語料庫能組成的句子的總和。那么我們可以定義如下:
但正如我們剛剛說的,這是一個非常差的模型。那么為什么差呢?因為如果一個句子你沒有在語料庫中出現(xiàn),那么你得到的概率就是 0。也就是說,如果在訓練集中沒有出現(xiàn)這個句子,那么測試集中我們一直會得到概率 0。但是我們不可能訓練到每一個句子,所以這是一個非常差的模型。那么,這一章,我們的任務就是學習,如何去產(chǎn)生一個沒有在訓練集中出現(xiàn)的句子。
那么,我們?yōu)槭裁匆獙W習語言模型呢?這個看起來很奇怪的東西,在以后的具體任務中會有什么用處呢?主要有以下兩個理由:
語言模型在很多的應用中都有使用,特別語音識別和機器翻譯。而且,在很多的場景中,語言模型被用作一個先驗概率,判斷那些詞可能或者不可能出現(xiàn)在愛句子中。比如,在語音識別中,語言模型與聲學模型相結合,用以模擬不同單詞的發(fā)音。具體的實現(xiàn)步驟,一種
想法是,聲學模型產(chǎn)生很多的候選句子,然后利用語言模型對所有的候選句子進行一個排序,從而確定一個概率最大的句子。
我們描述并且定義函數(shù) p 的技術,也就是從訓練樣本中得到模型的參數(shù)估計,這種方法有助于應用到其他語境中。比如,隱馬爾科夫模型,自然語言解析模型。
參考:COMS W4705: Natural Language Processing
總結
- 上一篇: 税收学考试可以带计算机吗,注册税务师考试
- 下一篇: XX项目测试计划