一句话定义:依存句法分析(Dependency Parsing)是让计算机在句子里找出“谁修饰谁、谁是谁的主语”这类两两关系,并把这些关系连成一棵依存树(dependency tree)的技术。
核心概念
拿一个句子看:
> 她 昨天 用望远镜 看见了 远处的船
在这种分析里,每个词(严格说是每个词元,token)是树上一个节点。一条连线的两端:一端是中心词(head,被依赖的一方),另一端是依存词(dependent,依附的一方),线上还标着关系类型,比如主语、宾语、形容词修饰语、状语等。这套标签目前事实上的通用标准是 Universal Dependencies(UD),具体版本与规范以官方页面为准。
可以把它想成公司的组织架构图:每个员工只有一个直属上级(这叫“单亲性”),汇报线层层向上,所有人最终都汇到一个总经理,也就是那个不挂在任何词下面的虚根(root)。句子里的“看见了”就是总经理,“她”是它的主语下属,“船”是它的宾语下属,“远处”又挂在“船”底下。
它解决的正是“挂错”问题
上句里的“用望远镜”,是挂在“看见了”下面(表示用什么工具看),还是挂在“她”下面?两种挂法意思完全不同:一种是“用望远镜看”,一种会变成“拿着望远镜的她”。人一眼就懂,机器只能靠标注数据和模型去判断。这种歧义是依存分析最典型的难题。
主流做法分两派:转移式(transition-based)从左到右读句子,像用栈一步步“移进、归约”搭结构;基于图(graph-based)的则给所有可能的词对打分,再挑出总分最高的一棵树。
和相邻概念的区别
| 任务 | 输出形态 | 回答的问题 |
|---|---|---|
| 词性标注(POS Tagging) | 每个词贴一个标签 | 这个词是什么词性 |
| 成分句法分析(Constituency Parsing) | 括号套括号的短语树 | 句子由哪些短语嵌套而成 |
| 依存句法分析 | 词与词之间的带标签连线 | 谁修饰谁、谁是谁的主语、宾语 |
词性标注只看单个词,不看词与词的关系;成分分析切的是“名词短语、动词短语”这种块,虽然也描述结构,但不直接说谁修饰谁;语义角色标注(Semantic Role Labeling)更进一步问“谁对谁做了什么”,属于语义层面的判断。依存分析是句法层面的骨架,比成分分析更贴近“关系”本身,也更容易跨语言迁移。
对从业者和普通人的意义
信息抽取要从文本里抽“谁收购了谁”,必须知道谁是主语、谁是宾语;机器翻译碰上汉语和英语词序不同,得先知道修饰语挂在哪个词上,才能正确调序;搜索和问答里,一个 query 的依存结构往往直接决定用户意图。到了大模型时代,端到端生成可以跳过显式句法树,但在需要精确关系、结果可校验、可解释的场景,以及在标注数据少、模型规模小的场合,依存分析仍然是性价比很高的一层结构信息。
普通人感受最直接的场景是:机翻把修饰语挂错、客服机器人答非所问——不少错误追到源头,就是这一步没连对。
