句法:语言的形式
原文:
towardsdatascience.com/syntax-the-language-form-612257c4aa5f?source=collection_archive---------3-----------------------#2024-03-21
人类和计算机中的语言处理:第二部分
你怎么知道这是一个句子?
https://medium.com/@dusko_p?source=post_page---byline--612257c4aa5f--------------------------------https://towardsdatascience.com/?source=post_page---byline--612257c4aa5f-------------------------------- Dusko Pavlovic
·发表在Towards Data Science ·22 分钟阅读·2024 年 3 月 21 日
–
第一部分是:
聊天机器人是谁(对你来说是什么)? 结语:房间里的四只大象与聊天机器人
这是第二部分:
1. 句法深奥,语义任意
2. 语法
2.1. 成分(短语结构)语法
2.2. 依赖语法
3. 句法作为类型化
3.1. 句法类型检查
3.2. 解析和类型化
3.3. 前群语法
4. 超越句子
4.1. 我们为什么造句子?
4.2. 语言表达和网络层
5. 超越句法
5.1. 语义上下文敏感性
5.2. 句法上下文敏感性
5.3. 交流是共享语义上下文的过程
第三部分:
语义学:语言的意义
第四部分:
语言作为通用学习机器
1. 句法深奥,语义任意
人们讲多种语言。说不同语言的人通常互相不理解。如何可能有一个语言的普适理论呢?
生命在许多物种中也是多样化的,不同物种通常不能互相交配¹。但生命是一种自我复制的普遍能力,而生物学是生命的一个普遍理论。
一般语言学基于诺姆·乔姆斯基的笛卡尔假设²:所有语言都源自于我们物种固有的普遍语言能力。这一观点认为,我们所有的不同语言共享大脑中嵌入的相同深层结构。由于不同语言为相同事物赋予不同的词汇,因此词汇与意义的语义分配并不属于这些普遍深层结构的一部分。乔姆斯基的一般语言学主要关注的是一般句法。它还研究(或者曾经研究)将深层句法结构转化为在特定语言中可观察到的表层结构的过程,正如生物学研究遗传机制如何导致特定有机体一样。稍微简化一下,乔姆斯基的理论意味着
句法是现代语言学的主要研究对象,而
语义学以互补的方式在以下领域进行研究:
— 意义哲学,无论是以符号学的名义,还是在结构主义的众多化身中;以及在不同方法中
— 搜索引擎工程、信息检索索引和目录、用户画像,以及定向广告。
然而,语言学中研究深层结构到表层结构的路径与生物学中研究的不同之处在于:
在生物学中,生命深层结构的载体是直接可观察的,并且在遗传学中有实证研究,而
在语言学中,句法的深层结构并不可直接观察,而只是被假设存在,就像乔姆斯基的笛卡尔基础一样,寻找实际载体的任务则留给未来的科学。
这使得关于普遍句法结构的笛卡尔假设站不住脚。大型语言模型的出现可能会引发这一理论基础的重大变革。我们与聊天机器人的大多数早期互动似乎暗示,句法与语义之间的分界线可能并不像传统假设的那样明确。
要理解范式的转变,我们需要先理解该范式。要有机会理解大型语言模型,我们需要对语言学中早期发展出的语言模型有一个基本了解。在这节课和下一节课中,我们将分别穿越句法和语义的理论。
2. 语法
2.1. 成分(短语结构)语法
语法是简单的,因为它是三艺中的第一部分。三艺和四艺是中世纪学校的两大主要学科,划分了七门自由艺术的学习内容。三艺包括语法、逻辑和修辞;四艺包括算术、几何学、音乐和天文学。神学、法学和医学不被视为自由艺术,因为它们分别由教皇、国王和医师公会控制。因此,语法是三艺中最简单的部分。在学习的起始阶段,学生们被教导将单词分为 8 种基本的句法类别,这一思想可以追溯到公元前二世纪的狄俄尼修斯·特拉克斯:名词、动词、分词、冠词、代词、介词、副词和连词。类别的概念源自亚里士多德的《工具论》第一卷³。印欧语言的基本名词-动词结构早在更早的时候就已经被注意到,但亚里士多德明确阐述了句法-语义难题:语言中的词类如何反映世界中事物的类别?长时间以来,将单词划分为类别一直是所有学习的起点。随着语言理解的演变,其结构逐渐成为学习的入口。
形式语法和语言将在接下来的几个展示中定义。它们展示了工作原理。如果你不需要详细信息,可以跳过它们,直接进入主要内容。符号将在注释中解释⁴。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c5172e9bf72847189ee1d6f945134f64.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9d93d47d0f4d395c1cf0c0276e109410.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c99a1361bd8a1b3208c6f7f58ce1d9f1.png
短语结构语法理论的思想是,从一个作为终结符集合的词汇表𝛴开始,并指定一个生成所需的良好构句集合𝓛的语法𝛤。
语法如何生成句子。最常见的句子形式是“主语爱宾语”。语法教材中最常见的一句话出现在下图左侧:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/bfc268f31f430f68a897974a18ac0ae2.png
英语语言的基本事实与 Dall-E 对句子“无色的绿色想法愤怒地睡觉”的看法
上图展示了该句的成分树。该句由一个名词短语(NP)和一个动词短语(VP)组成,两者尽可能简单:名词短语是表示主语的名词,动词短语是一个及物动词,后接另一个表示宾语的名词短语。“主语-宾语”的术语对不同的人有不同的理解。各种各样的想法。如果即使是最简单的语法结构也能引发广泛的语义联想,那么就不存在纯粹的语法示例。每一个词序都有其含义,而含义是一个过程,始终在变化,始终可以分解。为了展示语法与语义的分离,乔姆斯基构造了一个(语法上)正确但(语义上)毫无意义的句子,如上图右侧的 Dall-E 所示。这个例子作为证据表明,语法正确并不意味着语义可解释。但也有一个完整的传统,通过诗歌、故事和插图为这个句子赋予意义。上面 Dall-E 的贡献就是其中较为简单的一个。
马克思主义语言学与工程学。若想更深入地探讨语法与语义之间的分界线,可以考虑格劳乔·马克思在电影《动物饼干》中的一句话:“有一天早上我在睡衣里打死了一头大象”,这句话中的歧义。
youtu.be/NfN_gcjGoJo?si=AucqaRQvvfoAlVIo
该主张存在歧义,因为它允许两种语法分析:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0f74156b53f854189d82e10da0930000.png
两者都是使用相同的语法推导出来的:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a948ed24677bf4cd2cea6a9d75ac213c.png
尽管这两种分析在语法上都是正确的,但只有一种在语义上是现实的,而另一种则是个笑话。为了植入笑点,格劳乔通过添加*“我不知道他是怎么进入我的睡衣的。”* 将他的主张与第二种解释联系起来。笑点来自于从语法模糊性到语义不可能性的意外转折。关于“无色的绿色想法”和“我睡衣里的大象”的句子说明了语法与语义表面上出现的偏离过程,这一过程在语言学中被研究,并在喜剧中得到应用。
形式文法的历史。形式文法中使用的符号::= 是这种规则曾被认为是单向方程的遗迹。上述形式文法定义中的规则(1)应理解为类似于:“每当你看到αβγ时,你可以将其重写为αδγ,但不能反过来”。由这种单向方程系统所呈现的代数理论由阿克塞尔·图厄(Axel Thue)在 20 世纪初研究。埃米尔·波斯特(Emil Post)在 1920 年代使用这种系统研究字符串重写,以构造我们现在称之为程序的东西,比哥德尔(Gödel)和图灵(Turing)提出编程思想早了 10 多年。在 1940 年代,波斯特证明了他的字符串重写系统与图灵、哥德尔和丘奇(Church)的计算模型同样强大,而这些计算模型此时已出现。诺姆·乔姆斯基(Noam Chomsky)在 1950 年代提出形式文法作为一般语言学的主要工具,基于波斯特的工作,并受计算理论的启发,迅速扩展并证明了当时一些最深刻的结果。尽管自然语言的可用文法仍然需要大量关于转换、附加条件、绑定等的额外工作,但乔姆斯基当时分类的简单形式文法自此以来一直是指定编程语言的主要工具。
形式文法和语言的层次结构。乔姆斯基通过对生成语言的语法规则施加约束,定义了下图所显示的语言嵌套结构。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/8021660949b427216e9e500af6bac59d.png
乔姆斯基的形式文法和语言层次结构
约束条件总结如下表所示。我们可以说:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d96910585eeee4b89665766e6dbd6c62.png
以下是来自每个文法家族的一些示例⁵,以及典型的推导树和语言:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e57ffa3d9722008773569e55cebffcd1.png
典型文法的生成树及其诱导语言
它真的是我大脑里的工作方式吗?现实的科学模型通常并不声称它们就是现实。物理学家并不声称量子态由用来模拟它们的密度矩阵构成。文法只是语言的计算模型,诞生于计算理论的早期。短语结构文法曾试图用计算的术语来解释语言。如今,即使是编程语言,也不再以这种方式运作了。它只是一个模型。
然而,当涉及到心理过程的心理模型时,现实与其模型之间的划分变得微妙。它们可以相互反映并相互影响。计算机的计算模型使得计算机可以模拟自身。语言可以在自身内部进行建模,而这种模型可以与它所模拟的过程相似。它能有多接近?
2.2. 依赖文法
依赖语法更接近于捕捉句子生成的过程。语法依赖是一种句子中单词之间的关系。它将一个中心词与一组(有序的!)依赖项关联。句子的生成是随着给定中心词的依赖项被选择,或给定依赖项的中心词被选择的过程。选择是按照单词出现的顺序进行的。下面是以 Groucho 的“大象”句子为例的工作方式:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d809c5bf74735b30c78e6526d94f29ff.png
展开依赖关系。代词“I”首先出现,它只能作为某个动词的依赖构成一个句子。一旦动词“shot”被发出,它就被选为该依赖关系的中心词。然后,如果动词“shot”作为不及物动词使用,句子就可以结束。如果它作为及物动词使用,则需要选择动作的宾语作为它的另一个依赖项。Groucho 选择了名词“elephant”。英语语法要求该名词也是另一个依赖关系的中心词,带有一个冠词作为其依赖项。由于冠词必须位于名词之前,因此在选择“an”或“the”作为依赖项之前,名词“elephant”是不会被发出的。当“我射杀了一只大象”这些词被说出(或接收)后,依然有多个选择要做:句子可以在没有进一步依赖项的情况下结束,或者可以将一个依赖项添加到中心词“shot”,或者可以将其添加到中心词“elephant”。后两种句法选择对应不同的语义意义,产生歧义。如果介词短语“in my pajamas”是“shot”这个中心词的句法依赖项,那么主语“I”是在穿着睡衣的情况下开枪的。如果介词短语是“elephant”这个中心词的句法依赖项,那么射击的对象是穿着睡衣的。两种依赖分析如图所示,图上方画有相应的构成分析。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/5aaa8231a06d17728d13dae3ecac4b54.png
依赖短语“in my pajamas”的中心词是介词“in”,它的依赖项是名词“pajamas”,而“pajamas”的依赖项是所有格“my”。之后,讲者必须再次选择是结束句子,还是添加另一个依赖短语,比如“while sleeping furiously”,这会打开同样的两个句法依赖和语义歧义的选择。令所有人宽慰的是,讲者选择了结束句子。
依赖关系是句法关系还是语义关系?依赖关系存在的要求通常是句法性的。例如,为了构成一个句子,一个起始名词通常是动词的依赖项。但是,选择某个特定的依赖项或主语分配则主要是语义性的:比如我射杀的是一只大象还是一块交通标志。依赖于大象的冠词的选择取决于上下文,可能是远程的:是否已确定了某只特定的大象。如果没有确定,那么不定冠词an的形式就是通过句法确定的,而非语义决定的。
所以,以上问题的答案似乎暗示,词语之间的关系划分为句法和语义过于简单化,因为语言的这两个方面并非独立,而是紧密相连,甚至是不可分割的。
3. 句法即类型
3.1. 句法类型检查
在计算中,类型检查是一种基本的错误检测机制:例如,算术操作的输入被检查为类型𝖨𝗇𝗍𝖾𝗀𝖾𝗋,数据库中的出生日期被检查为月份字段的类型为𝖬𝗈𝗇𝗍𝗁,其值可以是整数 1, 2, …, 12,如果某人的出生月份输入为 101,类型检查就会捕捉到这个错误。类型允许程序员通过约束可以处理的数据来确保程序的正确执行⁶。
语言处理同样基于类型检查,但检查的是句法类型。例如,一个<动词>的依赖类型必须是<名词短语>,如果我尝试用动词和动词构成一个句子,语言处理器就会捕捉到这个错误。就像类型𝖨𝗇𝗍𝖾𝗀𝖾𝗋限制算术操作的输入为整数一样,句法类型<动词>将句子中的谓词限制为动词,句法类型<名词短语>则限制为名词或需要进一步类型检查的类型。无论如何,句法类型检查是一种错误检测机制,就像在计算中一样。而且,类型约束甚至允许错误修正。例如,如果你听到类似“John lo℥∼ Mary”的话,没有类型约束,你将不得不考虑超过 3000 个以“lo”开头的英语单词作为可能的补全。而在句法约束下,你丢失的单词必须是第三人称单数的及物动词,你的选择就减少到了“lobs”,“locks”,“logs”,……可能还有“loathes”,当然,也包括“loves”。
3.2. 解析与类型
语法规则因此与程序中的类型声明有关,如下所示:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/19444deaa83c6e44bba9679a191fd4bb.png
在上面列出的语法中,经过格劳乔大象句子的两次分析后,左边列出的终结规则是基本类型声明,而右边的非终结规则是类型构造器,用于从简单类型构造复合类型。因此,成分分析树展示了被分析句子的类型结构。句子的单词作为叶节点出现,而内部树节点是类型。分支节点是复合类型,非分支节点是基本类型。成分分析是类型化的。
另一方面,依赖解析做了一件奇怪的事情:它们通过连接头项与其依赖项的成分类型传递依赖关系,然后绕过这些类型,直接将头项与其依赖项连接。这正是上面的依赖图所展示的内容。依赖解析将句法类型简化为项依赖。
但是,只有记录了纯粹项依赖的类型才能简化为项依赖。大象句子的两种依赖解析大概是这样的:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e5603bc0f5feea5e0851f906d87fd0d3.png
由带伴随的句法类型编码的项依赖作为注解
两个句子副本下的表达式是通过依赖解析捕捉到的句法类型。它们通过将参考变量x, y, … 等,与其上划线的左伴随和下划线的右伴随进行配对生成。这些句法类型构成了前群,这是一种由吉姆·兰贝克(Jim Lambek)在 1990 年代末引入的代数结构,旨在简化他关于类别语法的句法演算。他在 1950 年代末引入了类别语法,旨在探索艾季基维奇(Ajdukiewicz)1930 年代的句法连接决策程序,以及巴尔-希勒尔(Bar-Hillel)1950 年代初期的准算术,这两者都基于回溯到胡塞尔(Husserl)“逻辑研究”中的基于参考的意义逻辑。类别语法在随后的几十年中得到了广泛研究。我们仅接触前群,作为一个踏脚石。
3.3. 前群语法
前群是一个带有左伴随和右伴随的有序单群。有序单群是一个单群,其中底层集合是有序的,并且单群乘积是单调的。
如果你知道这是什么意思,可以跳过这一部分。如果你不需要知道它是如何工作的,也可以跳过,因为主要思想应该会在你继续阅读时自然显现出来。为了以防万一,下面是详细内容。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/29326b86d6cc71b2029f031696d58f9d.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/92624e7b36c351720a9ce519f1c5d9d6.png
容易证明,所有前群的元素作为带伴随的有序单群都满足以下声明:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/08818e54d2abccdfbafa85337aea36d9.png
示例。由任意部分有序集(poset)生成的自由 pregroup,由由该有序集元素及其附加类型所形成的元组构成。单群操作是元组的连接。顺序是逐点从生成的有序集中提升的,并且(最重要的是)通过附加类型定义中的顺序条款进行扩展。对于一个非自由示例,考虑从整数到整数的单调映射的单群。再次与逐点顺序结合时,单调映射形成一个 pregroup,因为每一个在两侧都有界限的整数集合都包含其交集和并集,因此每一个单调映射都必须保持这些性质。这允许构造附加类型。
这就是为什么 pregroups 有助于理解语言的原因。
作为类型检查的解析。为了检查给定短语的语义正确性,首先为短语中的每个单词分配一个 pregroup 元素作为其句法类型。短语的类型是它的单词类型在 pregroup 中的积。若短语的句法类型在 pregroup 单位𝜄的上界范围内,则该短语是一个结构良好的句子。换句话说,我们计算给定短语的句法类型S,当且仅当S≤𝜄时,它才是一个句子。该计算可以简化为通过绘制弧线将每种类型x与一个附加类型连接,不论是左侧还是右侧,并将它们配对,使得每对类型都低于𝜄。如果这些弧线排列良好⁷,消除那些根据上述附加定义低于𝜄的相邻链接对,并用单位替代它们,就会使得其他附加对相邻并准备被消除。如果短语是一个句子,按照这种方式进行处理,会将其类型简化为单位。由于这一过程是单调不减的,这证明了原始类型被𝜄单位上界限制。如果这些类型无法通过连接和消除来匹配,那么该短语就不是一个句子。类型实际上告诉我们它是什么类型的短语。
我们显然跳过了许多细节,其中一些是很重要的。在实践中,句子的主语通过一个类型变量S进行标注,该变量不会被释放,并且它的连接线不会弯曲到句子中的其他类型,而是直接指向外部。这条连接线可以解释为对另一个句子的引用。通过将一对句子的*S-*变量链接起来,并进行配对,例如,问题和回答,人们可以实现一种 pregroup 版本的语篇句法。更进一步地,通过配对消息和配对,比如认证协议中的挑战和响应,便可以实现协议形式主义的 pregroup 版本。我们稍后会回到这个话题。
虽然它们显然与依赖关系相关,但预组耦合通常偏离这些依赖关系。在句子层面,这是因为词典中属于相同语法类型的词汇应该被分配相同的预组类型。兰贝克的想法是,即使在成分语法中,相同类型的短语也应该接受相同的预组类型。这个要求是否合理且有利仍是争议问题。这里唯一重要的观点是,语法是类型化的⁸。
4. 超越句子
4.1. 为什么我们要造句?
为什么我们不把词语像网络路由器传输数据包一样流动?为什么我们不能通过增加更多的词汇来逼近我们想说的内容,就像数字通过增加更多的位数来逼近空间中的点一样?
旧的答案是:“我们通过句子来喘口气”。当我们完成一个句子时,我们释放其词语之间的依赖关系。没有这一点,依赖关系会积累,你一次只能在脑中保持有限的线程。呼吸使引用关系不会缠结。
练习。我们造长句有多种原因和目的。下面提供了一句话的示例⁹。试着将其拆分成更短的句子。通过这种操作获得了什么,失去了什么?请问聊天机器人做一下。
指代是一种出现在句子内或句子间的句法模式。在修辞和诗歌中,它是一种通过重复同一短语来加强论点或串联引用的修辞手法。在 ChatGPT 看来,它之所以有效,是因为诗句的节奏与意义模式相呼应:
每个词中,生命的节奏跳动,
在每个真理中,生命的声音发出。
在每个梦中,生命的愿景寻求,
每个咒骂中,生命的复仇升起。
每个笑声中,生命的节拍接近,
每个停顿中,生命的声音退去。
句法划分反映语义划分。句子语法是通过充放句法依赖关系来传递语义引用的学科。
4.2. 语言的表达与网络层次
语言流被组织成词语、句子、段落、章节、书籍、图书馆、文学;说话者讲述故事,发表演讲,维持对话,遵循约定,遵守协议。计算机将言语简化为推文并扩展到聊天机器人。
语言表达的分层是沟通通道分层的一个实例。人工语言也经历了相同的分层过程。互联网协议栈是另一个实例。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/594e65a1aa99ebae58fe10458c269240.png
自然语言是有层次的
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/12ce4b627d57541daaa61ae944dd118e.png
编程语言由…组成
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4811ad223de4cc481911baa1a187156a.png
网络通道堆叠着
通信通道是分层的,因为信息承载体是层叠实现的。层次化的交互架构在生物体中普遍存在,在它们之间的通信网络中也存在,在人类开发的所有语言中都能看到。我们研究过的类似语法类型结构的引用耦合机制在各个层级中都会出现。句子语法的预组结构在简单话语的问答结构和基本网络协议中的 SYN-ACK 模式中都有体现。所有种类的协议中都会出现紧密相关的结构,无论是为了规范网络功能、确保交互安全,还是为了社交、政治和经济机制而建立的。下图展示了一个简单的 2 因子认证协议的高级视图,作为基本的电缆空间¹⁰:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/74463346f62711827d5e89c57c927f5d.png
夏威夷大学的 Laulima 协议作为电缆空间
这里是相同的协议,将电缆交互视为类型的伴随对:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/05b80d8f11da01109d08ee456367e8fb.png
Laulima 协议作为一种语法类型
相应的交互由相应的序列号标记。结果是:
自然语言对话,
软件系统架构,
安全性和网络协议
具有关键特征。人们很容易将它们视为所有通信过程共享的高级深层语法的产物。这样的语法可以合理地从乔姆斯基理论中假设的天赋能力中产生,或者从信息处理的物理和逻辑法则中衍生出来。
5. 超越语法
我们已经看到语法类型如何支持语义信息的传递。格劳乔的象句已经将语法和语义歧义互相反馈。
但如果语法类型与语义分配相互作用,那么普遍接受的将语法分析仅限于句子的限制就无法得到证实,因为语义歧义无法在句子层面上解决。格劳乔已经证明了这一点。
5.1. 语义上下文敏感性
考虑一下这个句子
约翰说他生病了并起身准备离开。
添加上下文会改变其含义:
马克倒在床上。
约翰说他生病了并起身准备离开。
对大多数人来说,“他生病了”现在指的是马克。注意,在“[他]起身准备离开”中的沉默“他”仍然与约翰绑定。或者看
很少有教授来参加派对并度过了愉快的时光。
如果我们将句子拆分成两部分并扩展,它的含义并不会发生显著变化:
由于开会晚了,来参加派对的教授很少。他们度过了愉快的时光。
就像约翰和马克的例子中一样,一个上下文改变了语义绑定,这次是“它”的绑定:
在 5 点钟有一个系部会议。由于开会晚了,来参加派对的教授很少。他们度过了愉快的时光。
但这一次,添加一个将主语“他们”以不同方式绑定的首句,可能会改变最后一句中“他们”的含义:
他们邀请了教授。下午五点有一个系务会议。由于会议开始晚,来参加派对的教授很少。他们度过了愉快的时光。
现在故事是学生们度过了愉快的时光——这些学生从未被明确提及!他们的存在只是通过关于教授生活一般背景知识推导出来的 😉
5.2. 句法上下文敏感性
在自然语言的句法层面,由形式语法生成的句子,证明上下文敏感性等同于找到包含一些已知需要上下文敏感语法的模式的语言,如任意字母a,b,c∈𝛴和任意数字n的aⁿbⁿcⁿ,或任意单词w∈𝛴* 的ww,www,或wwww。由于人们不太可能互相说像aⁿbⁿcⁿ这样的句子,这项任务就变成了找到需要重复单词构造形式ww,www等的语言。寻找这种例子的竞争变得相当激烈。
由于一个词汇有限的语言有一个有限的数字词汇,在某个时刻你必须说类似“千万万”的话,假设“千万万”是一个由单一词表示的最大数字。但根据上下文敏感性竞赛裁判的决定,数字不算在内。
然后有人发现,在中非的班巴拉语言中,表示“任何狗”的构造形式是“狗狗”。接着又有人注意到荷兰语中的上下文敏感嵌套现象,但并非所有人都认同。最终,大多数人认为瑞士德语是一种明确的上下文敏感语言,关于句法上下文敏感性的争论也随之平息。事后看来,这场争论具有明显的神学辩论特征。关于多少天使可以站在针尖上的主要问题是,天使通常不会待在针上。关于句法上下文敏感性的主要问题是,上下文从来不是纯粹的句法。
5.3. 沟通是共享语义上下文的过程
乔姆斯基指出,一旦他定义了“上下文敏感性”这一概念,自然语言就应该被视为上下文敏感的。将语言模型限制为句法,并将句法限制为句子,使得证明他的观察结果变得非常棘手。
但现在句法上下文的神学问题已被抛在脑后,语言模型摆在我们面前,等待被理解,问题随之而来:***上下文究竟是如何处理的?***我们是如何做到的,聊天机器人又是如何做到的?我们都将大量上下文存储在哪里?一部小说从第一句开始建立其上下文,并在 800 页后提及它。语言模型如何找到这种引用的目标?它不能维持任何事物之间的相互引用。你如何选择记住什么?
语义依赖于遥远上下文的问题一直是自然语言处理的核心问题之一。我们目前目睹的自然语言处理的进展,在很大程度上源自于解决这一问题的进展。为了了解这一挑战,考虑以下段落¹¹:
不稳定地,霍尔姆斯从驳船上走了下来。莫里亚蒂正转身离去。
沿着拖曳小道进入了雾中。霍尔姆斯追了上去。`把它还给我’,他喊道。莫里亚蒂转身笑了笑。他张开了手,手中拿着钥匙。
一小块金属掉到了小路上。霍尔姆斯伸手去捡,但
莫里亚蒂太快了。只需微微一动脚,他便把钥匙插入了锁中。
如果你现在还不明白刚才发生了什么,说明你并不孤单。没有足够的提示,当前可用的聊天机器人似乎无法做出正确的解释¹²。在接下来的部分,我们将看到如何生成这些上下文,且包含更大的上下文。之后,我们将准备好解释它们是如何被处理的。
属性
正如文中提到的,代指的诗句“在每一个……生命中的”是由 ChatGPT 创作的,而句子“无色的绿色想法猛烈地沉睡”的插图是由 Dall-E 生成的。所有其他图形均由作者创作。
注释
¹大多数人在讲相同语言时仍然不能相互理解,这一事实与同种生物大多数成员不繁殖而是通过复杂的仪式选择配偶的事实相呼应。
²早期的语言学家(洪堡特、博阿斯、萨皮尔、沃尔夫)主要关注通过理解不同语言(德语、希伯来语、英语、霍比语、纳瓦胡语……)来理解不同的世界观(Weltanschauung, Weltanzicht)。
³三学科的划分呼应了Organon的组织结构,其中第一本书专门讨论了类别,接下来的三本书讨论了逻辑,最后两本书讨论了主题性论证,进而进入修辞学。
⁴对于任意集合A,写作A**表示所有n元组 𝛼={a1,a2,…,an}* 从A中选出的集合,适用于所有n = 0,1,…以及任意从A中选出的a1,a2,…,an。由于n可以是 0,A**包括空元组,写作<>。设所有标签的集合为𝛬 = 𝛴∪𝛯,则规则集合是一个有限的二元关系[::=] ⊆ 𝛬×𝛬*,通过列出(1)得到。
⁵乔姆斯基的Type-x''术语与句法类型’‘术语无关。许多语言学家更倾向于使用句法类别''这一术语。不过,类别’'这个词同时在数学中有着完全不同的意义,并且在语言学中越来越多地被应用。
⁶有关类型的数学理论的历史和逻辑背景,请参阅《程序作为图示》一书的第一章。
⁷如果弧线没有很好地嵌套,就像荷兰语句法的情况那样,那么过程会更复杂,但我们不会深入探讨这个问题。
⁸关于基于预群的句法分析的更多细节,请参阅吉姆·兰贝克的书籍《从词到句》。关于逻辑和数学背景,请参阅《兰贝克预群是弗罗贝纽斯蜘蛛》。
⁹“那天晚上,他梦见自己在一片高原上,春雨滋养了草地和野花,野花从地里冒出来,开满了蓝色和黄色,一眼望不到边。在梦中,他和马群一起奔跑,在梦中他自己也能和马一起奔跑,马群在草原上追逐年轻的母马和小马驹,阳光下它们的深棕色和栗色毛发闪闪发光,年轻的小马驹与母马一起奔跑,踩踏着花朵,花朵在阳光下变得模糊,像金粉一样的花粉悬浮在空中,他们奔跑着,他和那些马穿越高高的台地,脚下的土地在马蹄的奔腾声中回响,他们奔跑、变换、流动,鬃毛和尾巴如泡沫般随风飘扬,那片高远的天地里什么都没有,只有他们在共鸣中移动,这共鸣如同音乐在他们之间流淌,没有任何一匹马、驹子或母马感到恐惧,他们在那共鸣中奔跑,那共鸣就是这个世界,它是无法言说的,只有被赞美。” — 科马克·麦卡锡,《所有美丽的马》
¹⁰绳索空间是分析安全协议的一种简单形式。
¹¹这一段落是亚瑟·柯南·道尔的短篇小说《最后的谜题》中的情节变体。
¹² 关于注意力跨度的关键点:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/8411df499b21622c7b961301878239c4.png
