文章目录
Unigram 语言模型 (一元文法模型)是自然语言处理(NLP)中最简单、最基础的统计语言模型(N-gramN\text{-gram}N-gram 模型中 N=1N=1N=1 的特例)。
核心假设:词与词相互独立
Unigram 模型基于一个极强的假设------条件独立性假设(Bag-of-Words 词袋思想):
文本中每个词的出现概率完全独立,与其他任何词(上下文)无关,只取决于该词在语料库中自身的出现频率。
对于一个由 nnn 个词组成的句子 W=(w1,w2,...,wn)W = (w_1, w_2, \dots, w_n)W=(w1,w2,...,wn),根据全概率链式法则:
P(W)=P(w1)P(w2∣w1)P(w3∣w1,w2)...P(wn∣w1,...,wn−1)P(W) = P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) \dots P(w_n \mid w_1, \dots, w_{n-1})P(W)=P(w1)P(w2∣w1)P(w3∣w1,w2)...P(wn∣w1,...,wn−1)
在 Unigram 假设下,条件概率被彻底简化为每个词的无条件概率之积:
P(W)=∏i=1nP(wi)=P(w1)⋅P(w2)⋅⋯⋅P(wn)P(W) = \prod_{i=1}^n P(w_i) = P(w_1) \cdot P(w_2) \cdot \dots \cdot P(w_n)P(W)=i=1∏nP(wi)=P(w1)⋅P(w2)⋅⋯⋅P(wn)
参数估计(最大似然估计 MLE)
单个词 www 的概率计算非常直观,直接统计其在训练语料库中的词频占比:
P(w)=C(w)NP(w) = \frac{C(w)}{N}P(w)=NC(w)
- C(w)C(w)C(w):词 www 在训练集中出现的次数。
- NNN:语料库中所有词的总数(Total Tokens)。
具体例子
假设语料库中只有三句话:
I love catsI love dogsYou love dogs
总词数 N=9N = 9N=9。各词概率为:
- P(I)=29,P(love)=39,P(dogs)=29,P(cats)=19,P(You)=19P(\text{I}) = \frac{2}{9},\quad P(\text{love}) = \frac{3}{9},\quad P(\text{dogs}) = \frac{2}{9},\quad P(\text{cats}) = \frac{1}{9},\quad P(\text{You}) = \frac{1}{9}P(I)=92,P(love)=93,P(dogs)=92,P(cats)=91,P(You)=91
计算句子 I love dogs 的概率:
P(I love dogs)=P(I)×P(love)×P(dogs)=29×39×29≈0.0165P(\text{I love dogs}) = P(\text{I}) \times P(\text{love}) \times P(\text{dogs}) = \frac{2}{9} \times \frac{3}{9} \times \frac{2}{9} \approx 0.0165P(I love dogs)=P(I)×P(love)×P(dogs)=92×93×92≈0.0165
由于独立性假设,打乱语序后 dogs love I 的概率也是完全相同的 0.01650.01650.0165。
优缺点对比
-
优点:
-
极简高效 :计算和存储开销极低,参数量仅等于词表大小 ∣V∣\vert{}V\vert{}∣V∣。
-
不存在上下文稀疏问题:不需要统计"词对"或"短语"共现频次。
-
缺点:
-
完全丧失语序和语法结构 :无法区分句子的合法性(例如
I eat apple和apple eat I概率相同)。 -
无法捕捉上下文语义:同音异义词或多义词无法根据语境消歧。
现代应用场景
尽管 Unigram 极少直接用于生成连贯句子,但它在现代 NLP 中依然扮演着关键角色:
- 子词分词算法(Subword Tokenization) :如 SentencePiece / Unigram LM Tokenizer,通过衡量剪枝候选子词后对整体 Unigram 似然值的损失,来构建最优化的大模型词表。
- 基线模型(Baseline):用于文本分类、朴素贝叶斯(Naive Bayes)分类器、信息检索(TF-IDF / BM25 语言建模法)。