目标实验目标
打开 N-gram 的「引擎盖」:统计函数 count_ngrams() 与 预测函数 predict_next()。修改其中的参数与公式,运行后从日志里逐步核对每一步的计算。
操作代码里黄色虚线标注的数字可以直接点击修改。改完点「运行代码」,右侧日志会逐行打印真实计算过程。
代码可编辑源码
ngram_lm.js — 点击黄色数值修改
设置预测场景
提示选「香蕉」再运行,看看 smoothing 参数取 0 和取 0.5 两种情况,日志如何不同。
监视变量监视
context = -
N = -
temperature = -
smoothing = -
命中次数 = -
候选数 = -
结果预测结果
等待运行…
日志执行日志
点击「运行代码」开始执行…
挑战实验课挑战
挑战 1 · 把 N 改成 3
修改 N = 2 为 3,观察日志里「命中次数」的变化。为什么它变小了?
修改 N = 2 为 3,观察日志里「命中次数」的变化。为什么它变小了?
挑战 2 · 平滑救场
保持前文为「香蕉」,把 smoothing = 0 改为 0.5,再运行。模型从「无话可说」变成了什么?
保持前文为「香蕉」,把 smoothing = 0 改为 0.5,再运行。模型从「无话可说」变成了什么?
挑战 3 · 温度实验
把 temperature = 1.0 改成 0.3 和 3.0,对比最高概率值的差异。
把 temperature = 1.0 改成 0.3 和 3.0,对比最高概率值的差异。
挑战 4 · 改公式
把日志里的概率公式从「除以 temperature」改成「乘以 temperature」,结果还合理吗?为什么必须除以?
把日志里的概率公式从「除以 temperature」改成「乘以 temperature」,结果还合理吗?为什么必须除以?