学习语言模型

  • 文本处理
    建立模型需要用到大量的数据,根据要求首先需要先对数据格式先进行处理,Python提供了许多的简便操作供使用,比如去空格,去符号,大小写切换等,根据学习资料了解到,处理数据时自己调用函数处理可能会出现一些没有注意到的问题,如学习资料里提到的,它至少有以下几个缺点:
    标点符号通常可以提供语义信息,但是我们的方法直接将其丢弃了 类似“shouldn’t", “doesn’t"这样的词会被错误地处理 类似"Mr.”, "Dr."这样的词会被错误地处理。通过调用专业的包,处理数据就会变得很容易且合理,工具有spaCy和NLTK。

  • 一段自然语言文本可以看作是一个离散时间序列,给定一个长度为 T 的词的序列 w1,w2,…,wT,语言模型的目标就是评估该序列是否合理,即计算该序列的概率: P(w1,w2,…,wT).

  • 建立语言模型即对文件建立数据库,文本在这个数据库中出现的概率可以认为是P^(w1)=n(w1)/n,其中n(w1)是以w1开头的文本的数量,n为数据库中文本的总量,序列长度增加,计算和存储多个词共同出现的概率的复杂度会呈指数级增加。 n 元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面 n 个词相关,即 n 阶马尔可夫链(Markov chain of order n ),如果 n=1 ,那么有P(w3∣w1,w2)=P(w3∣w2) 。基于 n−1 阶马尔可夫链,我们可以将语言模型改写为P(w1,w2,…,wT)=∏t=1TP(wt∣wt−(n−1),…,wt−1).当 n 较小时, n 元语法往往并不准确。例如,在一元语法中,由三个词组成的句子“你走先”和“你先走”的概率是一样的。然而,当 n 较大时, n 元语法需要计算并存储大量的词频和多词相邻频率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值