▤书架 ← 返回索引
▶目录

现代汉语

对应:培养方案 专业基础课 · 学期 2 · 2 学分 · 32 学时(全部课堂)

这份笔记的核心是三个能上手的操作:用代码分析声调、做中介语偏误分析、
判断"的/地/得"。先读「导论」,把"这门课到底要干什么"搞清楚,再往下走。
每一节都按「背景 → 为什么重要 → 怎么做 → 为什么能得这结论 → 边界与批评 → 跟你有什么关系」写。
末尾有练习答案和出处索引。


1 导论:这门课在研究什么(先读这个)

1.1 先说清楚它不是什么

你打开这门课之前,脑子里大概已经装了三种印象。这三种都不对,而且不对的方式各不相同。

常见误解 它其实是什么
现代汉语就是现在人说的汉语 它是个有严格定义的专业术语,特指以北京语音为标准音、以北方话为基础方言、以典范的现代白话文著作为语法规范的那套系统,即普通话。粤语是"现代"的汉语,但不是这门课的研究对象。
我母语就是汉语,不用学 你会用,但说不清。你每天把两个三声连读成"二声+三声"("你好"读 ní hǎo),却从没意识到自己做了这个操作,更说不出规则。这门课要的是把直觉变成能写下来、能验证的描述。
就是背声母韵母表 背表是最不重要的一环(总数就那么几个,见 §2)。真正要学的是分析能力:给定一段真实语料,你能不能判断哪里不规范、为什么、属于哪一类。

为什么必须先破这三个误解?因为它们会直接决定你用什么样的姿势读后面的内容。

如果你以为这门课是"常识课",那你看到 §3 里那段提取基频的代码就会觉得莫名其妙,"学汉语为什么要写程序?"
一旦你接受"这门课是把母语直觉变成可检验的描述",那段代码就是它的核心方法。
你嘴上说"三声先降后升",凭什么让别人信?你得把声音录下来、算出 F0 曲线、让数据说话。

同理,如果你以为"我是母语者所以我都懂",那你读到 §4 的变调规则时就会划过去,而那些规则恰恰是外国人学汉语时最崩溃、也最需要你说得清的地方。

对你的母语,从"使用者"变成"观察者"。
使用者只管用,观察者要问:这里的规律是什么?边界在哪?能不能被反例推翻?

1.2 这门课在整个专业里的位置

你的培养方案里,语言类课程是有层次的。看这张图:

        ┌─────────────────────────────────────────────────────────┐
        │  应用层:第二语言习得概论 / 语言教学测评与应用 / 语言教育学   │  ← 教外国人
        └─────────────────────────────────────────────────────────┘
        ┌─────────────────────────────────────────────────────────┐
        │  认知层:心理语言学     / 语言认知神经科学 / 认知语言学概论   │  ← 语言与脑
        └─────────────────────────────────────────────────────────┘
   ┌───────────────────────────────────────────────────────────────────┐
   │   现代汉语 (你现在这门)                                           │
   │   普通话这个"具体系统"长什么样:语音 / 词汇 / 语法 / 书写            │
   └───────────────────────────────────────────────────────────────────┘
   ┌───────────────────────────────────────────────────────────────────┐
   │   语言学概论 (理论底座)                                           │
   │   音位、IPA、句法树 —— "语言"作为一般对象怎么研究                     │
   └───────────────────────────────────────────────────────────────────┘

读这张图要从下往上看,因为每一层都假设你已经会了下面那层:

这门课的位置是"枢纽":往下接理论,往上供材料。
你后面做的任何汉语相关的实验或教学,绕不开这一层的描述。
这就是为什么它是专业基础课,而不是选修。

1.3 这门课真正要教你的能力

这门课的核心能力可以概括成一句话:

把"我会"变成"我能说清楚,并且能证明"。

具体展开成四个能上手的动作:

能力 长什么样 在哪一节
精确描述母语直觉 你能说出"你好"为什么读 ní hǎo,规则是什么、什么时候例外 §4 变调
用数据看语音 你能录一段音、跑出 F0 曲线,用数据支持"三声先降后升" §3 操作一
做偏误分析 给你一句外国人的病句,你能分类归因、反推他的规则系统 §5 操作二
判断书面规范 "的/地/得"不用背口诀,你能从结构上判断该用哪个 §6 操作三

注意这四个动作都是"操作",不是"知识点"。
这是这门课和高中语文最大的区别:高中问你"是什么",这门课问你"你怎么知道,你去做一遍"。

你会不止一次冒出"这我早就会了"的念头(尤其 §4)。
把它当信号,别当结论:会做,和能说出规则、能找出边界是两件事。
能说清楚的人才能去教、去测、去做实验,这就是你这个专业要干的事。

1.4 这份笔记的组织逻辑

§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 这段代码到底在干什么(拆开讲,别怕)

核心只有一件事:找出每一小段声音的"周期",取倒数就是频率。

分三步:

  1. 切片(f0_contour 里的循环):把整段声音每 10 毫秒取一小块(40 毫秒的窗口)。
    声调在几百毫秒内变化,切成小块才能看出"变化"。
  2. 判静音:算这一小块的能量(np.sqrt(np.mean(seg ** 2))),
    能量太低就跳过(标记成 nan)。不然静音段的杂音会被当成超低音,把曲线搞乱。
  3. 自相关找周期: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 前面那个成分在干什么?"

第 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 的偏误例句,它们是教学文献里反复被举的例子,
但我没有从语料库里逐条核对过它们的原始出处和出现频率,
所以不能当"数据"引用。
把"我知道"和"我查证过"分开标注,是这份笔记的一个基本规矩。


11 相关

最后更新:2026-09-26