题外话:最近发现学了一些东东貌似都可以用在查询扩展上,慢慢开始总结一下吧,xixi~ 附一下查询扩展的解释吧
N-gram模型的优点在于它包含了前N-1个词所能提供的全部信息,这些词对于当前词的出现具有很强的约束力,然而它的缺点是需要相当规模的训练文本来确定模型的参数。当N很大时,模型的参数空间过大。所以常见的N值一般为1,2。还有因数据稀疏而导致的数据平滑问题,解决方法主要是使所有的N-gram概率之和为1和使所有的N-gram概率都不为0.
除此之外,与连续空间的词表示法语言学规则模型对比(例如word2vec构建出的词向量),N-gram语言模型还有以下的局限性:
N-gram模型是根据相互之间没有任何遗传属性的离散单元词而构建,从而不具备连续空间中的词向量所满足的语义上的优势:相似意义的词语具有相似的词向量,从而当系统模型针对某一词语或词序列调整参数时,相似意义的词语和词序列也会发生改变。
因此,如果在已知关键词权重非常大的情况下,使用N-gram模型或许比较合适。