這裡主要介紹我使用過的兩種根據文字生成語言模型的兩種方法
1. 通過**: sphinx 上傳檔案,生成對應的語言模型,需要注意的是檔案最好不要太大,**容易報504錯誤,貼下圖吧,傻瓜式的操作方式:
2. 使用srilm 訓練語言模型
1、從語料庫中生成n-gram計數檔案:
1 ngram-count -text train.txt -order 3 -write train.txt.count-text指向輸入檔案
-order指向生成幾元的n-gram,即n
-write指向輸出檔案
2、從上一步生成的計數檔案中訓練語言模型:
1 ngram-count -read train.txt.count -order 3 -lm lm -interpolate -kndiscount-read指向輸入檔案,為上一步的輸出檔案
-order與上同
-lm指向訓練好的語言模型輸出檔案
最後兩個引數為所採用的平滑方法,-interpolate為插值平滑,-kndiscount為 modified kneser-ney 打折法,這兩個是聯合使用的
3、利用上一步生成的語言模型計算測試集的困惑度:
1 ngram -ppl test.txt -order 3 -lm lm > result-ppl為對測試集句子進行評分(logp(t),其中p(t)為所有句子的概率乘積)和計算測試集困惑度的引數
result為輸出結果檔案
其他引數同上。
如果想要每條句子單獨打分,則使用以下命令:
1 ngram -ppl test.txt -order 3 -lm lm -debug 1 > result首先安裝tcl
安裝srilm
2、解壓到/home/user/srilm/
3、修改makefile檔案:
12
3
4
# srilm = /home/wm/srilmsrilm = /home/wm/srilm
#machine_type := $(shell $(srilm)/sbin/machine-type)
machine_type := i686-m64
4、修改srilm/common/makefile.i686-m64
找到:gawk = /usr/bin/awk
修改為:gawk = /usr/bin/gawk
5、srilm目錄下面執行:make world
6、繼續執行make test
7、新增環境變數:
1 export path="$path:/home/user/srilm/bin/i686-m64:/home/user/srilm/bin"
新增之後執行ngram-count還是找不到命令,解決方法:i686-m6目錄下建立新目錄test,建立鏈結,把命令鏈結到test下面
1、需要訓練好的語料資料
訓練的語料和訓練結果是相關的,假如語料是言情**那麼訓練的language model也是言情風格的。接下來要對語料進行分詞,英文不需要分詞,處理標點符號。
2、訓練
先從語料庫生成n-gram計數檔案
1 ngram-count -text test.pos -order 3 -write train.txt.count生成的train.text.count第一列為n元詞,第二列為相應的頻率統計,結果如下:
3、接著從上一步的結果計數檔案中訓練語言模型
1 ngram-count -read train.txt.count -order 3 -lm lm -interpolate -kndiscount看看結果,一元詞有14081個,二元詞有63891個,三元詞有6644個
以第乙個為例:-0.3054161 ! -0.4752966
-0.3054161 :log(概率),以10為底
-0.4752966 :log(回退權重),以10為底
4、利用上一步生成的語言模型計算測試集的困惑度:
1 ngram -ppl test.txt -order 3 -lm lm -debug 1 > resultppl為對測試集句子進行評分(logp(t),其中p(t)為所有句子的概率乘積)和計算測試集困惑度的引數,結果如下:
0 zeroprobs, logprob= -61.72443 ppl= 58.01698 ppl1= 65.37691分別表示:
無0概率;logp(t)=-105980,ppl==90.6875, ppl1= 107.805,均為困惑度。
但公式稍有不同,如下:
ppl=10^/}; ppl1=10^/word}
其中sen和word分別代表句子和單詞數
第二種方法是copy過來的, 原位址是:srilm 訓練語言模型
好的語言模型可以得到更好的解碼結果!!!
用srilm生成語言模型
srilm的主要目標是支援語言模型的估計和評測。估計是從訓練資料 訓練集 中得到乙個模型,包括最大似然估計及相應的平滑演算法 而評測則是從測試集中計算其困惑度。其最基礎和最核心的模組是n gram模組,這也是最早實現的模組,包括兩個工 具 ngram count和ngram,相應的被用來估計語言模型...
AWR ASH和Statspack的生成語句
awr ash和statspack的生成語句 2010 08 24 14 03 statspack初始化方法 必須擁有dba許可權 oracle home rdbms admin spcreate.sql statspack刪除方法 oracle home rdbms admin spdrop.sq...
喬姆斯基生成語法 喬姆斯基的轉換生成語法理論
無論是分析哲學還是歐洲大陸哲學,都重視研究語言,這是當代西方哲學的乙個重要特徵,語言不能脫離世界,語言只有表現世界才有它正真的存在。當代美國語言大師喬姆斯基首創了轉換生成語法理論,正是這種轉換生成語法在語言中挑起了一場革命。它標誌著西方語言學的研究,尤其是美國的語言學界研究進入了乙個嶄新的時代,即喬...