回退法里的 Bow(回退概率 ),和 NLP 里的计算方式相关,跟计算机视觉里的词袋模型(BoW)不是一回事。回退法里 Bow 的常见计算思路,大白话拆:
回退概率 Bow(ab) ,本质是 **“给‘用短词串代替长词串’这个行为的权重”** 。计算时,通常从 “已统计的词串概率” 里分配:
- 比如,所有三元组的概率和为
S_3,二元组的概率和为 S_2 → 可以让 Bow(ab) = (S_2 中未被三元组覆盖的部分) / S_2 。
- 人话:如果三元组已经覆盖了很多情况,说明二元组 “剩下的参考价值小”,
Bow 就低;反之则高。
为了方便,很多时候直接拍脑袋定一个常数(比如 0.5、0.1 )当 Bow 。
- 比如,不管词串多常见,统一
Bow=0.1 → 表示 “退一步时,只用短词串概率的 10% 来凑数”。
- 优点:简单好算;缺点:不够精准,但适合初步实现。
更精细的做法,是统计词串的 “出现频率” ,用频率反比当 Bow :
- 词串
ab 出现次数越多 → 说明它 “很靠谱”,Bow(ab) 越低(比如出现 1000 次,Bow=0.1 )。
- 词串
ab 出现次数越少 → 说明它 “不靠谱”,Bow(ab) 越高(比如出现 10 次,Bow=0.5 )。
假设算 P(美 | 祖 国) ,“祖国” 出现过 1000 次,其中 800 次后面跟了三元组 → 说明 “祖国” 很靠谱,Bow(祖国)=0.1 → P(美 | 祖国) = P(美 | 国) * 0.1 。
总结:回退法里的 Bow ,没有 “固定公式”,核心是 **“根据词串的‘靠谱程度’(出现频率、覆盖情况等 ),分配一个权重”** ,可以简单设常数,也能复杂统计 —— 目的就是 “让常见词串少回退,生僻词串多回退”~