在 NLP 应用程序中存储语言模型的最有效方式是什么?

What is the most efficient way of storing language models in NLP applications?

他们通常如何存储和更新语言模型(例如N-gram模型)?什么样的结构是将这些模型存储在数据库中最有效的方式?

语言模型中最常用的数据结构tries and hash tables. You can take a look at Kenneth Heafield's paper on his own language model toolkit KenLM自己的软件和相关包使用的数据结构更详细

对于语音识别和其他一些应用,通常将 n-gram 模型表示为有限状态转换器。我不知道 FST 是最有效的存储结构,但是有非常简单(并且数学上干净)的方法可以将它们与语音识别模型的其他部分结合起来。

参见 OpenFST library and the OpenGRM tools (built on top of OpenFST) for language-model construction, pruning, evaluation, etc. Mohri et al., 2002 是一个很好的介绍,以及从 OpenFST 和 OpenGRM 站点链接的其他论文。