首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算n元语法模型中使用的绝对折扣?

如何计算n元语法模型中使用的绝对折扣?
EN

Stack Overflow用户
提问于 2020-04-06 13:16:56
回答 1查看 38关注 0票数 1

我可以问一些关于执行绝对折扣的问题吗?谢谢你的帮助!

我的毕业设计是关于n-gram语言模型的,我尝试了绝对折扣。我参考了page上的公式

代码语言:javascript
复制
  f(a_z)  = (c(a_z) - D) / c(a_)
  p(a_z)  = (c(a_z) > 0) ? f(a_z) : bow(a_) p(_z)
  bow(a_) = (1 - Sum_Z1 f(a_z)) / (1 - Sum_Z1 f(_z))

但是,我的程序打印的退避权重结果与ngram-count生成的ARPA文件不同。我认为这是由于我对公式的误解造成的。我是这样理解的。假设计算bow(a,b):

代码语言:javascript
复制
  bow(ab) = (1 - Sum_Z1 f(abz)) / (1 - Sum_Z1 f(bz)) = (N(ab) / C(ab)) / (N(b) / C(b))

其中N(ab)表示像'abc‘和'abd’这样的唯一n元语法的数量。

我说的对吗?当涉及到弓(A)时,由于'a‘中没有后缀,如何计算分母?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 22:55:08

我已经找到了我自己问题的关键因素。这就是鼓励!这就是答案:

发布的公式是错误的

代码语言:javascript
复制
bow(ab) = (1 - Sum_Z1 f(abz)) / (1 - Sum_Z1 f(bz)) = (N(ab) / C(ab)) / (N(b) / C(b))

正确的答案是

代码语言:javascript
复制
bow(ab) = (1 - Sum_Z1 f(abz)) / (1 - Sum_Z1 f(bz)) = (N(ab) * D / C(ab)) / (1 - Sum_Z1 f(bz))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61053345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档