博客
关于我
NLP学习笔记14-语言模型(下)
阅读量:117 次
发布时间:2019-02-26

本文共 1303 字,大约阅读时间需要 4 分钟。

本文属于贪心NLP 学习笔记系列。通过实践学习,我逐渐掌握了数学概念的相关知识。

二 unigram

在处理语言模型时,不考虑单词之间的顺序,依赖于马尔科夫假设。假设w1, w2, ..., wn是相互独立的:一个事件的发生与否,不会影响另外一个事件的发生。

计算单词概率的方法是:统计语料库中某个单词出现的次数,再除以语料库的总词数。

这种方法的缺点是:单词相互独立,语义上不通顺的跟通顺的概率一样,难以区分。

三 bigram(基于1st order markov assumption)

考虑单词之间(前面的单词)的顺序,计算单词概率时需要考虑前一单词。

计算方法是:统计语料库中某个单词后接目标单词的概率。

这种方法可以更好地区分语义相近的单词。

四 N-gram

一般情况下,不会考虑N太多,bigram是最多使用的。

计算方法是:统计语料库中某个单词后接目标单词的概率。

为了防止出现未登录词(OOV),可以采用平滑技术。

五 语言模型的评估

困惑度是交叉熵的指数形式。困惑度越小,表示语言模型越好。

计算困惑度的方法是:根据训练好的模型,计算每个测试句子的平均对数似然值x,困惑度为2^{-x}。x越大,困惑度越小。

六 n-gram 语言模型中的平滑技术

自然语言处理中常见的问题是出现未登录词。优化方法是平滑技术。

平滑技术的核心是拉普拉斯平滑。公式如下:

P(w_{i} | w_{i-1}) = (C(w_{i-1}, w_{i}) + 1) / (C(w_{i-1}) + v)

其中,v是词典库的大小,C(w_{i-1}, w_{i})是w_{i-1}后接w_{i}的次数。

这里的v不是所有单词出现的次数,而是词典库的大小。

七 add-k smoothing

add-1是k=1的特例。优化方法是选择k值使得困惑度最小。

通常选择k=1或k=0,具体取决于实际情况。

八 interpolation

在实际应用中,可以结合unigram、bigram和N-gram的概率,计算更准确的结果。

公式如下:

P'(w_{n} | w_{n-1}, w_{n-2}) = λ1 * P(w_{n} | w_{n-1}, w_{n-2}) + λ2 * P(w_{n} | w_{n-1}) + λ3 * P(w_{n})

其中,λ1 + λ2 + λ3 = 1。

权重λ1, λ2, λ3可以通过优化确定。

九 good-turning smoothing

在实际应用中,采用good-turning算法优化平滑方法。公式如下:

P(w) = N1 / N

其中,N1是出现1次的单词数量,N是词典库的大小。

对于出现c次的单词:

P(w) = (c + 1) * N_{c+1} / (N_c * N)

其中,N_c是出现c次的单词数量。

通常,good-turning算法得出的概率与实际测试结果相符。

十 总结

在语言模型中,选择合适的平滑方法至关重要。无论是add-1 smoothing还是good-turning smoothing,都需要根据实际情况选择最优参数。

转载地址:http://rdcy.baihongyu.com/

你可能感兴趣的文章
network小学习
查看>>
Netwox网络工具使用详解
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS
查看>>
NFS Server及Client配置与挂载详解
查看>>
NFS共享文件系统搭建
查看>>
nfs复习
查看>>
NFS安装配置
查看>>
NFS的安装以及windows/linux挂载linux网络文件系统NFS
查看>>
NFS的常用挂载参数
查看>>
NFS网络文件系统
查看>>
nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
查看>>
NFV商用可行新华三vBRAS方案实践验证
查看>>
ng build --aot --prod生成文件报错
查看>>
ng 指令的自定义、使用
查看>>