N-Gram是基于一个假设:第n个词出现与前n-1个词相关,而与其他任何词不相关。(这也是隐马尔可夫当中的假设。)整个句子出现的概率就等于各个词出现的概率乘积。各个词的概率可以通过语料中统计计算得到。假设句子T是有词序列w1,w2,w3…wn组成,用公式表示N-Gram语言模型如下:
P(T)=P(w1)*p(w2)*p(w3)***p(wn)=p(w1)*p(w2|w1)*p(w3|w1w2)***p(wn|w1w2w3…)
N-Gram的应用
1. 基于一定的语料库,利用N-Gram来预计或者评估一个句子是否合理
2. 利用N-Gram 来评估两个字符串之间的差异程度。常用语模糊匹配
基于N-gram模型定义的字符串距离
模式匹配分为:精确匹配和模糊匹配
模糊匹配就是如何衡量两个单词之间的差异,这种差异又分为编辑距离( 通常利用Needleman-Wunsch算法或Smith-Waterman算法)。