英语传统语法通常把词分为十大词类:名词、代词、动词、形容词、副词、介词、连词、冠词、数词和感叹词。
十大词类
| 中文名称 | 英文名称 | 主要功能 | 常见子类 | 例词 |
|---|---|---|---|---|
| 名词 | Noun | 表示人、事物、地点、抽象概念等,可作主语、宾语、表语等 | 普通名词、专有名词、可数名词、不可数名词、集合名词、抽象名词、物质名词 | book, London, happiness, water, family |
| 代词 | Pronoun | 代替名词或名词短语,避免重复 | 人称代词、物主代词、反身代词、指示代词、疑问代词、关系代词、不定代词 | I, mine, myself, this, who, that, someone |
| 动词 | Verb | 表示动作、状态或存在,是谓语的核心 | 实义动词、系动词、助动词、情态动词、及物动词、不及物动词 | run, be, do, can, give, sleep |
| 形容词 | Adjective | 修饰名词或作表语,描述性质、特征或状态 | 性质形容词、数量形容词、指示形容词、物主形容词(部分语法书归为限定词) | big, beautiful, several, red |
| 副词 | Adverb | 修饰动词、形容词、其他副词或整个句子,表示方式、时间、地点、程度等 | 方式副词、时间副词、地点副词、程度副词、频度副词、句子副词 | quickly, now, here, very, often, fortunately |
| 介词 | Preposition | 表示名词或代词与句中其他成分的关系,如时间、地点、方向、原因等 | 时间介词、地点介词、方向介词、原因介词、方式介词 | in, on, at, to, with, because of |
| 连词 | Conjunction | 连接词、短语或从句,表示并列、转折、因果、条件等关系 | 并列连词、从属连词、关联连词 | and, but, or, because, although, either…or… |
| 冠词 | Article | 放在名词前,表示名词的泛指或特指 | 定冠词、不定冠词、零冠词 | the, a, an |
| 数词 | Numeral | 表示数量或顺序 | 基数词、序数词、分数词、倍数词 | one, first, half, twice |
| 感叹词 | Interjection | 表达强烈的情感或反应,通常独立使用,与句子其他部分无语法关系 | 情感类、呼唤类、应答类 | oh, wow, hey, ouch, well |
需要注意的分类问题
- 限定词(Determiner):现代语法中常把冠词、指示词、物主词、数量词等归为限定词,用来限定名词的范围。这与传统分类中的冠词、形容词存在交叉。
- 不同语法体系的差异:传统语法强调十大词类,而现代语言学(如《牛津英语语法》《剑桥英语语法》)更多以句法功能和词形变化为依据,有时会把数词归入形容词或限定词,把感叹词视为独立于句子结构之外的成分。
- 词类可以转换:同一个词在不同语境中可能属于不同词类,例如 water 既可作名词(水),也可作动词(浇水)。因此判断词类要看它在句中的具体用法。
谓语和谓词
系统地来说,“谓语”和“谓词”在日常讨论中经常被混用,但在严格的学术和技术定义上,它们不是一个意思。
两者的根本区别在于所属的领域不同:“谓语”是语言学句法概念,而“谓词”是逻辑学和计算机科学概念。
| 特征 | 谓语 (Predicate – 语法) | 谓词 (Predicate – 逻辑/技术) |
|---|---|---|
| 所属领域 | 语言学、英语/汉语语法。 | 数理逻辑、计算机编程、人工智能、知识图谱。 |
| 关注核心 | 句子中的结构成分(主语做什么、怎么样)。 | 实体之间的关系、属性或判断条件。 |
| 涵盖范围 | 包含动词、宾语、状语等一整块(例如:eat an apple)。 | 通常指单一的动作、状态、关系函数或返回布尔值的条件。 |
- 谓语(Predicate):语法结构
在自然语言(如英语或中文)中,“主语 + 谓语” 构成一个完整的句子。谓语是用来说明主语的动作或状态的。
• 例子:在句子 “The engineer wrote a high-performance Go program.”(工程师写了一个高性能的 Go 程序)中:
• 主语:The engineer
• 谓语:wrote a high-performance Go program(在英语语法中,整个动词短语及后面的修饰成分,整体被称为“谓语部分”)。
- 谓词(Predicate):逻辑与编程
在数学逻辑(谓词逻辑)和计算机领域中,“谓词”是一个函数或关系,它用来描述个体的性质或个体之间的关系,其核心特点是:它的结果通常是“真(True)”或“假(False)”。
• 编程语言(如 Java / SQL)中的谓词:
在 Java 8+ 中,有一个非常著名的标准函数式接口就叫 java.util.function.Predicate。它专门用来做条件过滤。
// 这里的 isPrivate 就是一个“谓词”(Predicate),它接收一个仓库名,返回布尔值
Predicate<String> isPrivate = registry -> registry.endsWith(".rg1.com");
在 SQL 中,WHERE age > 18 里的 age > 18 也被称为谓词下推(Predicate Pushdown)中的谓词,指的是一个过滤条件。
知识图谱/大数据(三元组)中的谓词:
在知识图谱中,“主-谓-宾”(Subject-Predicate-Object)中的“谓”,中文标准翻译是谓词,而不是谓语。它代表两个实体之间的连接关系。
– 表达式:[K8s] (主) ➡️ [manages] (谓词) ➡️ [Pod] (宾)
– 这里的 manages(管理)就是一个谓词,用来定义主宾之间的业务逻辑关系。
一句话概括:“在数据的最底层(存储层、数据源头)就地解决,绝不把垃圾数据带上楼(计算层、内存)。”我们可以把数据的传输链路简单分为两层:
-
- 上层(计算引擎层,如 Spark、Flink、或者你的应用程序代码):负责复杂的计算、分析、聚合、Join 操作。
-
- 下层(存储层、数据源,如 HDFS/Parquet、MySQL、HBase、文件系统):负责把数据从磁盘上读出来。
我们可以用去超市买苹果来对比这两种理解:
❌ 传统模式:Load 所有,再在上层过滤
-
- 计算机把整个货架上所有的苹果(无论好的、烂的、大的、小的)全部装进大卡车,运到你的家里(把全部数据拉取到内存/计算层)。
-
- 你坐在家里,一个一个挑出红苹果,把烂的、绿的扔掉(在上层执行 WHERE 过滤)。
痛点:卡车运费贵(网络/磁盘 I/O 爆炸),家里客厅被堆满(内存暴涨)。
🚀 谓词下推:在最原始的下层直接过滤
-
- 计算引擎在下发任务时,直接把要求
(color == 'red')传给超市营业员(把过滤条件“下推”给存储层)。
- 计算引擎在下发任务时,直接把要求
-
- 营业员在货架上(原始下层)直接把红苹果挑出来,只把符合条件的红苹果装车运到你家。
爽点:卡车只装了极少的数据,传输速度极快,你家客厅也非常清爽。
