srilm的主要目標是支援語言模型的估計和評測。估計是從訓練資料(訓練集)中得到乙個模型,包括最大似然估計及相應的平滑演算法;而評測則是從測試集中計算其困惑度。其最基礎和最核心的模組是n-gram模組,這也是最早實現的模組,包括兩個工 具:ngram-count和ngram,相應的被用來估計語言模型和計算語言模型的困惑度。
ngram-count -vocab segment_dict.txt -text train_data -order 3 -write my.count -unk
-vocab 詞典檔案,一行代表乙個切詞,格式如下:
中國人民你好
-text 語料庫,一行行的資料,行內資料用空格隔開來表示切詞,格式如下:
中國 人民劉德華 歌曲 好 聽 嗎
-order 最大的n元模型,3表示統計1元模型(unigram)、2元模型(bigram)、3元模型(trigram)
-write 生成的統計檔案,格式如下(ngram count):
2中國 1
中國 人民 1
劉德華 1
劉德華 1
中國 1
中國 人民 1
中國 人民 1
人民 1
人民 1
2劉德華 1
劉德華 1
劉德華 143
2 1
1
-unk 把不在詞典裡面的次表示為
ngram-count -vocab segment_dict.txt -read my.count -order 3 -lm my.lm -kndiscount1 -kndiscount2 -kndiscount3
-read 讀統計檔案
-lm 產生的語言模型檔案,產生的格式如下:
\data\ngram 1=6
ngram 2=4
ngram 3=0
\1-grams:
-0.4771213
-99 -99
-0.7781513 中國 -99
-0.7781513 人民 -99
-0.7781512 你好
-0.7781513 劉德華
\2-grams:
-0.30103 中國
-0.30103 劉德華
0 中國 人民
0 人民
\3-grams:
\end\
-kndiscount1 對1元模型進行的折扣平滑的方法,有很多,如good-turing,kneser-ney等
ngram -ppl test.txt -order 3 -lm my.lm
測試資料的格式也是一行代表乙個句子,每個句子內部用空格隔開表示切詞
file test.txt: 2 sentences, 5 words, 0 oovs4 zeroprobs, logprob= -0.7781513 ppl= 1.817121 ppl1= 6.000001
生成語言模型
這裡主要介紹我使用過的兩種根據文字生成語言模型的兩種方法 1.通過 sphinx 上傳檔案,生成對應的語言模型,需要注意的是檔案最好不要太大,容易報504錯誤,貼下圖吧,傻瓜式的操作方式 2.使用srilm 訓練語言模型 1 從語料庫中生成n gram計數檔案 1 ngram count text ...
SRILM 語言模型訓練工具
2,安裝 make srilm pwd3,配置 將bin和bin i686 m64新增到path環境變數中 4,測試 ngram count help 5,海量語料訓練 由於對於大規模語料進行語言模型的訓練,經常會導致記憶體問題。經過測試,用srilm處理乙個3g的語料,訓練3元語言模型,32g記憶...
語言模型訓練工具SRILM
srilm的全稱是stanford research institute language modeling toolkit 他被用來構建和應用統計語言模型,主要用於語音識別,統計標註和切分,以及機器翻譯等工作。一 windows下編譯 ubuntu編譯,可以再52nlp中去找。vc編譯,可以再下面...