srilm是著名的約翰霍普金斯夏季研討會(Johns Hopkins Summer Workshop)的產物,誕生於1995年,由SRI實驗室的Andreas Stolcke負責開發維護。
srilm支持語言模型的估計和評測。估計是從訓練數據(訓練集)中得到壹個模型,包括最大似然估計及相應的平滑算法;而評測則是從測試集中計算其困惑度。
其中,-vocab train.dict中 train.dict為詞典文件,每行壹個詞,格式如下:
-text train.txt 中 train.txt為語料庫文件,每行中的詞用空格隔開,表示分詞結果,格式如下:
-order 最大的n元模型,3表示unigram,bigram,trigram
-write train.count 統計文件寫到train.count中
-unk 表示沒有在詞典中的詞用<unk>表示
train.count中的內容如下(每行格式為:ngram 詞頻):
其中,-read train.count 讀取上壹步生成的統計文件
-lm train.lm 生成最高為trigram的語言模型train.lm
-interpolate 利用差值算法
生成的語言模型train.lm為ARPA格式的語言模型,如下:
上面的兩個步驟可以直接生成,如下:
上面已經生成了語言模型train.lm,利用它來測試數據的困惑度
測試數據的格式同語料數據,每個句子內部用空格隔開表示分詞。
結果如下:
參考 :