语言学离不开数学,这不是一句口号,而是现代语言学研究里每天都在发生的事。不管你做语音学、句法学、社会语言学还是心理语言学,只要涉及真实语言数据,就一定会碰到信号处理、统计建模、概率推断这些数学工具。从傅里叶变换到混合效应模型,这条路径几乎是当代语言学研究者绕不开的技术主线。
这篇文章主要面向三类人:正在读语言学专业、却搞不懂为什么课程表里有统计课的学生;已经进入语言学研究、但在处理实验数据时发现 Excel 图表不足以支撑结论的年轻研究者;以及做自然语言处理、语音识别等应用方向、想回头补一补基础理论的开发者。最值得关注的点是:数学在语言学里不是装饰,它直接决定了你能从数据里挖出什么结论,也决定了你的论文结论能不能经得起同行检验。
下面我不按教材顺序讲,而是按照“声音数据怎么变成数字 → 数字怎么变成统计模型 → 模型怎么回答语言问题 → 中间哪些地方最容易翻车”这条实际工作路径来拆。
1. 语言学里的“数学”不是选修课,而是基本功
1.1 语言材料的本质决定了必须用数学
语言学家面对的材料,本质上只有两种:一段声音,或一段文本。声音是连续的物理信号,文本虽然看起来是离散符号,但它在不同人群、不同语境下的分布,又带有明显的随机性。这两种材料都有一个共同点:它们不能靠肉眼直接读出规律。
打开一段录音,你能听到元音高低不同,但你没办法直接确定这个元音的“高”到底是高到哪个频率。翻开 500 个受访者的语料,你能感觉到方言差异,但你说不出这个差异是不是系统性的,还是抽样误差造成的。这些问题的答案,只有靠数学工具才能给出。
传统语言学重视描写,讲究把语言现象记录下来、分类好。但描写只是第一步。当研究进入“为什么会有这种现象”“哪些因素在影响这种现象”“两个方言之间的差异是否显著”这个层面时,就必须引入量化方法。这也是近二三十年国际主流语言学刊物最明显的变化:一篇没有统计分析的实证论文,很难通过审稿。
1.2 语言学里的数学不是一门课,而是一组工具包
很多人听到“语言学+数学”就觉得要学高数、要会证明定理。实际上,语言学研究者真正高频使用的数学工具,范围很明确:
- 信号处理侧的傅里叶变换、短时傅里叶变换、滤波器设计,用于分析语音的频谱特性。
- 统计推断侧的假设检验、方差分析、回归模型,用于判断数据差异是否可信。
- 进阶建模侧的混合效应模型、广义线性模型、广义可加模型,用于处理语言数据的复杂嵌套结构。
- 理论建模侧的信息论、概率论、形式语言与自动机理论,用于解释语言结构本身的性质。
这些工具不是每个语言学分支都要全用。做语音学的必须熟悉傅里叶变换和频谱分析;做实验语言学的必须掌握混合效应模型;做理论句法的可能更常接触形式化和计算复杂度;做社会语言学的一定要用回归和分类模型。但无论哪个分支,你都需要至少具备“理解量化结论”的能力。
1.3 为什么现在才强调数学能力
这不是语言学变难了,而是语言学研究的方式变了。过去的研究,一个学者带着录音机去乡村调查,回来整理音系表,就可以发表。这种田野描写工作到今天仍然重要,但它已经不再是唯一的知识生产方式。现在,一个社会语言学项目可能收集了 200 个受访者、每人 50 个词条的录音,总时长几十个小时;一个心理语言学的反应时实验可能有 80 个被试、每人几千条试次。数据量到了这个规模,人工判读完全不可能,必须写脚本批处理、上统计模型。
另外,语言现象本身是多个因素共同作用的结果。发音时长可能同时受元音类型、语境、说话人语速、前后音段、重复次数等多重因素影响。传统的单因素分析方法没法处理这种多因素交叉作用,必须用回归类的模型框架。这也是混合效应模型能成为当下语言学统计主力的根本原因。
一句话总结这一节:数学不是语言学的对立面,而是语言学家处理真实材料的“外挂器官”。没有它,你连一段三秒的元音录音都讲不清楚。
2. 傅里叶变换:把声音变成可计算的数据
2.1 声音为什么需要“拆解”
声音是什么物理量?从传感器角度看,它是一串随时间变化的空气压力值。录音设备采样之后,这段压力波就变成了一串数字序列。问题是,这串数字序列本身很难直接回答语言学问题。
举个例子:普通话里“衣”和“乌”的差别,主要在于舌位前后和圆唇与否,这些发音动作最终会反映在声道的共振特性上。但如果你把“衣”和“乌”的波形放在一起看,普通人根本看不出明显区别,两条波形看起来都是乱七八糟的曲线。只有把这段时域波形转换到频域,计算出不同频率成分的能量分布,才能看出“衣”的高频共振峰位置和“乌”明显不同。
这就是傅里叶变换的核心作用:它把一个时域信号分解成若干个不同频率的正弦波的叠加。转换之后,你能看到这段声音在哪个频率上能量最强、在哪个频率上衰减得厉害。这个“频率—能量”的谱,才是语音学研究真正要用的数据形态。
2.2 傅里叶变换到底做了什么
用一句话概括:傅里叶变换把信号从时间域变到频率域。
原始录音是横轴为时间、纵轴为振幅的波形。经过傅里叶变换后,你得到横轴为频率、纵轴为能量(或幅度)的频谱图。如果一段声音里有一个 300Hz 的成分很强,频谱图在 300Hz 的位置就会出现一个峰。
但这里有一个关键问题:一段语音并不是稳定不动的。同一个元音在发音过程中,声带的振动频率会变化,共振峰位置也在动态移动。如果对整段录音做一次傅里叶变换,得到的是整段时间内的平均频谱,动态信息全丢了。所以语音分析里实际使用的是短时傅里叶变换(STFT):把声音切成许多个小窗,每个窗内假设信号近似平稳,再对每个窗做傅里叶变换。
窗口长度是一个需要仔细设置的参数。窗口太短,频率分辨率差,频谱上峰不够清晰;窗口太长,时间分辨率差,元音之间的边界就模糊了。语音分析软件默认值通常能应付大多数情况,但做精细测量时,建议根据研究目标手动调整。
2.3 语谱图和共振峰:语音标注的数学依据
经过短时傅里叶变换后,把所有时间窗的频谱按时间顺序拼在一起,就得到语谱图。语谱图的横轴是时间,纵轴是频率,颜色深浅表示能量强弱。你可以直接在语谱图上看清楚一条一条的共振峰横带。这些深色横带就是共振峰,理论上对应声道的共振频率。
语音学里最常用的是前三个共振峰,记作 F1、F2、F3。F1 和舌位高低强烈相关:舌位越高,F1 越低。F2 和舌位前后、圆唇程度相关:舌位越靠前,F2 越高。所以语图中测量 F1、F2,就成了判断元音音色最可靠的操作手段。
实操时要注意几点:
- 采样率要足够。做语音分析至少用 22050Hz 的采样率,常见用 44100Hz。采样率太低,高频共振峰信息会被截断。
- 共振峰追踪并不总是全自动可靠的。噪声大、说话人口音特殊、音段过短,都可能导致追踪错误。我一般会在批量提取之前,先手动抽查几十个样本,对比自动测量值和语谱图实际位置。
- 共振峰数量设置要考虑性别和声道长度。成年男声和女声的声道长度不同,同一套追踪参数不一定都适用。
注意:不要直接相信软件默认提取的共振峰数值。先看语谱图,再听声音文件,确认追踪曲线没有跳到其他频率区域,再进入批量处理。这一步漏掉,后面整个数据集都可能被污染。
2.4 除了共振峰,傅里叶变换还用在哪儿
傅里叶变换在语言学里的应用远不止元音共振峰测量。它还广泛用于:
- 基频提取:声带振动的基本频率,即语音学里常说的 F0。普通话的声调、英语的句调,主要就是靠 F0 曲线来描述的。提取 F0 也依赖频域分析。
- 噪声分析:浊音和清音的区分,本质上是频谱中周期性成分和噪声成分的比例差异。
- 语音合成与识别:无论是传统滤波器组还是现代神经网络特征提取,底层都离不开频域变换。
- 方言口音比较:通过比较不同说话人在相同字音上的频谱形状,可以量化口音差异。
可以说,任何涉及“这段声音听起来像什么”的问题,第一步几乎都是把声音拆到频域里。
3. 语言学实验中的统计模型:为什么不能只看平均数
3.1 语言数据的独特之处
做过语言实验的人都知道,语言数据有几个让人头疼的特点。第一是嵌套结构:一个说话人发了很多个字,一个字可能出现在多个语境里,语境又可能来自不同实验材料。数据点之间不是互相独立的,同一个说话人的发音天然带有个人特质。第二是变量混杂:影响了反应时的因素可能包括词频、词长、是否熟悉、上下文预测性,而且这些因素彼此相关。第三是极端值多:受试按错键、麦克风瞬间爆音、反应时因为走神变成 3 秒,都是常见情况。
这些特点决定了,你不能简单地对两组数据进行 t 检验,然后根据 p 值下结论。t 检验默认数据是独立的,但语言数据里同一个被试的多个数据点根本不独立。直接把所有数据点当作独立样本去算,会严重夸大自由度,得出过于“显著”的结论。
3.2 回归模型是更顺手的框架
现在的语言学研究,基本共识是使用回归模型。回归模型的核心逻辑是:你有一个因变量(比如反应时、元音时长、共振峰频率),还有一组自变量(比如词频、语境类型、被试年龄、方言背景),模型试图用这些自变量来解释因变量的变化。
最简单的线性回归,数学形式其实不难理解:
因变量 = 截距 + 系数1 × 自变量1 + 系数2 × 自变量2 + … + 误差项
每个系数表示:在其他变量不变的情况下,这个自变量每变化一个单位,因变量平均变化多少。这个框架比传统方差分析灵活得多,因为你可以同时放入连续变量和分类变量,也可以加入交互项来考察两个变量是否共同影响结果。
3.3 回归模型输出里该看什么
用 R 或 Python 跑完回归后,你会得到一张系数表。新手容易只盯着星号看显著不显著,但有经验的用户会先看这几个东西:
- 系数方向是否符合理论预测。比如词频越高反应时越短,系数的正负号应该在合理方向。
- 系数大小是否有实际意义。一个变量的系数是 0.001 毫秒,即使显著,也说明影响微弱。
- 模型整体拟合情况,比如 R 方或条件 R 方,用来判断模型解释了多少变异。
- 残差分布是否正常。如果残差呈现明显喇叭状,说明方差齐性假设可能不满足。
- 有没有多重共线性问题。两个高度相关的自变量同时放进模型,系数会被互相拉扯,很难解读。
很多新手把“显著”当作研究的终点,实际上显著只是起点。一个显著的效应,还要继续追问:效应量多大?稳健性如何?换个说话人群体还会不会出现?这些问题靠一次回归是回答不完的。
4. 混合效应模型:处理个体差异的王牌工具
4.1 固定效应和随机效应的区别
混合效应模型,英文是 mixed-effects model,也叫多水平模型或分层模型。名字里的“混合”,指的是模型同时包含固定效应和随机效应。
固定效应是你关心的、希望在研究中重复验证的变量,比如实验条件、词频、声调类型。随机效应是你不想逐一解释、但必须纳入考虑的背景变量,最常见的两个是“被试”和“项目”(刺激材料)。
为什么要设随机效应?道理很直接:不同被试的反应时基线不一样。有人整体快,有人整体慢。如果模型不把被试差异纳入考虑,那么一个恰好来了几位反应极快被试的实验组,就可能被误判为“条件更有效”。反过来,项目的差异也要处理。有些词特别常用,反应天然快;有些词生僻,反应天然慢。这些差异不归因于你的实验操作,但你要把它们“吸收”掉,才能把真正的实验效应从噪声里分离出来。
4.2 一个实际的模型长什么样
以语音研究为例。假设你要研究普通话声调对元音时长的影响,邀请了 30 位说话人,每人读 100 个单字。因变量是元音时长,自变量是声调类型。如果你把所有数据混在一起跑 ANOVA,等于假装每一个字音都来自一个全新的、彼此无关的说话人,这明显不符合数据真实结构。
正确的做法是建立一个混合效应模型,把说话人当作随机截距:
library(lme4) model1 <- lmer( duration ~ tone + (1 | speaker) + (1 | item), data = speech_data )这个公式的意思是:
- duration 是因变量,即元音时长;
- tone 是固定效应,我们想知道不同声调是否带来时长差异;
- (1 | speaker) 表示每个说话人拥有自己独立的基线水平;
- (1 | item) 表示每个字(或词语)也有自己独立的基线。
跑完模型后,你想知道声调是否显著影响时长。可以先做似然比检验,比较包含 tone 和不包含 tone 的两个模型:
model0 <- lmer(duration ~ 1 + (1 | speaker) + (1 | item), data = speech_data) anova(model0, model1, test = "Chisq")如果检验的 p 值小于设定的显著性水平,才能说声调对时长的效应是统计上可靠的。
4.3 随机斜率:需要时再上,但别当摆设
很多刚接触混合效应模型的人,把模型简化成了“(1 | speaker) + (1 | item)”这一个老配方。这在多数场景下够用,但有一个潜在风险:它假设声调对不同说话人的效应大小是完全一样的。
这显然不一定成立。声调可能对一部分说话人影响大,对另一部分说话人影响小。如果你只放随机截距,这些个体化的斜率差异就会被强行压到误差里,可能导致标准误估计偏小,结论偏乐观。
更完整的做法是为关键固定效应按被试设置随机斜率:
model2 <- lmer( duration ~ tone + (1 + tone | speaker) + (1 | item), data = speech_data )但随机斜率的代价是模型变复杂,收敛难度上升,而且数据量不足时容易过度参数化。实际使用时,我的建议是:如果你的设计是重复测量设计,且每个被试在每个条件下都有多次观测,那就值得尝试随机斜率;如果某个被试在某个条件下缺失数据,模型可能不收敛,那就退回随机截距模型,并在论文里说明。
混合效应模型的真正价值,是让你不再“把个体差异当作麻烦,而是当作结构”。个体差异不再是噪声,而是模型显式承认的层级结构。这也是它成为当代实验语言学标准方法的原因。
5. 不止傅里叶和混合效应:更广的数学工具图谱
5.1 信息论:语言结构可以用“熵”衡量
信息论在语言学里的应用,最早可以追溯到香农对英语文本信息量的估计。信息论里最重要的概念是熵(entropy),用来衡量一个系统的不确定程度。
在语言学里,熵的应用场景很直观。一个位置的词预测性越高,它的信息量就越低。拼音输入法的候选排序、语音识别里的语言模型打分、心理语言学里对阅读时间的预测,背后都是同一个逻辑:高频、高预测性的词,认知加工成本更低。
现在很多阅读实验研究,会把词在语料库中的信息量(以比特为单位)作为预测变量放进回归模型,用来判断“阅读时间是否受信息量驱动”。这已经是心理学和语言学的交叉前沿,而且比单纯的词频指标更精细,因为它同时考虑了上下文。
5.2 贝叶斯统计:从“显著性”走向“可信区间”
频率学派统计(以 p 值为核心)在语言学界仍是主流,但贝叶斯方法正在快速渗透。贝叶斯方法的优势在于:它可以直接给出参数的后验分布,你可以说“这个效应有多大概率落在这个区间内”,而不是只能给出一个容易误读的 p 值。
语言数据往往样本量不大、数据结构复杂,贝叶斯方法处理这类数据更加灵活。R 里的 brms 包就是专门用来跑贝叶斯混合效应模型的,语法和 lme4 非常接近,上手门槛不算太高。
当然,贝叶斯方法也有自己的成本:先验怎么设、链是否收敛、运算时间比频率派方法长不少。如果不是特别需要,可以先从频率派混合效应模型入手,等熟悉了再扩展。
5.3 广义可加模型与曲线类数据
语言数据里有一类特别常见的形态:非线性曲线。比如一个音节的基频曲线、共振峰轨迹、阅读时的眼动路径。这些数据不是单一数值,而是一条随时间变化的曲线。传统回归模型处理曲线数据比较吃力,除非你把曲线切割成多个时间点分别建模,但那样又会造成多重比较问题。
广义可加模型(GAM)就能很好地处理这种情况。它允许因变量和自变量之间的关系是平滑的非线性函数,直接对整条曲线建模。R 里的 mgcv 包,加上专门为时变数据设计的 itc 扩展包,在语调研究和语音韵律研究里越来越常用,部分国际期刊甚至已经开始要求声明 GAM 的平滑项参数选择过程。
5.4 计算语言学与形式语言理论
如果你走的是计算语言学方向,数学工具更不可能缺。上下文无关文法、自动机理论、乔姆斯基层级,这些概念本质上是数学结构。统计语言模型里的 n-gram 概率、隐马尔可夫模型、条件随机场,全部依赖概率论和线性代数。
这几年大语言模型兴起之后,词向量、注意力机制、Transformer 这些概念的背后都是矩阵运算和高维空间几何。虽然很多语言学专业的学生不需要亲手实现这些模型,但理解它们的基本数学原理,有助于判断模型的输出为什么是这个样子,以及在哪些情况下模型会系统性出错。
6. 完整实操链路:从录音到统计模型
6.1 实验设计和数据采集阶段就要想好数学
很多人到了数据分析阶段才想起统计问题,这是最容易走弯路的地方。一位语言学专业学生如果在实验设计阶段没有考虑“我需要多少个说话人、每个人读多少材料、材料怎么平衡”,后面跑模型时往往会发现:效应不显著,但说不清是效应真的不存在,还是统计功效不足。
参考经验值是:做反应时实验,每个条件下每个被试至少有 20 到 30 个试次;做语音产出实验,每个条件和每个说话人的组合至少要保证 5 到 10 个重复。样本量不是越大越好,因为每个说话人的录音和分析都要花费大量人工时间,但太少又会导致模型无法收敛。建议先做一次小规模预实验,用预实验数据估算效应量,再决定正式实验规模。
6.2 从录音到声学参数:常用工具链
语音分析最常用的工具是荷兰阿姆斯特丹大学开发的 Praat,免费、跨平台、可脚本化。基本操作流程如下:
- 录音或获取现有语料库音频,格式建议用 WAV,采样率 44100Hz 或 22050Hz。
- 在 Praat 里打开文件,生成 TextGrid,标记每个音段的起始和时间点。这一步可以手动标注,也可以用自动对齐工具辅助,但边界需要人工检查。
- 提取 F0、共振峰、时长、强度等声学参数。可以用 Praat 的菜单操作,也可以用脚本批量处理。批量处理一定要加异常值标记,比如基频提取失败时返回的 undefined 值。
如果没有手写脚本的习惯,可以先录制一个 Praat 脚本,或者使用现成的开源脚本,比如收集数据时,给每个文件命名的格式建议包含说话人编号、性别、方言点和材料编号,比如SP012_F_SH_032.wav。命名规范了,后面合并数据时会省非常多的体力。
6.3 数据处理:清洗永远先于建模
拿到一堆声学参数后,第一件事不是建模,而是清洗。清洗包括:
- 检查缺失值:Praat 提取失败的参数会被标为 undefined,要决定是删除还是插补。
- 检查极端值:时长超过 3 秒的元音、F0 低于 50Hz 的高尖峰,多半是提取错误,建议先删除再跑核心分析。
- 检查数据分布:连续变量最好画直方图,看是否严重偏态。偏态明显的可以取对数变换再入模型。
- 确认数据结构:每个说话人有多少数据点、每个条件下是否平衡,这些信息要和实验记录比对。
注意:数据清洗的每一步都要留痕。删除多少样本、为什么删除、删除后模型结论是否有变化,这些信息写论文时需要如实报告。审稿人对“选择性删除样本”非常敏感。
6.4 建立你的第一个混合效应模型
假设你最终的数据表叫phonetics.csv,包含列:speaker、item、tone、duration。用 R 的典型流程是:
library(lme4) library(lmerTest) library(emmeans) data <- read.csv("phonetics.csv") model <- lmer( duration ~ tone + (1 | speaker) + (1 | item), data = data ) summary(model)lmerTest包会额外给出固定效应的 p 值,适合习惯显著性的研究者。如果模型出现“模型收敛失败”警告,优先做这几件事:
- 看数据量是否太少;
- 看自变量是否高度共线;
- 看随机效应结构是否过于复杂;
- 使用
lmerControl(optimizer = "bobyqa")尝试换优化器; - 对自变量做中心化处理。
跑完模型后,如果 tone 效应显著,再用 emmeans 包做事后两两比较。注意:多水平比较的结果也要做多重比较校正,不能只看原始 p 值。
6.5 结果解读时最容易犯的错误
统计结果出来了,不等于研究做完了。解读阶段最大的坑是因果推断过度。混合效应模型本质上是观测数据的相关性建模,你做的是实验设计也好、语料库分析也好,都要小心:受访者只是语言使用者,不是被操纵的实验对象。语料库数据里的相关关系,不等于因果关系。
另外,不要只报告“显著”和“不显著”。现在很多期刊要求同时报告效应量、置信区间或贝叶斯因子。你的结论里至少要说清楚:声调对时长的影响有多大,具体是哪些声调之间有差异,差异有多大毫秒,个体差异在多大程度上影响结果。这些信息才能让读者判断你的结论是不是重要的。
7. 常见瓶颈与学习路径建议
7.1 模型不收敛时,先别急着怪数据
模型不收敛是混合效应模型最常被讨论的问题。网上最常见的建议是“简化随机结构”。这个思路没错,但简化之前,先检查几件事:
- 自变量是否需要中心化。交互项加入后,变量间的相关性可能骤增,中心化可以明显改善收敛。
- 数据中是否有大量缺失组合。如果某个被试在某个条件下没有数据,随机斜率就可能无法估计。
- 是否使用了过小数的小数精度。有时把变量单位从毫秒改成秒,数值范围变小,优化器就更容易收敛。
- 是否真的需要最复杂模型。并不是所有随机斜率都必须保留,关键是看你的实验设计是否支撑得起这个复杂度。
如果以上都检查过,还是收敛失败,那就在论文里报告“简化版模型,因为它能收敛;完整版模型结果方向一致,但收敛失败”。这不是丢人的事,透明报告是学术界的正确做法。
7.2 数学基础薄弱,从哪里补
语言专业背景的学生,看到矩阵和积分容易犯怵。但按语言学研究的实际需求,你不需要学完数学系的所有内容。推荐的学习顺序是:
- 先学会看公式结构,不要求会推导。理解一个线性公式中每个符号代表什么。
- 补概率论基础:随机变量、分布、均值、方差、相关和回归。这些是统计模型的基石。
- 学一点线性代数的直观理解:矩阵就是一张数据表,矩阵乘法就是多个变量同时变换,不需要做大量计算题。
- 边用边学统计建模:先跑最简模型,再看文档、看报错、搜别人怎么解决,比先从教材第一页读到最后一页更有效。
- 声音处理方向额外补信号与系统:重点是傅里叶变换的物理意义和语谱图读法。
实操层面,R 是当前语言学统计的主流平台,原因是生态完善:lme4、brms、mgcv、tidyverse 这些包让从数据清洗到建模的链路非常顺畅。建议每天花半小时读一份公开语音语料库的文档说明,再对照 R 教程跑一遍,一个月能建立基本手感。
7.3 语言学的数学还有一个“看不见”的作用
数学不仅给语言学提供工具,还在影响语言学的问题意识。当你知道可以用混合效应模型拆解个体差异时,你就不会再满足于“有一个发音特别标准的人这么发”这种孤例观察。当你知道可以用信息论量化语境预测性时,你就不再只关心语法正确与否,而会关心“为什么这个结构在真实使用中更常出现”。数学训练最大的回报,是帮你建立一种“数据感”:知道什么结论站得住,什么结论只是巧合。
不少年轻研究者对数学的抗拒,其实来自对“做错计算”的恐惧。但语言学研究里的数学不是纸面演算,而是与数据对话。模型结果不符合预期,不一定是你算错了,可能是数据告诉你之前忽略了一个变量;p 值不显著,也不一定是研究失败,可能意味着效应本身很小,或者样本量不足。这种把异常结果当作线索而不是失败的心态,比背会任何公式都重要。
回到最初的问题:语言学为什么离不开数学?因为语言本身就是一个在物理、认知、社会三个层面同时展开的现象。物理层面需要信号处理,认知层面需要实验设计和统计推断,社会层面需要模型来厘清群体差异和个体差异。傅里叶变换帮你看见声音里的结构,混合效应模型帮你从人与人的差异中挑出真正的语言规律。它们不是语言学的外来入侵者,而是这门学科走向精确化、可验证化时自然长出来的工具。
如果你现在正准备开始一个语言实验,我最具体的建议是:先下载一个语料库样本,用 Praat 提取一个元音的共振峰,再在 R 里跑一个最简混合效应模型,哪怕用的不是你自己采集的数据。把这条链路完整走通一遍,你对“语言学为什么需要数学”这个问题,就有了比任何教材都更实在的答案。