这页讲 N-gram 模型咋算 “一句话像不像人话” 的概率,大白话拆成是啥、咋算、优缺点:
把句子拆成 “连续的词或字(w₁、w₂…wₙ)”,算这些词按顺序出现的概率。概率越高,句子越像人话。
比如句子是 “今天天气不错”,拆成 w₁= 今、w₂= 天、w₃= 天…
算概率时,是这样的:
- 先算 “今” 出现的概率(P (w₁) )
- 再算 “天” 在 “今” 后面出现的概率(P (w₂|w₁) )
- 接着算 “天” 在 “今、天” 后面出现的概率(P (w₃|w₁w₂) )
- …… 依次往后,把这些概率相乘,就是整句话的概率。
- 简单好懂:靠统计 “词的前后搭配频率”,逻辑直白,像数 “哪些词常一起出现”,好实现。
- 基础好用:是很多语言任务的 “打底工具”,比如早期输入法联想词、简单语音识别,靠它就能干活。
- 记不住长依赖:比如句子长了,前面第 1 个词对第 10 个词的影响,它算不清(因为要算 “前面所有词” 的条件概率,太复杂 )。
- 数据爆炸:词越多,要统计的搭配组合指数级增长,电脑存不下、算不动。
- 没常识:只会统计 “谁和谁常一起”,不懂语义。比如 “苹果手机” 和 “苹果水果”,它分不清区别,只知道 “苹果” 常和 “手机 / 水果” 连。
总结:N-gram 是语言模型里的 “老前辈”,简单好上手,但面对复杂、长句子,或者需要理解语义的任务,就不够用啦~ 适合做基础、简单的语言判断,复杂场景得换更厉害的模型(比如神经模型 )。