N-gram語言模型構建
KenLM工具
相比於SRILM訓練工具包,KenLM的誕生更later,訓練速度更快,支持單機大數據集訓練,相關鏈接如下:
KenLM開源github
KenLM 工具包主頁
KenLM各參數命令的含義
工具包下載地址:http://kheafield.com/code/kenlm.tar.gz
下載KenLM
wget -O - https://kheafield.com/code/kenlm.tar.gz |tar xz
使用cmake編譯安裝,更詳細的信息見kenlm/
主目錄下的BUILDING文件
mkdir -p build
cd build
cmake ..
make -j 4
使用KenLM構建中文語言模型流程
- 數據處理
- 模型訓練:使用KenLM來訓練n-gram語言模型[與DeepSpeech2兼容]
- 進入build/目錄,執行操作:
bin/lmplz -o 3 --verbose header --text mytext/19-01-au.txt --arpa mylmmodel/test.arpa
-o
爲必須的參數,3表示3-gram--verbose header
表示向ARPA文件開頭添加詳細的頭文件(可選)--text
訓練的語料庫--arpa
訓練生成的語言模型,在這之後爲了減少空間可以將其變成二進制格式的19-01-au.txt
爲從Full-text corpus data下載的英文訓練樣例- 將生成的語言模型變成二進制形式
爲減少空間,需要將生成的.arpa格式的語言模型變成二進制格式的.bin或.klm格式的:
bin/build_binary trie -a 22 -q 8 -b 8 mylmmodel/log3.arpa mylmmodel/log3.bin
bin/build_binary trie -a 22 -q 8 -b 8 mylmmodel/log3.arpa mylmmodel/log3.klm
爲了節省磁盤存儲空間,我們將使用參數“-a 22 -q 8 -b 8”將 arpa 文件轉換爲“trie”二進制文件。“-a”表示在“trie”中用於切分的指針的最高位數。“-q -b”是概率和退避的量化參數。
- 進入build/目錄,執行操作: