手动调参版

N-gram 语言模型 · 手动调参

拖动滑块改变 N、温度与平滑强度,实时观察下一个词的概率分布如何被重塑。

目标实验目标

通过手动调整 N-gram 的三个关键参数,直观理解 N(记忆长度)、温度(分布锐度)、平滑(对稀疏的处理) 如何共同决定模型的预测行为。

怎么玩固定一段语料,只动参数。看左侧的候选分布和右侧的算式,注意「候选数量」和「分布形状」这两件事怎么随参数变。

参数控制

1=一元 2=二元 3=三元。N 越大,记住的搭配越具体,但见过的组合越少。
温度低 → 概率分布尖锐,只挑最高频的字;温度高 → 分布平坦,冷门词也有机会。
给每个词都加一点点保底概率,让「没见过的组合」不至于直接判 0。
提示:把「平滑强度」从 0 慢慢拖到 1,再看「香蕉」这个从没出现过的前文——候选是怎么从「无」变成「有」的?

分布下一个词的概率分布

加载中…

算式概率是怎么算出来的

—
命中次数—
前文总次数—
是否触发平滑—
看这里把 N 从 1 调到 3,再回看算式里的「命中次数」——它为什么越来越小?这就是 N-gram 的稀疏困境。

生成让它写一句

…

挑战实验课挑战

挑战 1 · 温度的两端
把温度拉到 0.2 和 3.0,同一前文的分布有什么不同?哪个更像「死记硬背」,哪个更像「乱猜」?
挑战 2 · 平滑救场
前文选「香蕉」,平滑=0 时模型无话可说;把平滑调到 0.5 以上,它给出了什么?这个答案靠谱吗?
挑战 3 · N 的代价
把 N 从 1 调到 3,观察「命中次数」。N 大一定更好吗?什么情况下反而更差?
挑战 4 · 反推参数
想要一个「既给高频词机会、又不完全排除冷门词」的分布,温度和平滑你会分别设成多少?