上一章我们说到,计算机是使用基于统计的方法来处理自然语言,那么这个过程究竟是如何进行的呢?
我们知道,一个有意义的句子由多个词按照特定的顺序排列而成,那么判定一个句子是否合理,就看它这个排列顺序出现的可能性大小如何了。
即假设有三个句子
【我爱看书
我看书爱
书看爱我】
如果第一个句子出现的概率是10-20,第二个句子出现的概率是10-30,第三个句子出现的概率是10-80,那么第一个句子出现的概率最大,也就是相对最合理的。
那么为什么会选择使用概率呢?
就像在现实生活中的许多情况一样,当我们描述一件事物之时,简单而不确定往往更为实用。例如“多数人认为自己是对的”、“多数的鸟而都会飞”往往比“除了那些抑郁的、不自信的的人,包括失去了思考能力的人、意识到错误的人……以外,人都认为自己是对的”、“除了那些还每学会飞翔的幼鸟,因为生病或是受伤而失去了飞翔能力的鸟,包括一些本身便不会飞的鸟,鸟会飞”都来得更加实用并且广泛。
在计算机处理数据之时,以上述的句子为例,对于计算机而言,它处理的每一个词都具有不确定性和随机性。事实上,不管是文字翻译、语音识别还是其他的智能行为,计算机通常都必须处理不确定的变量,这些不确定性通常有3种可能的来源:
(一) 被建模系统内在的随机性。例如在一个纸牌游戏中,我们假设纸牌被真正混洗成了随机顺序;
(二) 不完全观测。即使是确定的系统,当我们不能完全观测到这个系统的全部变量时,这个系统也呈现随机性。例如在一个游戏节目中,参与者被要求在三个门之间选择,其中两个门背后没有东西,另一个门后放置着一个礼盒。对局外人来说,参与者的每个选择的结果是确定的,但对参与者来说,结果却是不确定的。
(三) 不完全建模。当我们使用一些必须舍弃某些观测信息的模型时,舍弃的这些信息会导致模型的预测出现不确定性。
现在我们回到概率论上。当我们说一个事件A发生的概率是p,那么p代表着什么意思?p意味着如果我们反复进行一个实验无限次,有p的比例可能会发生事件A。这很容易理解,就像掷色子,如果说掷出6点的概率为1/6,那么就是说如果我们反复掷色子一百次一千次,那么掷出6点的次数就会接近掷色子次数的1/6。这便是频率派概率。
那么如果一个医生对病人进行诊断之后,说该病人患癌症的概率为30%,这个概率又是什么意思呢?在这个案例中,1表示确定病人患癌症,0表示确定病人没有患癌症,这个便是对确定性水平的一种表示,被称为贝叶斯概率。
如果我们将频率派概率和贝叶斯概率视作等同的,那么我们便可以做以下的事情:在一个纸牌游戏中,我们可以根据一个人手上的牌来计算这个人输赢的概率,就像医生根据病人的症状计算病人是否患病的概率一样。
事实上,当我们拥有了一件事物大量的数据,并依此来对此事物的不确定性进行推断的时候,我们使用的方法便是上述的方法。
逻辑推理,是在给定某些命题真假的前提下,判断另一些命题的真假。
利用概率论,则是在给定某些命题的似然的前提下,计算另一些命题的似然。由此便贴合了智能的需求。
下一章,我将以计算概率的案例来进一步讲述计算机是如何处理自然语言的。
欢迎参与讨论,同时敬请关注神灯前沿探索。
领取专属 10元无门槛券
私享最新 技术干货