人工智能Python机器学习首页投稿(暂停使用,暂停投稿)

DeepLearning笔记: 语言模型和 N-gram

2018-01-02  本文已影响161人  Kidult

语言模式是自然语言处理的一个基础概念。我们可以从语料中得到「语言模型」—— 即句子的概率,可用于:

机器怎样理解自然语言呢?有两种思路:

概率论基本原理

概率空间:所有可能的结果。概率中的原子结构是基本事件,不可分割,不重叠;分子结构是事件(基本事件的集合)。事件的概率,可以理解为所选取的基本事件在整个空间里占的面积比例。

概率语言模型

对句子做最简化的处理,先考虑只有两个词的句子,根据条件概率公式,它的概率等于第一个词的空间占比,乘以第一个词的概率空间中第二个词的占比:P(w_1,w_2) = P(w_2|w_1)*P(w_1)

最初级的语言模型(Unigram),可以人为地假设词之间是独立的: P(w_2|w_1) ≈ P(w_2),于是这个句子的概率约等于两个词的频率相乘: P(w_2,w_1) ≈ P(w_1)*P(w_2)

如果把两个词的句子扩展为三个词:


以此类推:

这样做的话,对每个词要考虑它前面的所有词,这在实际中意义不大。可以做些简化吗?

我们可以基于马尔科夫假设来做简化。

马尔科夫假设是指,每个词出现的概率只跟它前面的少数几个词有关。比如,二阶马尔科夫假设只考虑前面两个词,相应的语言模型是三元模型。引入了马尔科夫假设的语言模型,也可以叫做马尔科夫模型。

马尔可夫链(Markov chain)为狀態空間中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。

比如对上面公式做一个 i-k 的简化:

物理意义上说,上面的公式意味着每次看到 i 时,只要关注 i 前面的 k 个词,这就是 N-gram 模型的思路。

Ref

Art & Code 的热门文章

上一篇 下一篇

猜你喜欢

热点阅读