小白都看得懂的自然语言处理教程--1——语言模型

上一篇概述的最后我们提出了一个问题就是:
针对分词结果:1. 我们|经常|有意见|分歧、2. 我们|经常|有|意见|分歧
到底哪种分词结果才算是好的分词结果呢?哪种才是我们希望得到的呢?
我们可以这样思考:如果能有一个工具能帮我们选出最好的分词结果该多好

这里我们要提出NLP工程师都要知道的——语言模型

一、语言模型

用通俗的话来说,语言模型是用来判断一句话是否是人话的模型。
用数学的方式来表达就是一个联合概率:
P(单词1,单词2,单词3) = P(单词1)P(单词2|单词1)P(单词3|单词1,单词2)
这个公式就是语言模型

那语言模型是如何来帮助我们进行分词的呢?
举个栗子:我们经常有意见分歧
这里我们考虑不同的分词组合

  • 我们|经常|有意见|分歧
  • 我们|经常|有|意见|分歧
  • 我们|经常|有意|见|分歧
  • 我们|经常|有意|见分|歧
  • ……
    在这里针对每一个组合我们有一个概率P(单词1、单词2、单词3…),我们要求的就是概率最大的那个组合(就是分词结果最好的)。

那我们如何计算这个P(单词1、单词2、单词3…)的概率呢?
接下来,我们举个栗子
我们计算 P(我们,经常,有,意见,分歧)的概率,根据语言模型则有
P(我们,经常,有,意见,分歧) = P(我们)P(经常|我们)P(有|经常,我们)P(意见|有,经常,我们)P(分歧|意见,有,经常,我们)

那我们又如何计算P(我们)、P(经常|我们)的概率呢?
思路一:我们可以通过大量的语料库来进行统计,例如一篇文章里面”我们经常“出现了3次,”我们爱你“出现了2次,那P(经常|我们)=3/5,其他的概率我们都可以这样计算出来。
划重点了
但是这里计算存在一个问题,就是如果我们的句子很长,例如:今天天气很不错,我和小明在学校门口看到了一个大长腿。P(大长腿|一个,看到了,…,今天)如何计算?

这里我们就要开始谈到了马尔科夫假设

二、马尔科夫假设(Markov Assumption)

其实用通俗的话来说马尔科夫假设:就是假设某个时刻的状态只与前面N个时刻的状态有关,这个N是可以根据具体情况自己设定的。
举个栗子:
我们今天去逛淘宝,淘宝会根据我们的之前的购买行为,然后给我们推荐。这个“之前”是多长呢?我们思考一下,3天前的购物行为和100天前的购物行为,对于今天逛淘宝的我们哪个更有参考价值?我们当然会说,离得越近越有价值啊。

所以根据具体情况,马尔科夫假设就可以分为:1st order、2st order、3st order…nst oder

语言模型根据这个马尔科夫假设,就有了很多变种,如N-Gram模型

三、N-Gram模型

N-Gram根据1st order、2st order、3st order…nst oder 可以有如下的关系:

  • unit-gram:1st order
    举例:P(我们,经常,有,意见,分歧) = P(我们)P(经常)P(有)P(意见)P(分歧)

  • bi-gram:2st order
    举例:P(我们,经常,有,意见,分歧) = P(我们)P(经常|我们)P(有|经常)P(意见|有)P(分歧|意见)

  • tri-gram:3st order
    举例:P(我们,经常,有,意见,分歧) = P(我们)P(经常|我们)P(有|经常,我们)P(意见|有,经常)P(分歧|意见,有)

四、总结

还记得上面我们语言模型中提到的这个问题吗?
P(大长腿|一个,看到了,…,今天)如何计算?
这里我们就可以根据具体的场景来选择N-Gram模型了,然后计算出P(大长腿|一个,看到了,…,今天)的概率。

提醒:当计算概率P(我们,经常,有,意见,分歧) = P(我们)P(经常|我们)P(有|经常,我们)P(意见|有,经常)P(分歧|意见,有)的时候,我们一般都要两边加上log,为了防止概率相乘,得到的结果太小,从而出现-inf(python中的无穷)的情况

问题的提出:
P(我们,经常,有,意见,分歧) = P(我们)P(经常|我们)P(有|经常,我们)P(意见|有,经常)P(分歧|意见,有)
当P(单词|单词…) = 0的时候,我们应该怎么办?
下一节,我们将讨论如何处理P(单词|单词…) = 0的概率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值