博客
关于我
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/

你可能感兴趣的文章
NSGA-Ⅲ源代码
查看>>
nsis 安装脚本示例(转)
查看>>
NSJSON的用法(oc系统自带的解析方法)
查看>>
nslookup 的基本知识与命令详解
查看>>
NSNumber与NSInteger的区别 -bei
查看>>
NSOperation基本操作
查看>>
NSRange 范围
查看>>
NSSet集合 无序的 不能重复的
查看>>
NSURLSession下载和断点续传
查看>>
NSUserdefault读书笔记
查看>>
NS图绘制工具推荐
查看>>
NT AUTHORITY\NETWORK SERVICE 权限问题
查看>>
NT symbols are incorrect, please fix symbols
查看>>
ntelliJ IDEA 报错:找不到包或者找不到符号
查看>>
NTFS文件权限管理实战
查看>>
ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
查看>>
ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
查看>>
ntp server 用法小结
查看>>
ntpdate 通过外网同步时间
查看>>
ntpdate同步配置文件调整详解
查看>>