gpt4 book ai didi

nlp - 愚蠢的退避实现说明

转载 作者:行者123 更新时间:2023-12-03 20:47:36 29 4
gpt4 key购买 nike

大家好,我正在实现 Stupid Backoff (第 2 页,等式 5)我正在从事的项目的平滑技术,我对其实现有疑问。这是 NLP 中使用的平滑算法,Good-Turing 是我猜最广为人知的类似算法。

该算法的简要说明是:
当试图找到单词出现在句子中的概率时,它首先会在 n-gram 级别寻找单词的上下文,如果没有那个大小的 n-gram,它将递归到 (n-1)-gram并将其分数乘以 0.4。递归在 unigrams 处停止。

因此,如果我想在“晴天”的上下文中找到“天”的概率,它会首先查看语料库中是否存在三元组“晴天”,如果不存在,则尝试与二元组“晴天”,最后它只会得到“天”的频率除以语料库大小(训练数据中的单词总数)。

我的问题是:每次减少 n-gram 的大小时,我是否将分数乘以 0.4?

因此,在上面的示例中,如果我们无法找到三元组或二元组,则最终分数将是:

0.4 * 0.4 * 频率(天)/语料库大小?

或者我只是在最终级别乘以一次,所以无论我必须进行多少退避,我都只将最终分数乘以 0.4?

最佳答案

基本上我读到了你在上面的数学中描述的等式 5。

因此,对于没有观察到实例的“晴天”,您将计算 S("day"| "a sunly")。找不到三元组“晴天”,您将在等式 5 中采用案例二,并将 S("day"| "a sunny") 估计为 alpha * S("day"| "sunny")。

如果再一次,您没有记录“晴天”的纪念日,您会将 S("day"| "sunny") 近似为 alpha * S("day"),这是终端情况 f("day")/N(观察到的 unigrams 的数量)。

通过将 alpha 设置为 0.4,您将得到上面写的内容。

希望这可以帮助。

-bms20

关于nlp - 愚蠢的退避实现说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383194/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com