用srilm生成語言模型

2022-08-09 12:57:13 字數 1669 閱讀 9909

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 oovs

4 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編譯,可以再下面...