Flutter开发App的未来及其在各行业的应用潜力分析
1045
2022-11-17
自然语言处理——语言模型(二)
引言
本文主要介绍N-Gram语言模型相关知识。
N-Gram
我们知道这两句话中“今天春节是都我们休息”是不通顺的,我们希望语言模型能给这句话一个很低的概率。 但在Unigram模型下,可以看出这两句话的概率是相等的。这就是Unigram模型不考虑单词顺序(单词独立)的弊端。
从这里可以看出来,由于Bigram模型考虑了前一个单词,这里可以很容易看出来第一句话是优于第二句话的。比如“今天是”比“今天春节”更加常见(通顺),“我们都”比“都我们”更加常见。
那Bigram只考虑了前面一个单词就能得到更好的结果,如果我们多考虑前面几个单词呢。这就是N-Gram模型。 有一点是肯定的,考虑前面单词越多,能得到的效果越好。那是不是真的越多越好呢。
估计语言模型的概率
在上一篇文章中,我们假设已经知道这些概率。这些概率就是语言模型的概率,本节来探讨一下如何估计语言模型的概率。
Unigram
首先来看下Unigram模型,
下面来看一个简单的例子,假设语料库中的单词如下:
现在想要评估“今天/开始/训练营/课程”和“今天/没有/训练营/课程”这两句话的概率。
因为单词“没有”未出现在语料库中,导致它的概率为零,最终让整个句子的概率为零。 这个句子显然是合理的,但是其概率为零是不合理的。
为零弥补这样的缺点,我们需要采用平滑的方法,就是在分母和分子上增加一个项,使得不会出现概率为零的情况。这个我们后面会讲。
Bigram
上面是Unigram的情况,那Bigram模型要怎么估计概率呢。
假设我们有个这样的语料库,其中“明天”出现了5次,其中有2次是“明天”后面接“是”的。
下面也用一个具体的例子来阐述。
我们有一个这样的语料库,要计算“今天/上午/想/出去/运动”和“今天/上午/的/天气/很好/呢”。
可以看到,由于“上午”后面没有出现“的”和“很好”后面没有出现“呢”,也存在概率为零的问题。
本篇文章就到这里,下篇文章将会介绍如何评估语言模型的好坏以及如何使用平滑来避免出现概率为零的情况。
参考
贪心学院课程
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~