机器学习五分钟:自然言语处理(NLP)的N-gram模型是什么?

图灵汇官网

在日常交流中,我们经常会思考语法问题,比如:“我要学习NLP”、“NLP要学习我”、“自然语言处理研究我”、“我研究自然语言处理”等句子。

在这几句话中,有些句子在语法上显得不太合理。我们不会说某个事物来研究人,这是人类在长期的语言积累过程中形成的一种直觉,我们称之为“联想”。

同样地,当我们想到“可口可乐”时,往往会联想到“百事可乐”,而不是“咖啡”。

NLP中的联想方法

在自然语言处理(NLP)领域,是否也存在类似的“联想”现象呢?

答案是肯定的。接下来要介绍的N-gram模型正是基于这种联想机制。N-gram模型具有以下两个特点: - 一个词的出现依赖于前面的多个词;获得的信息越多,预测下一个词出现的概率就越准确。 - N-gram模型是一种语言概率模型,其输入是一串单词的顺序序列,输出则是该序列出现的概率。

N-gram具体指的是一个有序词组的集合,不关心词组中是否有重复的词汇(例如“我我我不想吃饭”)。常见的N-gram有Bi-gram(n=2)和Tri-gram(n=3),即每次构建由n个词组成的词组集合。 - Bi-gram示例:{(I,love),(love,you)} - Tri-gram示例:{(I,love,you)}

N-gram的概率计算

为了计算N-gram的概率,我们需要引入马尔科夫假设:一个词的出现仅与其前一个或几个词相关。

  • 如果一个词的出现仅依赖于它之前的单个词,则该模型为Bi-gram。
  • 如果一个词的出现依赖于它之前的两个词,则该模型为Tri-gram。

计算N-gram的概率非常简单,可以通过最大似然估计(频率计数)来实现。

例如,我们以Bi-gram为例,构建以下三个句子的语料库: - I am Sam。 - Sam I am。 - I do not like eggs and ham。

从这三句话中,我们可以统计出“I”出现了3次,“I am”出现了2次,因此P(I | am) = 2/3。

同样的方法可以用来计算其他条件概率。

N-gram的常见用途

N-gram模型在NLP中有许多实际应用,其中一个常见的用途是作为分词工具。分词效果直接影响后续自然语言处理任务的质量。我们可以将分词视为一个多分类问题,其中X表示待分类的句子,Y表示可能的分词方案集合。

例如,对于句子“我喜欢自然语言处理”,可以有多种分词方案: - 方案一:{“我/喜欢/自然语言处理”} - 方案二:{“我/喜/欢/自然/语言/处理”} - 方案三:{“我/喜/欢/自/然语言/处理”}

根据上述联合概率,方案一出现的概率更高,因为“欢自然”或“我喜”这类组合在词典中出现的概率较低。从概率的角度看,方案一是最佳选择。

本文来源: 图灵汇 文章作者: