计算语言学是什么?用计算方法研究和处理人类语言
计算语言学(Computational Linguistics)是语言学和计算机科学相互交叉的一门学科。它一方面用计算的方法和模型来研究人类语言的结构、规律和使用方式,另一方面致力于开发能够理解、生成和处理人类语言的计算机技术。它与自然语言处理的关系非常密切,两个名称常常被混用:一般来说,计算语言学更侧重于借助计算来理解语言本身,带有更浓的语言学研究色彩;自然语言处理更侧重于工程应用,关注如何让计算机完成具体的语言任务。
起源:从机器翻译开始
计算语言学起源于 20 世纪 50 年代对机器翻译的研究。冷战时期,美国希望用计算机自动地把大量的俄文科技文献翻译成英文。1954 年,乔治城大学和 IBM 公司合作进行了一次机器翻译的公开演示,引起了广泛的关注。同一时期,语言学家诺姆·乔姆斯基提出了形式语法的理论,用严格的数学方法来描述语言的结构,比如上下文无关文法,这为用计算机分析语言的语法提供了理论基础,也深刻地影响了计算机科学中编程语言和编译器的研究。1962 年,美国成立了机器翻译与计算语言学学会,后来更名为计算语言学协会(ACL),它举办的年会至今仍是该领域最重要的学术会议。1966 年,美国的一份评估报告认为机器翻译的进展远低于预期,导致相关的研究经费大幅削减,但这份报告也建议加强对计算语言学基础研究的支持。
研究的内容
计算语言学涉及语言的各个层面。语音和音系:研究语音的识别与合成。形态:研究词语的内部结构,比如英文中的词根、前缀和后缀,以及中文的分词。句法:研究句子的结构,比如词性标注、句法分析,构建句子的语法树。语义:研究词语和句子的意义,比如词义消歧、语义角色标注、语义的形式化表示。语用和篇章:研究语言在具体的语境中如何被使用和理解,比如指代消解,判断“他”“它”指的是谁,以及篇章的连贯性、对话的结构。此外还包括语料库语言学,通过分析大规模的真实语言数据来研究语言的使用规律;以及心理语言学的计算模型,研究人是如何理解和产生语言的。
三个发展阶段
基于规则的阶段:从 20 世纪 50 年代到 80 年代,主要依靠语言学家编写的语法规则和词典来处理语言。这种方法可解释性强,但难以覆盖真实语言中千变万化的现象。统计的阶段:从 20 世纪 90 年代开始,随着大规模语料库的出现和计算能力的提升,基于统计和机器学习的方法成为主流。人们从大量的文本中自动地学习语言的规律,比如用隐马尔可夫模型进行词性标注,用统计模型进行机器翻译。IBM 的语音识别研究者弗雷德里克·杰利内克有一句流传甚广的玩笑话:“每当我解雇一个语言学家,语音识别系统的性能就会提高一些。”这反映了当时统计方法相对于规则方法的优势。神经网络的阶段:2010 年代以后,深度学习彻底改变了这一领域。词向量、循环神经网络、Transformer,以及 BERT、GPT 等预训练语言模型,让机器在几乎所有的语言任务上都取得了巨大的进步,大语言模型更是展现出了惊人的语言能力。
大模型时代的计算语言学
在大语言模型的时代,很多传统的语言处理任务可以由一个通用的模型端到端地完成,不再需要显式的句法分析等中间步骤。但计算语言学并没有失去意义:研究者用语言学的知识来分析大模型是否以及如何掌握了语法和语义;构建和研究低资源语言、方言的语言资源;研究语言的评测基准;以及思考语言、意义和理解的本质。计算语言学也帮助我们更好地理解大模型的能力和局限。