语言学与计算基础:符号、规则与概率视角
当计算机试图理解人类语言时,它面对的是一个既熟悉又陌生的领域。熟悉在于,语言是我们每天使用的工具;陌生在于,语言的模糊性、创造性和上下文依赖性,与计算机精确、确定、形式化的运作方式形成鲜明对比。计算语言学(Computational Linguistics)正是 bridging this gap 的学科,它研究如何让计算机处理、理解和生成自然语言。在这一过程中,两个核心范式始终主导着技术的发展轨迹:基于规则的符号主义方法和基于统计的数据驱动方法。理解这两种范式的哲学基础、技术实现和适用场景,是掌握自然语言处理(NLP)核心技术的逻辑起点。
语言作为一个符号系统,其基本单位是符号(symbol)。在计算视角下,语言被抽象为符号序列:从语音信号到音素序列,从文本到字符或词序列。这种序列化是计算机处理的前提,但也带来了根本挑战:符号与意义之间的关系并非一一对应,而是高度复杂、多对多且依赖上下文。例如,英文单词"bank"可以指"河岸"或"银行",中文"打"字可表示"打电话"、"打篮球"、"打水"等数十种含义。这种歧义性是自然语言固有的,也是NLP系统必须解决的核心问题。
规则主义范式源于生成语法理论,特别是乔姆斯基(Noam Chomsky)的转换生成语法。其核心假设是:人类语言能力由一套内在的、形式化的规则系统所支配,这些规则能够生成无限多的合法句子。在计算实现上,这表现为基于手工编写规则的系统:词典收录词条及其属性(词性、义项),语法规则描述句子结构(如短语结构规则),语义规则解释意义构成。规则系统的优势在于解释性强、对数据需求低、能处理稀有或未见现象。例如,一个基于规则的机器翻译系统可以通过精心设计的转移规则将英语主动句"John loves Mary"转换为法语被动句"Marie est aimée par John",即使训练语料中从未出现此特定句子对。
然而,规则系统的脆弱性也显而易见。语言的规则本身存在边界情况、例外现象和灰色地带。手工编写覆盖所有语言现象的规则集几乎不可能,且维护成本极高。20世纪80年代,随着计算资源增长和大型语料库(如布朗语料库、华尔街日报语料库)的出现,统计主义范式逐渐兴起。其核心假设是:语言规律可以从大规模真实文本数据中自动学习,无需强假设的显式规则。统计模型将语言现象建模为概率分布,通过最大似然估计或贝叶斯推断从数据中学习参数。例如,在词性标注任务中,隐马尔可夫模型(HMM)学习词汇-标签发射概率和标签转移概率,而非依赖手工编写的词典和规则。
规则与统计并非完全对立,而是互补关系。规则提供语言学先验知识和结构化约束,统计提供从数据中学习优化的能力。现代NLP系统往往是两者的混合:统计模型可能以规则定义的标签集或特征模板为基础;神经网络的损失函数可能包含语言学约束项;预训练语言模型虽纯数据驱动,但其行为可通过提示工程(prompt engineering)引导,模拟规则推理。理解这两种范式的演变与融合,是设计健壮NLP系统的关键。
形态学:词的内部结构与计算建模
形态学(Morphology)研究词的内部结构,关注词素(morpheme)——语言中最小的有意义的单位。词素分为自由词素(可独立成词,如"book")和粘着词素(必须依附于其他词素,如表示复数的"-s"、表示过去式的"-ed")。词的构成通过两种主要过程:派生(derivation)改变词的类别或核心意义(如"teach"→"teacher"),屈折(inflection)表达语法关系而不改变词类(如"walk"→"walked")。不同语言的形态丰富度差异巨大:英语是分析语,形态变化较少;拉丁语是综合语,词内包含大量屈折信息;土耳其语等黏着语通过附加大量词素表达复杂含义,一个词可能对应英语的一个完整句子。
计算形态学(Computational Morphology)的目标是自动分析词的形态结构(分析,analysis)或根据语义和语法要求生成词形(生成,generation)。其核心挑战在于处理不规则现象和形态同音(如英语"read"的现在时和过去时拼写相同但发音不同)。规则方法采用形态规则库,如有限状态规则(Finite-State Rules),将词形变化描述为状态转换。例如,英语动词规则过去式可表示为:若词尾为辅音字母(除y外)则加"-ed",若以"y"结尾且前为辅音则变"y"为"i"加"ed"。这种方法直观但难以覆盖例外。
更强大的方法是有限状态 transducer(FST),一种能同时读取输入符号并产生输出符号的有限状态自动机。FST能高效实现形态分析器和生成器,将词形映射到词根和词素序列。例如,输入"walked",FST输出"walk+V+Past"。FST的优势在于可编译为紧凑、高效的运行时结构,适合资源受限环境。开源工具如FST、SFST(Stuttgart Finite State Transducer)广泛用于构建形态组件。
统计形态学则从数据中学习形态规律。对于缺乏形态分析资源的语言,无监督形态切分(Unsupervised Morpheme Segmentation)试图从纯文本中发现词素边界。典型方法基于最小描述长度(MDL)原则:最优切分是使整个语料库(词典+文本)编码长度最短的切分。算法如Morfessor通过迭代优化,平衡词典大小(每个词素需存储)和文本编码代价(每个词由词素序列表示)。例如,对语料"walk walks walking walked",Morfessor可能发现词素"walk"、"-s"、"-ing"、"-ed"。
形态学信息对下游NLP任务至关重要。在信息检索中,将"running"、"ran"都归一化为词根"run"能提高召回率;在机器翻译中,正确分析源语言形态有助于生成目标语言正确词形;在文本挖掘中,词干提取(stemming)和词形还原(lemmatization)是基础预处理步骤。例如,英语词干提取器Porter Stemmer通过一系列规则步骤(如删除"ing"、"ed"等后缀)将词归约为词干,虽不保证语言学正确性,但在检索中常有效。而词形还原需词典和词性标注,更准确但资源密集。
对于中文等分析语,形态学问题主要表现为分词(Word Segmentation)。中文文本无显式空格分隔,需判断字符序列的边界。例如,"南京市长江大桥"可能有多种切分:"南京市/长江/大桥"(城市、河流、建筑)、"南京/市长/江大桥"(城市、职位、人名)。分词歧义需通过统计模型解决。主流方法将分词视为序列标注问题:为每个字符标注边界标签(如B、M、E、S表示词首、词中、词尾、单字词)。条件随机场(CRF)或神经网络(如BiLSTM-CRF)学习从字符到标签的映射,利用字向量、词典特征等。中文分词的F1值在新闻文本上可达97%以上,但在新词、专名、网络用语上仍具挑战。
句法学:结构关系与计算模型
句法学(Syntax)研究句子中词的组合规则和结构关系。核心问题是:什么样的词序列构成合法句子?词之间如何组织成短语和从句?传统语法分为两大流派:短语结构语法(Phrase Structure Grammar)和依存语法(Dependency Grammar)。短语结构语法以 constituency(组块)为核心,认为句子由嵌套的短语构成,如名词短语(NP)、动词短语(VP)。依存语法则以 dependency(依存)为核心,认为句子是中心词(head)与修饰词(dependent)的二元关系网络,每个词(除根节点外)都依存于另一个词。
在计算实现上,短语结构语法常用上下文无关文法(Context-Free Grammar, CFG)形式化。CFG由非终结符(如S、NP、VP)、终结符(词汇)、产生式规则(如S → NP VP)组成。CFG能描述许多语言现象,但存在局限:它无法捕捉跨节点约束(如主谓一致、代词先行词约束),因为产生式仅局部操作。为增强表达能力,计算语言学家发展了特征结构(Feature Structures)、树库(Treebank)等资源,以及更强大的形式系统如树邻接语法(Tree-Adjoining Grammar, TAG)。
依存语法将句子表示为一个有向图,其中边表示依存关系(如nsubj表示名词主语、dobj表示直接宾语)。依存关系通常标记语义角色(施事、受事等),因此依存结构比短语结构更接近语义。依存语法的一个优势是每个词仅有一个父节点(除根节点),结构稀疏且无二义性(给定依存标签集)。主流依存解析器(parser)包括基于图的方法(如最大生成树算法)和基于转移的方法(如贪心动作序列)。
无论采用哪种句法理论,句法分析(Parsing)的目标都是为输入句子构建结构表示。从计算角度,句法分析可形式化为搜索问题:在由文法定义的无穷可能结构中,找到最符合输入句子和模型的结构。由于可能结构数量随句子长度指数增长(CFG的CYK算法复杂度为$O(n^3)$),高效算法和启发式搜索至关重要。
统计句法分析将句法建模为概率模型。概率上下文无关文法(PCFG)为CFG的每条产生式赋予概率,句子概率为所有可能推导的概率之和。PCFG的参数(产生式概率)通常从树库(如英语的Penn Treebank)中通过最大似然估计学习。例如,规则S → NP VP的概率等于树库中该规则出现次数除以所有S规则出现次数之和。给定PCFG,最可能句法树(Viterbi解析)可通过CYK算法的变体计算。
然而,朴素PCFG存在两个问题:一是独立性假设过强,它假设产生式概率仅依赖于左部非终结符,而实际句法选择受上下文影响(如动词短语的类型受动词选择限制);二是缺乏词汇化(lexicalization),即未将词汇语义纳入句法决策。词汇化概率上下文无关文法(Lexicalized PCFG)通过将词汇信息融入非终结符来缓解:非终结符不仅包含句法类别(如VP),还包含中心词(head)及其特征(如"run/VBD")。这使模型能捕捉动词对宾语类型的偏好(如"drink"偏好"water"而非"idea")。
依存语法同样可概率化。给定依存标签集,一个依存树是词与依存关系的有向无环图。统计依存解析器通常建模为:$P(\text{tree}) = \prod_{(i,j) \in \text{tree}} P(\text{relation}_{i,j} | \text{features}_{i,j})$,即每条依存边的概率依赖于源词、目标词及其上下文特征。早期系统使用线性模型(如MSTParser)通过全局推理(最大生成树)优化;现代系统普遍采用神经网络,如BiLSTM编码器结合动态规划或贪心转移系统(如Dozat和Manning的模型)。
句法分析的评估指标包括精确率(Precision)、召回率(Recall)和F1值,计算系统输出树与标准树(gold tree)之间的匹配程度。对于短语结构树,常用带标签的依存准确率(Labeled Attachment Score, LAS)和无标签依存准确率(Unlabeled Attachment Score, UAS);对于依存树,常用有标签和无标签的依存准确率。在Penn Treebank上,现代神经解析器的F1已超过92%,但跨语言、跨领域性能仍不均衡。
句法分析不仅是中间步骤,其输出可直接用于下游任务。例如,在信息抽取中,依存关系帮助识别实体间的"谁对谁做了什么";在问答系统中,句法结构辅助定位答案片段;在机器翻译中,句法信息指导重排序和短语对齐。神经机器翻译(NMT)早期忽视句法,但近年研究显示,融入句法表示(如通过树结构编码器)能改善长句翻译和低资源语言翻译。这表明,即使在大数据、大模型时代,语言学结构仍具价值。
语义学:意义表示与计算模型
语义学(Semantics)研究语言表达的意义。从计算角度,语义表示需满足两个需求:一是形式化,以便计算机操作;二是可学习,以便从数据中获取。传统语义学提供多种理论框架,每种对应不同的计算建模路径。
组合语义(Compositional Semantics)基于弗雷格(Frege)原则:整体意义由部分意义及其组合方式决定。在形式语义学中,这通常通过模型论(Model-Theoretic Semantics)实现:将句子映射到可能世界中的真值条件。例如,句子"John loves Mary"在某个模型中为真,当且仅当该模型中"John"指向的对象与"Mary"指向的对象之间存在"loves"关系。 Montague语法使用λ演算构建逻辑形式(Logical Form),如"loves(John, Mary)"。计算实现上,这需要将自然语言映射到形式逻辑语言,涉及词义消歧、量词作用域确定等难题。CCG(Combinatory Categorial Grammar)等语法框架将句法推导与语义组合紧密结合,使句法结构直接产生逻辑形式。
格语法(Case Grammar)和框架语义学(Frame Semantics)更关注谓词-论元结构。格语法提出,动词决定其论元的"格"(如施事、受事、工具),例如动词"give"要求施事、受事、与事三个论元。框架语义学(Fillmore)认为,词的意义通过其激活的"框架"(场景、事件)来定义,如"buy"激活"商业交易"框架,包含买方、卖方、商品、金钱等角色。这些理论直接催生了语义角色标注(Semantic Role Labeling, SRL)任务:识别谓词及其论元,并标注论元在事件中的角色(如Agent、Patient)。SRL系统通常基于句法分析结果,使用统计模型(如SVM、神经网络)对论元边界和角色分类。PropBank和FrameNet等资源提供标注框架。
词汇语义(Lexical Semantics)关注词的意义。传统词典提供义项(sense)定义,如"bank"有两个义项:河岸和金融机构。词义消歧(Word Sense Disambiguation, WSD)旨在给定上下文,确定词的义项。早期基于知识的方法使用词典(如WordNet)计算义项与上下文的相似度;基于统计的方法利用局部上下文特征(如邻近词)训练分类器。深度学习时代,上下文词嵌入(如BERT)使WSD性能显著提升,但仍受限于义项粒度和领域适应性。
分布语义学(Distributional Semantics)提供另一种视角:词的意义由其出现的上下文分布决定,即"you shall know a word by the company it keeps"(Harris, 1954)。这催生了向量空间模型(VSM):将词表示为稠密向量,语义相似的词向量相近。Word2Vec、GloVe等词嵌入技术通过预测上下文(Skip-gram、CBOW)或矩阵分解,将词汇映射到低维空间。词向量成功捕捉了类比关系(如"king - man + woman ≈ queen")和语义规律(如"Paris - France + Italy ≈ Rome")。然而,词向量是静态的,无法解决多义词问题;上下文相关词表示(如ELMo、BERT)通过深层双向Transformer,为同一词在不同语境生成不同向量,显著改善了WSD和下游任务性能。
从词汇到句子,语义组合可通过简单操作(如向量平均)或结构化操作(如基于句法树的递归神经网络)。神经语义组合模型(如Tree-LSTM)将句法树结构与神经网络结合,逐步组合子树表示。另一种思路是使用注意力机制(Attention),让模型动态聚焦于相关部分,无需显式句法结构。预训练语言模型(如BERT、GPT)通过大规模无监督预训练,隐式学习了丰富的语义和世界知识,在下游任务上微调即可达到优异性能。这引发了对"是否需要显式语义表示"的讨论:神经模型是否已通过分布式表示隐式编码了语义结构?
实际上,即使最强大的语言模型也面临语义理解的根本挑战:推理、常识、指代消解。例如,模型可能学会"The trophy didn't fit in the suitcase because it was too large"中"it"指"trophy",但若句子为"The trophy didn't fit in the suitcase because it was too small",则"it"应指"suitcase"。这需要理解物理属性和空间关系,超出表面统计模式。因此,将神经表示与符号推理结合(神经符号AI)是当前研究前沿。
信息论基础:熵、互信息与语言建模
信息论(Information Theory)由香农(Shannon)于1948年创立,为通信系统的定量分析提供框架。在计算语言学中,信息论概念被广泛用于语言建模、特征选择和模型评估。
熵(Entropy)是信息论的核心概念,度量随机变量的不确定性。离散随机变量$X$的熵定义为:$H(X) = -\sum_{x \in \mathcal{X}} p(x) \log p(x)$,单位为比特(bit)。熵越大,变量越不确定。在语言中,熵可用于度量语言的不确定性或复杂度。例如,英语文本的熵约为每词10-12比特(考虑词频分布),而随机字母序列的熵更高(约每字符4.7比特,假设均匀分布)。实际计算中,需通过模型估计概率分布。$n$-gram模型将文本视为符号序列,条件熵$H(w_i | w_{i-n+1}^{i-1})$表示在给定前$n-1$个词条件下,当前词的不确定性。低条件熵意味着当前词可被前文高度预测,如冠词"the"后常接名词。
困惑度(Perplexity)是语言模型的标准评估指标,定义为测试集概率的几何平均数的倒数:$\text{PPL} = 2^{-\frac{1}{N} \sum_{i=1}^N \log_2 p(w_i | \text{context})}$。困惑度可理解为模型预测下一个词时的平均分支数。例如,PPL=100意味着模型在每一步平均有100个等可能选择。困惑度越低,模型越好。$n$-gram模型的困惑度通常在100-200范围(英语),而神经语言模型可降至20-50。
互信息(Mutual Information)度量两个随机变量共享的信息量:$I(X;Y) = H(X) - H(X|Y) = \sum_{x,y} p(x,y) \log \frac{p(x,y)}{p(x)p(y)}$。互信息非负,对称,值越大表示两变量越相关。在语言学中,互信息用于识别词语关联、短语边界和语义关联。例如,两个词$w_i$和$w_j$的互信息$I(w_i; w_j)$高,表明它们常共现(如"New"和"York"),可能构成复合词或固定搭配。点互信息(PMI)是互信息的简化版本,常用于大规模语料中的词语关联计算:$\text{PMI}(x,y) = \log \frac{p(x,y)}{p(x)p(y)}$。若PMI显著大于0,则$x$和$y$正相关。
信息论在特征工程中发挥重要作用。互信息可用于特征选择:选择与目标变量互信息高的特征。在文本分类中,词$t$和类别$c$的互信息$I(t;c)$衡量词对类别的预测能力,高互信息词是类别