使用KenLM build_binary转换ARPA文件为二进制文件时内存分配失败的问题求助
KenLM build_binary转换ARPA文件为二进制文件时内存分配失败的问题求助
我用KenLM生成了一个ARPA格式的语言模型文件,生成命令如下:
./lmplz -o 4 -S 1G <tmp_100M.txt >100m.arpa
现在我想把这个ARPA文件转换成二进制格式,执行了这条命令:
./build_binary 100m.arpa 100m.bin
结果遇到了内存分配失败的错误,具体报错信息如下:
mmap.cc:225 in void util::HugeMalloc(std::size_t, bool, util::scoped_memory&) threw ErrnoException because `!to.get()'.
Cannot allocate memory Failed to allocate 106122412848 bytes Byte: 80
ERROR
我尝试在build_binary命令里加上-S参数来限制内存使用:
./build_binary -S 1G 100m.arpa 100m.bin
但还是出现了完全相同的错误。
想请教大家两个问题:
- 我应该怎么操作才能成功将ARPA文件转换成二进制文件?
- 为什么会出现这个内存分配失败的错误?
备注:内容来源于stack exchange,提问作者user3668129
相关产品推荐
相关产品推荐

