NLP(三)——语言模型

 

目录

Language Model

Unigram

Bigram

N-gram

 评估语言模型

Perplexity

 Smoothing

Add-one Smoothing

Add-K Smoothing

Interpolation

 Good-Turning Smoothing


Language Model

语言模型用来判断一句话是否从语法上通顺。

Unigram

Unigram模型假定各个部分相互独立,此种模型下概率计算会相对简单,但是存在问题:下图中的第二个概率和第三个概率计算结果一样,概率是等同的,判断不出这两句话的语义上的区别。

 Unigram模型下评估概率,统计出一篇文章中的单词个数v,然后再分别统计各个单词的个数c(i),然后这个单词的概率就是c(i)/v,然后利用上图中的公式就可以估计出一个句子的概率。例子如下图:

Bigram

Bigram模型依赖于1st order 马尔科夫假设,考虑到了两个单词之间的顺序问题,此种模型下能判断出下图中的第二句话和第三句话哪句话语义上更好。

 Bigram模型下评估概率,主要分为两部分,其中第一部分是评估单词的概率,这个时候的计算方法就和Unigram中的一样;另一部分是条件概率P(C1|C2),先找出出现单词C2的次数a,然后找出出现C2后,紧挨着后面出现C1的次数b,那概率P(C1|C2)=b\a。例子看下图:

N-gram

最常用的是N=3的情况,具体例子如下图:

N-gram模型下评估概率方法和上述两种方法一样,例子如下:

 评估语言模型

Perplexity

Perplexity=2^{-x},其中这个x是average log likelihood,我们期望的是训练出来的语言模型评估出的likelihood(也就是概率)是越大越好,由于log函数是单调递增的,所以期望的x也是越大越好,所以Perplexity就是期望越小越好。

 Smoothing

上文中的几种模型评估概率时,当其中一项为0时,那整体就为0,这样就存在不能很好的区分句子的问题,为了解决这个问题,提出了Smoothing这个方法。

Add-one Smoothing

v是词典的大小,注意是排除掉重复词后的个数,具体计算例子如下图:个人认为图片上的计算有点小错误,个人理解公式的分母应该是c\left ( w_{i-1} \right ),这样才能和图中的计算过程对得上。

Add-K Smoothing

当K=1时就变成了Add-one Smoothing的情况。

Interpolation

核心思路:在计算Trigram概率的同时考虑Unigram、Bigram、Trigram出现的频次。

 Good-Turning Smoothing

对于没有出现过的单词:P_{GT}= \frac{N1}{N},其中N是单词总的个数,N1是指只出现一次的单词的个数。

对于已经出现过的单词:P_{GT}= \frac{\left ( c+1 \right )\cdot N_{c+1}}{Nc\cdot N},其中c是指这个已经出现过的这个单词总共出现的次数,N_{c}是指单词总数为c的单词有几种,比方说N2就是指出现过两次的单词有哪些单词,然后N2就是这些单词的个数。

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《Huggingface自然语言处理详解——基于BERT中文模型的任务实战》源码是一份用于展示如何使用Huggingface库进行自然语言处理任务的示例代码。该代码基于BERT中文模型,旨在帮助读者理解如何使用该模型进行文本分类、情感分析等任务。 该源码由以下几个部分组成: 1. 导入必要的库:代码开始部分导入了需要使用的Huggingface库,包括`transformers`和`tokenizers`。这些库提供了BERT模型以及相关的处理函数和工具。 2. 数据预处理:接下来,源码介绍了如何进行数据预处理。这包括读取数据集、分词、编码等步骤。具体来说,使用`BertTokenizer`类对文本进行分词,并使用`BertTokenizer.from_pretrained`加载预训练的BERT中文模型。 3. 构建模型:源码构建了一个简单的BERT分类模型,使用`BertForSequenceClassification`类来实现。这个模型有一个BERT编码器和一个用于分类的线性层。 4. 训练模型:通过`Trainer`类,源码进行了模型的训练。在训练过程中,使用了一个训练集和一个验证集,并定义了相应的训练参数,如学习率、批大小等。训练过程中,模型参数逐渐更新,直到达到设定的最大训练轮数。 5. 模型评估:训练完成后,源码进行模型评估。通过计算准确率、查全率、查准率等指标,评估模型在验证集上的性能。 总的来说,《Huggingface自然语言处理详解——基于BERT中文模型的任务实战》源码提供了一个完整的BERT模型应用示例,通过该源码,读者能够了解如何使用Huggingface库中的BERT模型进行中文文本分类任务,并学会了如何进行数据预处理、构建模型、训练和评估模型等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值