从1到N的多个词拼接成一句话的概率等于N个概率的乘积:
这样的话,每一个后面的参数的概率要计算前面事件发生时的条件概率,会变为一个计算量很大的工作。于是我们使用马尔可夫模型,认为当前变量概率仅仅与前面N个变量概率有关,当N=1,考虑2个变量时,为二元模型,或称为二元文法模型。英文读音是比个来姆['bɪɡræm],没有使用[baɪ]的读音。
N-gram的基本思想是将文本内容按字进行长度N的滑动窗口操作,形成长度为N的字节片段序列,每个字节片段是一个gram,对全部gram的出现频度进行统计,并按照设定的阈值进行过滤,形成keygram列表,即为该文本的特征向量空间,每一种gram则为特征向量维度。
中文文本处理大多采用bi-gram进行分解,因为双字词出现概率比较大,即以大小为2的滑动窗口进行操作,切成长度为2的字节片段;注意Google使用3元分析进行判断。
bigram切分方法在处理20%左右的中文多字词时,往往产生语义和语序方面的偏差。
而多字词常常是文本的核心特征,处理错误会导致较大的负面影响。
自动产生多字特征词:基于n-gram改进的文本特征提取算法,在进行bigram切分时,不仅统计gram的出现频度,而且还统计某个gram与其前邻gram的情况,并将其记录在gram关联矩阵中,对于连续出现频率大于事先设定阈值的,就将其合并为多字特征词,可以较好弥补n-gram算法在处理多字词方面的缺陷。