我在平滑 3 克计数的大文件时遇到问题。我使用 :estimate-ngram -order 3 -counts allgrams -smoothing FixModKN -wl allgrams.FixModKN.lm 命令,我得到这个错误:
Saving LM to train.corpus.lm...
estimate-ngram: src/NgramModel.cpp:422: void NgramModel::SaveLM(const
std::vector<DenseVector<double>, std::allocator<DenseVector<double> > >&, const
std::vector<DenseVector<double>, std::allocator<DenseVector<double> > >&, ZFile&)
const: Assertion `(size_t)(ptr - lineBuffer.data()) < lineBuffer.size()' failed.
在我尝试使用 4.7GB 文件的 2-gram 之前,它工作正常。3 克文件是 20GB 大。
我的操作系统是带有 96GB RAM 的 GNU/Linux x86_64