N 元模型(N-Gram)

在词袋模型中,由于并不考虑词序,会导致 “我爱你” 和 “你爱我” 这两个文本的向量表示相同。比如:

  • 我爱你:我、爱、你
  • 你爱我:你、爱、我

根据语料构建词表为:[“我”, “爱”,”你”],对应的向量为:

  • [1, 1, 1]
  • [1, 1, 1]

由于词袋模型并没有考虑词序,所以表示是一样的。为了解决这个问题,我们需要在词向量中引入词序信息,以便构建出表征更为充分的向量。

为了能够在词袋模型中引入词序信息,我们可以使用 N-Gram 模型。

那么,什么是 N-Gram 模型?

N-Gram 模型就是将文本中连续 N 个元素(词或字)的序列作为新的特征词,其中 N 代表着一个连续序元素数量。

例如,N = 2 时,我们将连续的 2 个词作为一个新的特征词,此时:

  • 我爱你:我、爱、你、我爱爱你
  • 你爱我:你、爱、我、你爱爱我

如果我们设置 N = 3 时,可以将连续 3 个词作为一个新的特征,如下:

  • 我爱你:我、爱、你、我爱爱你我爱你
  • 你爱我:你、爱、我、你爱爱我你爱我

这就表示,我们在原始的句子中增加了 2-gram(bigram)、3-gram(trigram) 特征,当然也可以增加 4-gram、5-gram…,像原本的特征也叫做 1-gram(unigram) 特征

此时,由于特征词增加了,相应的词表也会扩充,如下所示:

["我", "爱", "你", "我爱", "爱你", "你爱", "爱我", "我爱你", "你爱我"]

最后,我们基于新的特征词表,使用词袋模型构建句子的向量表示:

  • [1, 1, 1, 1, 1, 0, 0, 1, 0]
  • [1, 1, 1, 0, 0, 1, 1, 0, 1]

通过 N-Gram 模型,在原本的特征词表中引入新的、包含一定的语序的特征词,使得构建出的文本向量不再仅仅包含单一的词频信息,从而使得文本表征更加丰富、文本得以区分。

未经允许不得转载:一亩三分地 » N 元模型(N-Gram)