在语言学里,我们之前学过 morpheme(词素) 是最小的有意义单位(意义不随单词形式改变)。但有时候:同一个 morpheme 在不同环境里会表现成不同的形式(signifier) ,而意义(signified)不变。这种现象就叫 Allomorphy(音形变体现象)。通俗地讲:
- 一个 morpheme → 有多个 不同的实际表面形式(allomorphs)
- 这些不同形式根据上下文或规则出现
- 但它们"代表的意义/语法功能是一样的"
1. 核心定义(最重要的三点)
一个 morpheme 有 allomorphy,当:
- Signified(意义)保持相同
- Signifier(表现形式)发生变化
- 这种变化是 可预测的/遵循规则的
换句话说:下层意义不变,但形式随环境规则改变 → 就是 allomorphy。(dmort27.github.io)
2. 经典例子:英语动词 hop
英语动词 HOP("跳")在不同形态下的拼写形式不一样:
| 语法形式 | 词形 | allomorph |
|---|---|---|
| Base | hop | hop |
| 3rd person | hops | hop+s |
| Past | hopped | hopp+ed |
| Progressive | hopping | hopp+ing |
注意:
- 在加 -ed 或 -ing 时,词根 HOP 被拼写成 HOPP → 这是同一个 morpheme 的一个 allomorph
- 但在别的环境中词根仍然保持 HOP 本来形式
- 这就是 allomorphy:同一个意义单元在不同拼写/语境出现不同形态 。(dmort27.github.io)
3. 为什么会有 Allomorphy?
语言不是每一种环境都用同一种形式。规则会根据语音或邻近结构的要求来改变形式,这些变化通常是:
✔ phonologically conditioned(语音条件)
✔ morphologically conditioned(形态条件)
✔ lexically conditioned(词汇特定条件)
大多数 allomorphy 情况是 phonologically conditioned:例如英语复数词尾:
- -s 出现在大多数词后
- 但在以 sibilants(如 s, z, sh, ch )结尾的词后,复数形式是 -es
- 这两个形式其实都是表示 plural(复数) 的同一个 morpheme,但外形不同 → 所以它们是 allomorphs。
这和语音环境有关:以 "s, sh, z, ch" 结尾时加一个额外的元音可以让发音更自然。(dmort27.github.io)
4. Allomorphy 的三种常见类型
下面结合语言学通用分类来讲(虽然讲义只是举例)。
🔸Phonologically Conditioned Allomorphy
形式变化是根据语音环境决定的。例子:英语复数
- cat → cats
- fox → foxes
这两个复数形式是由同一个 morpheme 产生的不同 allomorphs。(dmort27.github.io)
🔸 Morphologically Conditioned Allomorphy
形式变化依赖形态结构,比如词根和词缀组合规则。
在一些语言中,根据词根类别或语法类别,同一个 morpheme 可能在不同形态范式中出现不同 allomorphs。(Course Hero)
🔸 Suppletive Allomorphy(替代性变体)
比较极端的情况:同一个词的不同形式来自完全不同的根。例子:
- go ←→ went(英语过去式)
- good ←→ better/best(比较级/最高级)
这些不是规则变化生成的,而是历史遗留的替换形式。 This is also considered a kind of allomorphy.(Course Hero)
5. Allomorphy 和 Subword Modeling 有什么关系?
现代 subword tokenizer(比如 BPE、WordPiece、Unigram 等)通常把所有不同的表面形式都当成不同 token。
⚠️ 但严格语言学上,这些不同形式其实是**同一个意义单元(morpheme)**的变体(allomorph)。
这在做 embedding(词向量)训练 时有两个问题:
5.1 表面形式造成稀疏性(Sparsity)
把 s , es , zed , z(复数变体)当作独立 token:
- 同一个意义单元被拆成多个词表项
- 训练时这几个 token 的样本分别分散
- 真实语义联系被分开了
这不利于模型从稀疏数据中学习有效语义。(Course Hero)
5.2 Tokenizer 忽略 语音/形态规则
现有很多 tokenizer 基于统计频率合并 subwords:
- 它们可能会把部分 allomorphs 列为不同 token
- 反而可能错过了蕴含在规则中的含义
- 例如把 hop , hopp 、hopped 分开看待,而不是识别它们背后是一个 shared morpheme
理想情况下,如果 tokenizer 也能把 allomorphy 的信息考虑进去:
- 同一个 morpheme 的不同 allomorphs 应该 share 一个 representation
- 能减少冗余token
- 强化模型泛化能力
这对低资源或形态复杂语言特别重要。(Course Hero)
6. 小结
| 术语 | 简单意思 |
|---|---|
| Morpheme(词素) | 意义最小单位 |
| Allomorph(变体形) | 同一个 morpheme 的不同形式 |
| Phonologically conditioned allomorphy | 形式随语音环境变 |
| Suppletive allomorphy | 完全不同形式的替换 |
| Subword tokenizer | 常把 allomorphs 当作不同 token |
最精华的一句话:Allomorphy 是指同一个 morpheme 在不同上下文中出现不同形式(signifier), 但意义不变的现象 。(dmort27.github.io)