现代汉语
对应:培养方案 专业基础课 · 学期 2 · 2 学分 · 32 学时(全部课堂)
这份笔记的核心是三个能上手的操作:用代码分析声调、做中介语偏误分析、
判断"的/地/得"。先读「导论」,把"这门课到底要干什么"搞清楚,再往下走。
每一节都按「背景 → 为什么重要 → 怎么做 → 为什么能得这结论 → 边界与批评 → 跟你有什么关系」写。
末尾有练习答案和出处索引。
1 导论:这门课在研究什么(先读这个)
1.1 先说清楚它不是什么
你打开这门课之前,脑子里大概已经装了三种印象。这三种都不对,而且不对的方式各不相同。
| 常见误解 | 它其实是什么 |
|---|---|
| 现代汉语就是现在人说的汉语 | 它是个有严格定义的专业术语,特指以北京语音为标准音、以北方话为基础方言、以典范的现代白话文著作为语法规范的那套系统,即普通话。粤语是"现代"的汉语,但不是这门课的研究对象。 |
| 我母语就是汉语,不用学 | 你会用,但说不清。你每天把两个三声连读成"二声+三声"("你好"读 ní hǎo),却从没意识到自己做了这个操作,更说不出规则。这门课要的是把直觉变成能写下来、能验证的描述。 |
| 就是背声母韵母表 | 背表是最不重要的一环(总数就那么几个,见 §2)。真正要学的是分析能力:给定一段真实语料,你能不能判断哪里不规范、为什么、属于哪一类。 |
为什么必须先破这三个误解?因为它们会直接决定你用什么样的姿势读后面的内容。
如果你以为这门课是"常识课",那你看到 §3 里那段提取基频的代码就会觉得莫名其妙,"学汉语为什么要写程序?"
一旦你接受"这门课是把母语直觉变成可检验的描述",那段代码就是它的核心方法。
你嘴上说"三声先降后升",凭什么让别人信?你得把声音录下来、算出 F0 曲线、让数据说话。
同理,如果你以为"我是母语者所以我都懂",那你读到 §4 的变调规则时就会划过去,而那些规则恰恰是外国人学汉语时最崩溃、也最需要你说得清的地方。
对你的母语,从"使用者"变成"观察者"。
使用者只管用,观察者要问:这里的规律是什么?边界在哪?能不能被反例推翻?
1.2 这门课在整个专业里的位置
你的培养方案里,语言类课程是有层次的。看这张图:
┌─────────────────────────────────────────────────────────┐
│ 应用层:第二语言习得概论 / 语言教学测评与应用 / 语言教育学 │ ← 教外国人
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 认知层:心理语言学 / 语言认知神经科学 / 认知语言学概论 │ ← 语言与脑
└─────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ 现代汉语 (你现在这门) │
│ 普通话这个"具体系统"长什么样:语音 / 词汇 / 语法 / 书写 │
└───────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ 语言学概论 (理论底座) │
│ 音位、IPA、句法树 —— "语言"作为一般对象怎么研究 │
└───────────────────────────────────────────────────────────────────┘
读这张图要从下往上看,因为每一层都假设你已经会了下面那层:
- 语言学概论 给的是所有语言共有的理论工具(音位、IPA、句法树),但例子可能来自英语。
- 现代汉语就是把这个工具箱用在普通话上:理论说"能区别意义的音叫音位",
那么普通话里声母 21 个是怎么数出来的?(→ §2)这就是这门课的活。
没有下层,"21"是天上掉下来的数字;有了它,你知道这是用"最小对立对"一个个检验出来的。 - 往上每一门都要用这门课的产出:第二语言习得概论 里"母语迁移"迁的就是这里的规则(§4、§5、§7 是它的原料);
语言教学测评与应用 出 HSK 题要先描述清规则;
语言认知神经科学 的实验材料(声调、把字句、量词)也全部来自这里。
这门课的位置是"枢纽":往下接理论,往上供材料。
你后面做的任何汉语相关的实验或教学,绕不开这一层的描述。
这就是为什么它是专业基础课,而不是选修。
1.3 这门课真正要教你的能力
这门课的核心能力可以概括成一句话:
把"我会"变成"我能说清楚,并且能证明"。
具体展开成四个能上手的动作:
| 能力 | 长什么样 | 在哪一节 |
|---|---|---|
| 精确描述母语直觉 | 你能说出"你好"为什么读 ní hǎo,规则是什么、什么时候例外 | §4 变调 |
| 用数据看语音 | 你能录一段音、跑出 F0 曲线,用数据支持"三声先降后升" | §3 操作一 |
| 做偏误分析 | 给你一句外国人的病句,你能分类归因、反推他的规则系统 | §5 操作二 |
| 判断书面规范 | "的/地/得"不用背口诀,你能从结构上判断该用哪个 | §6 操作三 |
注意这四个动作都是"操作",不是"知识点"。
这是这门课和高中语文最大的区别:高中问你"是什么",这门课问你"你怎么知道,你去做一遍"。
你会不止一次冒出"这我早就会了"的念头(尤其 §4)。
把它当信号,别当结论:会做,和能说出规则、能找出边界是两件事。
能说清楚的人才能去教、去测、去做实验,这就是你这个专业要干的事。
1.4 这份笔记的组织逻辑
- §1–§2 是地基:普通话的定义(三个"以……为"要背准)+ 声韵调的数字,每个都要知道怎么来的。
- §3–§7 是三个操作 + 两个理论点。三个操作(§3 声调、§5 偏误、§6 的/地/得)手把手讲步骤,
因为初学者最怕这种"听着懂、上手就卡住"的内容。 - §4 变调是"母语者会做但说不清"的典型。我会讲出每条规则的所以然,
你会明白为什么别人听不懂你为什么这么读。 - §8 练习答案、§9 出处索引照旧保留。
§3 的代码不要只读,照着跑一遍(步骤都写好了)。
看懂代码和跑过代码,是两种理解深度。
2 普通话的定义
普通话 = 以北京语音为标准音,以北方话为基础方言,以典范的现代白话文著作为语法规范。
这三个"以……为"必须背准,因为它们规定了三件不同的事,而且是严格的:
| 那个"以……为" | 管哪一块 | 为什么这么规定 |
|---|---|---|
| 北京语音为标准音 | 语音 | 需要统一的读音。注意是"北京语音"不是"北京话",土音、过量儿化不算标准。 |
| 北方话为基础方言 | 词汇 | 词汇的来源池。"基础"≠"全部",普通话也吸收了吴语、粤语、外来语的词。 |
| 典范的现代白话文著作为语法规范 | 语法 | 语法规范不来自口语,来自书面语。所以"书上这么写"能当依据,"我平时这么说"不能。 |
为什么要背这么死?因为"现代汉语"不是"现在人说的汉语",它是个有严格定义的专业术语。
举个例子:粤语是"现代的"汉语,但不是这门课的对象(语音不是北京语音、词汇不是北方话基础)。
术语有边界,才有研究的可能。
一个常考的细节:三个"以……为"不能互换顺序,也不能改字。
特别是第三个,是"典范的现代白话文著作",不是"口语"。
考试写"以北京话为标准音"就算错,因为"北京语音"和"北京话"差着一个"土音算不算"的问题。
3 声韵调:先记住两组容易混的数字
(详细表格和 IPA 见 语言学概论 §3,这里只讲最容易错的地方。)
这一节的数字必须精确,因为它们是这门课的"身份证"。先看表。
| 说法 | 数字 | 说明 |
|---|---|---|
| 普通话的辅音 | 22 个 | — |
| 普通话的声母 | 21 个 | ng [ŋ] 只能作韵尾,不能作声母 |
| 《汉语拼音方案》韵母表 | 35 个 | 省略了 ê、-i(前)、-i(后)、er |
| 实际的韵母 | 39 个 | 黄伯荣、廖序东《现代汉语》的标准说法 |
为什么辅音 22 个,声母却是 21 个?这是最经典的一个坑。
原因是"辅音"和"声母"是两个不同层面的概念:
- 辅音是从发音方式上定义的:气流在口腔/鼻腔受到阻碍发出的音。
- 声母是从音节结构上定义的:一个音节里开头那个辅音。
- ng [ŋ] 这个辅音确实存在("ang""ing"里的尾音就是它),
但它永远出现在音节末尾(韵尾),不出现在开头,所以它做不了声母。
22 − 1 = 21 的来源就在这里。
记住这个减法,比死记两个数字靠谱,它顺带告诉你"为什么",也就顺带防住了考题的变体。
为什么韵母表 35 个,实际韵母 39 个?因为《汉语拼音方案》为了书写简洁,省掉了四个:
ê、-i(前)、-i(后)、er 这四个在拼音方案里没有独立的字母形式或没有单独列出,
但从音系角度看它们是独立存在的韵母。所以"35"是书写方案的数字,"39"是实际音系的数字。
韵母 39 个的构成(和 = 10 + 13 + 16):
| 类别 | 数量 | 内容 |
|---|---|---|
| 单韵母 | 10 | a o e ê i u ü er -i(前) -i(后) |
| 复韵母 | 13 | ai ei ao ou ia ie iao iou ua uo uai uei üe |
| 鼻韵母 | 16 | an en ang eng ong ian in iang ing iong uan uen uang ueng üan ün |
"单韵母 10 个"里有个容易漏的:er。
它写起来像两个字母,但发音时舌位不动,所以算单韵母。
-i(前)和 -i(后)也常被漏,它们不是同一个音:"zi ci si"里的 i 和"zhi chi shi"里的 i 音值完全不同,
所以才要分成两个韵母记。
声调:4 个 + 轻声。调值:一声 55 / 二声 35 / 三声 214 / 四声 51。
这五个数字怎么读?它们是五度标记法:把音高分成 1–5 五度,
两个数字表示"起点高度 + 终点高度"(三声是三个数字,"起-折-终")。
§3 会用代码把这张表"画"出来。调值不是定义,是测量结果。
你先记住形状,等跑完代码,你会对"214"这三个数字有完全不同的感觉。
4 ⭐ 操作一:用代码分析声调
问题:"三声先降后升"这句话,能不能用数据看见?
能。而且不需要装 Praat 或 librosa,只用 Python 标准库 wave + numpy 就够了。
4.1 为什么值得动手做这一步
这是这门课第一个"从使用者变成观察者"的时刻。"先降后升"这四个字,
你从来没有验证过,也没见过它长什么样。做完你会得到两样东西:
一个形状(F0 曲线先降后升,和"214"对上号),
和一个方法论:用可测量的物理量(Hz)去对应不可直接测量的感知(声调),
这个思路你后面做任何语音实验都要用。
4.2 手把手:从零到跑出结果(四步)
第 0 步,确认环境。终端里跑下面这行,能打印出版本号就行
(报 ModuleNotFoundError 就先 ~/miniconda3/bin/python -m pip install numpy):
~/miniconda3/bin/python -c "import numpy; print(numpy.__version__)"
第 1 步,把下面的代码存成 tone.py(放任意目录都行)。
第 2 步,在终端进到那个目录,跑 ~/miniconda3/bin/python tone.py。
第 3 步,看输出。每行是一个时间点、一个频率、一根条形图,那就是三声的基频曲线。
第 4 步(最关键),把合成音换成你自己录的音(见练习 1),再跑一遍。
4.3 代码(已实测可跑)
"""基频(F0)提取:用自相关法估计声调曲线。只用标准库 + numpy。"""
import wave
import numpy as np
def read_wav(path):
"""读 WAV,返回 (采样率, 单声道浮点数组)。"""
with wave.open(str(path), "rb") as w:
sr, n, ch, width = w.getframerate(), w.getnframes(), w.getnchannels(), w.getsampwidth()
raw = w.readframes(n)
dtype = {1: np.int8, 2: np.int16, 4: np.int32}[width]
data = np.frombuffer(raw, dtype=dtype).astype(float)
if ch > 1:
data = data.reshape(-1, ch).mean(axis=1) # 混成单声道
return sr, data / (np.max(np.abs(data)) + 1e-9)
def f0_contour(signal, sr, frame_ms=40, hop_ms=10, fmin=70, fmax=400, thresh=0.02):
"""逐帧估基频(自相关法)。静音帧返回 nan。"""
win, hop = int(sr * frame_ms / 1000), int(sr * hop_ms / 1000)
ts, f0s = [], []
for start in range(0, len(signal) - win, hop):
seg = signal[start:start + win]
if np.sqrt(np.mean(seg ** 2)) < thresh: # 能量太低 = 静音
ts.append(start / sr); f0s.append(np.nan); continue
seg = seg - seg.mean()
ac = np.correlate(seg, seg, mode="full")[len(seg) - 1:]
lo, hi = int(sr / fmax), int(sr / fmin)
if hi >= len(ac):
break
peak = lo + int(np.argmax(ac[lo:hi]))
ts.append(start / sr)
f0s.append(sr / peak if peak > 0 else np.nan)
return np.array(ts), np.array(f0s)
def write_wav(path, signal, sr):
"""写 16 位单声道 WAV。"""
x = np.clip(signal, -1, 1)
with wave.open(str(path), "wb") as w:
w.setnchannels(1); w.setsampwidth(2); w.setframerate(sr)
w.writeframes((x * 32767).astype(np.int16).tobytes())
# ---- 演示:合成一个"三声"(先降后升)并画出它的 F0 ----
sr, dur = 16000, 0.5
n = int(sr * dur)
t = np.linspace(0, dur, n)
# 三声的 F0 曲线:前半段下降,后半段上升
f0_curve = np.where(t < dur / 2,
130 - 60 * (t / (dur / 2)),
100 + 160 * ((t - dur / 2) / (dur / 2)))
phase = 2 * np.pi * np.cumsum(f0_curve) / sr
# 加谐波,让它更像人声
sig = sum(np.sin(k * phase) / k for k in range(1, 6))
sig = sig / np.max(np.abs(sig))
write_wav("tone3.wav", sig, sr)
sr2, data = read_wav("tone3.wav")
ts, f0 = f0_contour(data, sr2)
print("三声的基频曲线(bar 越长 = 音越高):")
for i in range(0, len(f0), 5):
if not np.isnan(f0[i]):
print(f" {ts[i]:.2f}s {f0[i]:6.1f} Hz {'█' * int((f0[i] - 90) / 4)}")
4.4 实跑输出
三声的基频曲线(bar 越长 = 音越高):
0.00s 125.0 Hz ████████
0.05s 113.5 Hz █████
0.10s 102.6 Hz ███
0.15s 89.9 Hz
0.20s 76.9 Hz
0.25s 112.7 Hz █████
0.30s 144.1 Hz █████████████
0.35s 177.8 Hz █████████████████████
0.40s 210.5 Hz ██████████████████████████████
0.45s 242.4 Hz ██████████████████████████████████████
先降到最低(0.20s 处),再快速上升,这就是三声的"降-升"形状。
0.00s 是 125.0 Hz,一路降到 0.20s 的 76.9 Hz(降),然后一路升到 0.45s 的 242.4 Hz(升)。
"214"这三个数字要表达的,就是这条曲线。
左半段的下降 = "2→1",右半段的上升 = "1→4"。
从此"三声"对你不再是一个记忆项,而是一条你见过的曲线。
4.5 这段代码到底在干什么(拆开讲,别怕)
核心只有一件事:找出每一小段声音的"周期",取倒数就是频率。
分三步:
- 切片(
f0_contour里的循环):把整段声音每 10 毫秒取一小块(40 毫秒的窗口)。
声调在几百毫秒内变化,切成小块才能看出"变化"。 - 判静音:算这一小块的能量(
np.sqrt(np.mean(seg ** 2))),
能量太低就跳过(标记成nan)。不然静音段的杂音会被当成超低音,把曲线搞乱。 - 自相关找周期:
np.correlate(seg, seg)是把信号和自己做相关。
一个周期性的信号,和它自己错开"一个周期"后最像,
所以在自相关曲线上找第一个峰值,那个位置就是周期长度(用采样点表示),
sr / peak就把它换算成了频率(Hz)。
"自相关"这个名字别被吓到,它回答的是:"这段声音,往后挪多少,能和它自己最像?"
最像的那个挪动量,就是它的周期。周期越短,频率越高。
4.6 想自己合成另外三个声调?
代码里合成三声用的是 np.where 这个分段函数(前半段线性降、后半段线性升)。
照着改就能造出另外三个:一声用常数(全程不变)、
二声用 130 + 100 * (t/dur)(一直升)、四声用 230 - 120 * (t/dur)(一直降)。
四个都跑一遍对照,你就把"调值"这张表从符号变成了形状。
4.7 ⚠️ 这个方法的局限(很重要)
| 问题 | 说明 |
|---|---|
| 绝对值不准 | 输入的最大 F0 是 180 Hz,输出到了 242 Hz,自相关法容易出"倍频/半频"错误 |
| 形状可信,数值要谨慎 | 这个简易方法能看趋势,不能当精密测量 |
为什么会这样?因为自相关曲线可能有多个峰值;代码只取了"允许范围内第一个峰",
一旦真正的周期峰被倍频峰盖过,算出的频率就会翻倍或减半。
"形状可信、数值要谨慎"就是这个意思:你看到"125 降到 77 再升到 242",
降-升的趋势是真的;但不能拿 242 去说"三声最高到 242 Hz",那可能是误差产物。真实的声学分析用什么:
Praat(语言学界的标准工具,免费)或parselmouth(Praat 的 Python 接口)。
它们用更稳的算法,能给出可靠的 F0 和共振峰。
本机没装这些 → 「待核」。要用的话:
~/miniconda3/bin/python -m pip install praat-parselmouth
装好之后,把上面 f0_contour 那一行换成 parselmouth 的调用,
同一个音、同一个问题,你会得到更平滑也更准确的曲线。
亲手对比这两次结果,你就理解了"算法选择会改变结论"这件事。
4.8 练习 1
录你自己的"妈麻马骂"四个字(用手机录音,导出成 WAV),
用上面的代码跑一遍,看四条曲线的形状:
- 一声:应该是平的
- 二声:应该是上升的
- 三声:先降后升
- 四声:下降的
画出来对照,这就是"调值 55 / 35 / 214 / 51"的声学含义。
录不出合适的 WAV?两个常见坑:① 手机默认录 m4a/mp3,
而代码里的wave模块只能读 WAV,需要先转换;② 采样率建议转成 16kHz,和演示参数接近更好对比。
实在懒得录,也可以自己改公式合成四个声调(见上表),同样能达到对照目的。
5 ⭐ 普通话的变调(母语者会做,但说不清)
这一节要解决一个你从没意识到的矛盾:
你以为你读的是"字本来的调",其实你一直在偷偷改调。
最直接的证据:你把"你好"读一遍。你嘴里的"你",是几声?
你大概会觉得是"三声"。但你的声带并不这么干。
你说出来的其实是二声(ní)。
这就是"变调":字有它单独的调(本调),但在语流里,相邻音节会互相影响,实际读音变了。
关键点:变调不改变意义。"你好"的"你"读成二声,你不会理解成别的词。
它只是发音上的调整。所以别人(尤其是外国人)听不懂你为什么这么读,原因是你执行了一条从没被告知过的规则,
这跟读错无关。
这一节就是把那些"潜规则"一条条摊开。
5.1 三声变调
规则:两个三声相连,前一个变成二声。
| 词 | 单字调 | 实际读音 |
|---|---|---|
| 你好 | nǐ + hǎo (214 + 214) | ní hǎo(35 + 214) |
| 水果 | shuǐ + guǒ (214 + 214) | shuí guǒ(35 + 214) |
| 了解 | liǎo + jiě | liáo jiě |
为什么会有这条规则?因为三声(214)是四个声调里最"费劲"的:
它要走"降到底再升上来"一整个大起伏,发一次要花的时间最长。
如果连着来两个,声带根本来不及做完两次完整的起伏,
于是母语者会自动把前一个的三声"简化"成只升不降(也就是二声 35)。
这条规则你从来没学过,但你三岁就会了。这就是"会做但说不清"。
三个三声怎么办?答案是按语义分组变,并非"前两个都变":
我很好 → 我 | 很好 → wǒ hěn hǎo → wó hén hǎo
(先在"很好"内部变,再考虑"我")
这个例子是说:母语者先按意思切成"我"和"很好"两组,
在"很好"内部应用规则(hěn hǎo → hén hǎo),
再看剩下的"我"加"很好"首字已变二声,就不触发规则了。
注意:这里"我"读的还是原来的三声。
所以"三个三声怎么变"没有简单的全局规则,它取决于你怎么断句、怎么划语义组。
这也正是外国人难学的地方:规则不复杂,但"什么时候归为一组"是活的。
5.2 "一"和"不"的变调
规则:这两个字的变调取决于后面那个字的声调。
| 情况 | 变化 | 例子 |
|---|---|---|
| "一"在四声前 | 变二声 | 一个 yí ge |
| "一"在一/二/三声前 | 变四声 | 一天 yì tiān |
| "不"在四声前 | 变二声 | 不去 bú qù |
| "不"在其他声调前 | 保持四声 | 不听 bù tīng |
这张表怎么记最快?抓住一句话:"一"和"不"都在四声前变二声。
"一"特殊的地方是它在非四声前也要变(变四声);"不"在非四声前则保持不变。
所以只需要单独记"一在非四声前变四声"这一条,其余的都统一为"遇四声变二声"。
为什么会有这条规则?一种解释是"异化"作用:
后面是四声(51,全降),前面再读降调会很难连,
于是"一""不"都让位给升调(35),形成"升-降"对比,听起来更清楚。
5.3 儿化
花 huā → 花儿 huār。
注意:不只是加个 "r",有些韵母会改变(如 "a" 在儿化后带卷舌色彩)。
"不只是加个 r"是什么意思?看几个例子:
| 原韵母 | 儿化后 | 变化 |
|---|---|---|
| a(花 huā) | ar(huār) | 基本是加卷舌色彩 |
| ai(牌 pái) | ar(pár) | 韵尾 i 脱落,只剩 a + 卷舌 |
| in(信 xìn) | ier(xièr) | 韵尾 n 脱落,主元音变 |
所以儿化的本质是"整个韵母向卷舌靠拢",不是"末尾加一个 r"。
这就是"花儿"和"花"听感差别大的原因:不只是多了个音,是韵母本身重塑了。
5.4 轻声
| 词 | 读法 | 意义 |
|---|---|---|
| 东西 | dōngxi(轻声) | 物品 |
| 东西 | dōngxī | 东方和西方 |
→ 轻声能区别意义。
轻声是什么?它是"失去原有调值、读得又短又轻"的一种状态,并非第五个声调。
关键点在于:轻声的调值不固定,它取决于前一个字的声调,
所以它算不上一个独立的调类,只能算一种"弱化"现象。
它为什么重要?因为它和变调不同:变调不改变意义,轻声可以改变意义。
"东西"这一对是最好的例子:
dōngxi(轻)= 物品;dōngxī(全)= 东方和西方。
同一个字、同一声母韵母,只因为后字读不读轻声,意思就分岔了。
这就是"轻声是词汇化的":有些词的轻声已经固定下来,必须记住,不能靠规则推。把这一节和 §3 连起来看:
§3 你用代码看到"三声是一条降升曲线";
§4 告诉你这条曲线在真实语流里经常根本走不完(被变调砍掉一半)。
单字调是"理想形式",语流调是"实际形式",这中间的差距,就是这一节的全部内容。
6 ⭐ 操作二:中介语偏误分析
这是这门课最能"做事"的部分,也是 第二语言习得概论 的直接应用。
6.1 背景:为什么叫"中介语"而不是"错"
先破一个致命的心态问题:看到外国人的病句,第一反应不能是"他错了"。
因为"错"是拿汉语标准去衡量的结果,它只告诉你"不一样",不告诉你"为什么不一样"。
"中介语(interlanguage)"这个概念就是来解决这个问题的。
学习者说的语言是一个自成体系、有自己规则的系统,并非"错误的汉语",
它介于母语和汉语之间,并且不断变化。
"他的句子不符合汉语" ≠ "他随便乱说"。
每一句"病句"背后都有一条他脑子里正在运行的规则,你的任务是把那条规则找出来。
6.2 手把手:分析流程(四步)
这四步是固定动作,拿到任何一句病句都这么走:
① 收集语料 学汉语的外国人写的/说的句子
② 找出"错" 但不要叫它"错"——叫它"中介语特征"
③ 分类归因 是母语迁移?规则泛化?还是简化/回避?
④ 反推规则 他的中介语系统里,规则是什么样的
其中第 ② 步最容易被忽略,也最重要:
不要写"他漏了量词",要写"他在这个位置没有用量词"。
因为"漏"预设了"本该有",而你要问的恰恰是"在他的系统里这里本该怎么处理"。
措辞会决定你会不会提前锁定结论。
第 ③ 步的分类归因是全流程的核心,对着这四类去套:
| 类型 | 是什么 | 典型表现 |
|---|---|---|
| 母语迁移(负迁移) | 把母语的规则搬过来了 | 用母语的时态/语序套汉语 |
| 规则泛化(过度概括) | 把学过的汉语规则用过了头 | 学了"把"字句就到处用 |
| 简化 / 回避 | 不会的地方绕着走 | 不用的、不用量词 |
| 发展性偏误 | 学习阶段的普遍规律,和母语无关 | "了"的误用 |
第 ④ 步:反推规则。
这一步的目的是写出"如果是他,他会怎么想",给句子打分不是重点。
格式建议:"他的规则可能是:_。证据是:_。"
这一步写不出来的话,前面的分类多半是猜的。
一个必须守住的底线:
下面这些例句是文献中常被引用的典型类型,不是我从语料库里直接调出的具体条目。
做真正的偏误分析时,要用真实语料并注明来源 → 「待核」。
为什么强调这一点?因为编造的例句往往恰好符合你想证明的分类,
那就变成了"先有结论再找证据",等于没做分析。
真实语料会给你意外,而意外才是信息。
6.3 演示:分析五类典型偏误
数据来源:留学生汉语语料(北语的 HSK 动态作文语料库是标准来源)。
① 母语迁移(负迁移)
* 我昨天不去学校了。(想说"我昨天没去学校")
分析:母语(如英语)用时态标记过去,学习者可能找不到汉语的对应形式,用了否定+完成。
反推规则:他的系统里"否定过去"的规则和汉语的"没"不同。
② 规则泛化(过度概括)
* 这个把字我不认识。
分析:学过"把字句"之后过度使用。
反推规则:他的规则可能是"强调受事的动作都用把字句",但没学到"把字句要求动词有处置性"。
③ 简化 / 回避
* 他是很好的人。(应说"他是个很好的人",量词被省略)
分析:回避量词,因为量词系统复杂(个/只/条/张……)。
反推规则:他可能用"省略"来规避不会的量词。
④ 语序偏误
* 我吃饭在食堂。
分析:这是状语位置问题。汉语是"在食堂吃饭",学习者按母语顺序放到了后面。
⑤ "了"的偏误(最经典)
* 我昨天买了书的时候……("了"用在了不该用的地方)
分析:"了"是汉语教学的头号难点(它既是完成体标记,又是句末语气词)。
学习者往往该用不用,不该用乱用。
反推规则:他的"了"的规则和汉语实际的"了"不是同一套。
补充:"了"为什么这么难?因为它一个字形承担了两个功能:
动词后的动态助词(我吃了饭,表完成)和句末的语气词(他走了,表新情况),
而且两者可以同现("我吃了饭了")。
对外国人来说这是"一个形式对两个功能",学到哪个就很容易推到另一个上。
所以这类偏误属于"规则装错了格子",不是"没记住"。
6.4 练习 2
下面这个偏误属于哪一类?反推学习者的规则是什么?
* 我被这本书读完了。(想说"这本书被我读完了"或"我读完了这本书")
(答案在最后。)
7 ⭐ 操作三:"的 / 地 / 得":不只是口诀
口诀:的定、地状、得补。
| 字 | 功能 | 例子 |
|---|---|---|
| 的 | 定语标记 | 美丽的花 |
| 地 | 状语标记 | 慢慢地走 |
| 得 | 补语标记 | 跑得很快 |
7.1 为什么汉语要用三个不同的字
因为它们标记的是三种不同的句法关系:
定语 → 修饰名词 → 的
状语 → 修饰动词 → 地
补语 → 补充动词 → 得
三个字在口语里同音(都是 de),只有书面语才区分。
所以母语者写错"的/地/得",本质是口语的同音在书写时没有对应的区分。
它和"记不住口诀"无关,根源是"书面语比口语多了一层信息"。
这解释了一个困惑:为什么你说话从不出错,写字却老错?
因为口语里这三个字不区分(都读 de),你的语感里根本没有这条线索,
书写却要求你补上一个口语中不存在的区别。这跟记忆力无关,是语感帮不上忙。
7.2 手把手:三步判断法(比背口诀可靠)
口诀的毛病是它只给了名词("定语""状语""补语"),没给动作。下面这套是"从句子结构反推"的步骤,做题时照着走:
第 1 步,找到 de 后面那个词,看它是什么词性。
de 后面是 名词 → 用 的 (美丽的花:花是名词)
de 后面是 动词 → 进入第 2 步
de 前面是 动词 → 进入第 3 步
第 2 步,de 后面是动词,问"de 前面那个成分在干什么?"
- 修饰这个动词(回答"怎么做的")→ 用 地(慢慢地走)
- 如果 de 前面是形容词 + de + 动词,基本就是"地"
第 3 步,de 前面是动词/形容词,问"de 后面是在补充说明它吗?"
- 补充说明动作的程度/结果/可能(回答"做得多好、做不做得完")→ 用 得(跑得快、做得完)
三个例子照着三步走一遍:de 后是名词"字"(他de字)→ 的;
de 后是动词、de 前在说"怎么写"(他de写)→ 地;
de 前是动词、de 后在补充"写得多好"(写de很漂亮)→ 得。
最快的一个判断窍门:看 de 后面那个词能不能"被修饰"。
能当被修饰对象的是名词 → 的;
de 后面紧跟的是"补充说明前面动作的结果/程度" → 得。
诀窍只能救急,真要稳,还是得回到"先看结构、再选字"这三步。
8 把字句 / 被字句:为什么它们是实验的好材料
这两个句式是二语习得和神经语言学的经典材料,原因是:
很多语言没有和它们完全对应的结构。
| 句式 | 结构 | 其他语言有吗 |
|---|---|---|
| 把字句 | 我把书看了 | 英语没有对应的"把";日语有类似的(を)但不完全相同 |
| 被字句 | 书被我看了 | 英语有被动,但汉语"被"还带不如意的语感("被批评了") |
为什么"没有对应结构"就值得研究?因为它天然构成一个对照实验:
母语里有类似结构的和没有的,学起来难度不同,这就把"语言难度"变成了可测量、可比较的量
(→ 第二语言习得概论 的"标记性")。它们能用来研究:
| 问题 | 怎么用 |
|---|---|
| 母语迁移 | 母语有没有类似结构,影响习得难度 |
| 句法加工 | 把字句的实时加工(眼动/ERP) |
| 句法-语义界面 | "被"的语感色彩是怎么加工的 |
"汉语被字句带不如意语感"这个说法在现代汉语里已有争议
(现在有"被就业""被自愿"这类新用法)→ 「待核」,请查现代汉语语法研究。
"被就业"是"被"字从"不如意"扩展到"非自愿"的证据。一个写进教材的概括,可能正在被活的语言推翻。
9 练习答案
9.1 练习 1
没有标准答案,你自己录自己跑。
参考:一声的 F0 曲线应该接近水平;四声应该明显下降;三声应该先降后升。
曲线"不太对"时先查三件事:① 录音削波?② 环境噪音?③ 你是不是真按单字调读的。
很多人单独念三声会读成"半三声"(只降不升),这本身就是 §4 讲的现象。
9.2 练习 2
偏误类型:两个叠加。
① "被"字句使用错误(把施受关系搞反了)
② 可能还叠加回避(回避了"把"字句)
反推规则:他的"被"字句规则可能是"被 + 名词 + 动词"的语序模板,
但没有掌握"被"要求受事在前、施事在后的语义限制。
他可能在套用一个形式模板,而没有理解"被"标记的是受事。
这个例子说明偏误分析不能只看形式:他的语序完全符合"NP 被 NP V 了"这个模板,
但语义角色全错(受事跑到了施事位置)。只统计"句式用对了没有"会漏掉这一类错误。
10 出处索引
| 出处 | 用在哪 |
|---|---|
| 黄伯荣、廖序东《现代汉语》(高等教育出版社,增订版) (增订六版,高等教育出版社,2017) | §2 声母 21 / 韵母 39 / 单韵母 10 / 复韵母 13 / 鼻韵母 16 |
| 《汉语拼音方案》(1958) (1957-11-01 国务院通过,1958-02-11 一届全国人大五次会议批准) | §2 "韵母表 35 个"的来源 |
| HSK 动态作文语料库(北京语言大学) · hsk.blcu.edu.cn | §5 留学汉语语料的标准来源 |
| BCC 语料库(北京语言大学) · bcc.blcu.edu.cn | §5 大规模汉语语料 |
| CCL 语料库(北京大学) · ccl.pku.edu.cn | §5 另一个大型语料库 |
| Praat(Boersma & Weenink) · fon.hum.uva.nl/praat | §3 声学分析的标准工具(免费) |
| 宋一平等 / 刘月华等 关于"了"的研究 → 刘月华、潘文娱、故韡《实用现代汉语语法》(增订本),商务印书馆,2001 | §5 "了"的偏误(具体文献待查) |
带 [DOI] 的条目可直接点开核对原文;书/古籍/语料库/官方文件没有 DOI,按题名 + 出版社(或机构)查找。
本页数字的来源说明:声母 21 / 辅音 22 / 韵母 39 / 单韵母 10 / 复韵母 13 / 鼻韵母 16 / 拼音方案 35 都查证过黄伯荣、廖序东《现代汉语》体系的标准说法。
§3 的代码是我自己写的并实跑过的(输出就贴在讲义里)。
标「待核」的:
- 各韵母的实际 IPA 音值(各教材有差异)
- §5 的具体偏误例句(是文献中常引的类型,我没从语料库直接调取)
- "被字句的不如意语感"这个说法在现代汉语里已有争议
关于「待核」这一栏,要说清楚它的性质:
这三条并非"文献里查不到",它们属于补充说明,不是可引用的文献结论。
比如 §5 的偏误例句,它们是教学文献里反复被举的例子,
但我没有从语料库里逐条核对过它们的原始出处和出现频率,
所以不能当"数据"引用。
把"我知道"和"我查证过"分开标注,是这份笔记的一个基本规矩。