文献阅读记录(二十一)2023-08-08

一、估计语言模型的概率。给定一个语言模型,如何去评估一个句子。通过马尔可夫的假设,将条件概率简化之后就可以计算出这个概率,前提就是已经训练好这样一个模型。

如何训练语言模型,其实就是做一个统计分析,看一个词,一句话在文本中出现了几次,在这个单词出现后紧跟着又出现了什么样的单词,做类似的统计就相当于创建了语言模型。

Unigram模型:p(w1,w2,w3,...,wn)=p(w1)p(w2)...p(wn)。每个单词都是一个独立的个体。

判断每个单词的概率就是在于语料库中查看每个单词出现的频率是多少。例如:一直语料库中有十的五次方个词,其中“我们”出现次数为100次,相对应可以计算出p(“我们”)=1‰Unigram模型下的单词概率都可类似求出。

Bigram模型:p(w1)·p(w2|w1)·p(w3|w2)·...·p(wn|wn-1),是基于First order markov assumption。

如何计算每个概率,例如:求p(是|明天),在语料库中查看,有哪些词是明天,并查看明天这个词后面一个词是什么,求的就是前面出现明天,后面出现是的概率是多少。假设“明天”共出现5次,其中有两个后面单词为“是”,则p(是|明天)=2/5。N-gram模型和Bigram模型的求法是类似的。

二、评估语言模型:Perplexity。

在理想情况下,将两个语言模型套入选定的特定任务中,通过比较最后的准确率来判断哪一个语言模型更适用。但是,这个方法耗费时间较多,不仅要构建一个语言模型,而且需要把整个系统的流程搭建起来,才可以去评估。

在不依赖任务,也就是不在任务上进行评估,可以节省很多操作而且更具有公平性。就类似于做填空题,例如给定一句话:“今天天气很好,适合出去运动。”,给定语言模型“今天”,来对后面的单词进行一个预测,就相当于是做了填空题。

这个评估方法,有一个评估标准,叫做Perlplexity,是非常重要的一个概念。在文本的评估,特别是无监督的文本的评估,通常采用这个评估方法。

Perlplexity=2^{-(x)}   x:average log likelihood,是在验证集或测试集中计算出来的。

一个好的语言模型放入语料库中算出的likelihood是越大越好的,也就是最后计算出来的Perlplexity越小越好。一般情况下,N-gram计算出的Perlplexity会越小,但是选择的N越大,语言模型就更倾向于过拟合现象,越来越复杂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值