句法分析的目标
词法分析回答“句子由哪些词组成”,句法分析回答“这些词如何组织成更大的结构”。句法分析的输入是词序列,输出是一棵非线性的句法结构树。
主要有两大流派:
- 短语结构分析(Phrase Structure Parsing):分析句子的层次组成,常用上下文无关文法描述。
- 依存句法分析(Dependency Parsing):分析词与词之间的支配与被支配关系。
短语结构分析
短语结构树用层次结构表示句子:
- 叶子节点是句子中的每个词,称为 终结符(terminal);
- 中间节点是词性和短语标记。词性节点直接支配终结符,称为 预终结符(preterminal);NP、VP、S 等短语标记称为 非终结符(nonterminal)。
例如“双方签署了协议”可以分析为:
S ┌───┴───┐ NP VP │ ┌──┴──┐ 双方 V NP │ │ 签署 协议根据分析范围,可以分为:
- 完全句法分析(Full Parsing):给出整个句子的完整句法树;
- 局部句法分析(Partial / Shallow Parsing):只识别句子中的关键短语,如名词短语、动词短语。
上下文无关文法
短语结构分析通常使用上下文无关文法(Context-Free Grammar, CFG)。一个 CFG 由四部分组成:
- :非终结符集合,如 NP、VP、S;
- :终结符集合,即词表;
- :产生式规则集合,如 ;
- :起始符号。
CFG 能描述嵌套结构,但不能直接反映不同规则的常见程度。一个句子往往有多棵合法的句法树,需要额外的机制消歧。
概率上下文无关文法
概率上下文无关文法(Probabilistic CFG, PCFG)给每条产生式附加一个概率:
同一左部 的所有产生式概率之和为 1:
一棵句法树 的概率是树中所有产生式概率的乘积:
句子的概率则是所有合法句法树概率之和:
用 PCFG 消歧
给定句子,PCFG 选择概率最大的句法树:
因为 对所有候选树相同。这个搜索可以用 CYK 等动态规划算法完成:把句子分成若干跨度,自底向上计算每个非终结符在每个跨度上的最大概率。
PCFG 的优点和局限:
- 优点:能结合规则的结构约束和统计的频率偏好;
- 局限:假设规则之间独立,难以建模远距离依赖和词汇搭配。
现代句法分析器更多使用神经网络(如基于转移的系统、图解析器或预训练模型微调)。
依存句法分析
依存语法认为句子中的词之间存在直接的支配关系。核心概念:
- 支配者(head / governor):处于支配地位的词;
- 从属者(dependent):被支配的词;
- 依存弧:用有向弧表示支配关系,通常从支配者指向从属者;
- 依存关系标签:说明关系的类型,如主语(SBV)、宾语(VOB)、定语(ATT)等。
以“北京是中国的首都”为例:
北京 ←SBV─ 是中国 ←ATT─ 首都首都 ←VOB─ 是“是”是句子的根节点(root),“北京”是它的主语,“首都”是它的宾语,“中国”是“首都”的定语。
依存分析的特点
- 不要求中间短语节点,结构更紧凑;
- 词与词的关系直观,适合信息抽取和知识图谱;
- 对语序变化的适应性较强,适合自由语序语言。
依存树通常还要求满足 投射性(projectivity):如果词 支配词 ,则 与 之间的所有词都直接或间接依存于 或 。自然语言中大多数句子是投射的,但口语和长距离依存中也会出现非投射结构。
依存分析的方法
- 基于规则:人工编写语法规则和约束,可解释但难以覆盖大规模真实文本。
- 基于统计/转移:把分析过程建模为一系列转移动作(shift、reduce、left-arc、right-arc),用分类器预测下一步动作。
- 基于图:为每个词对预测依存弧的得分,再求解满足树约束的最大生成树。
- 神经网络:用 BiLSTM/Transformer 编码上下文,再做转移预测或图打分。
语义角色标注
句法结构告诉我们“谁修饰谁”,语义角色标注(Semantic Role Labeling, SRL)进一步回答“谁对谁做了什么”。SRL 围绕句子中的 谓词(predicate)展开,识别它的 论元(argument)并标注论元扮演的语义角色。
SRL 的核心单位是 谓词论元结构(predicate-argument structure),通常记为 REL。语义角色分为两大类:
核心语义角色
直接参与谓词所描述事件的论元,常用编号表示:
- Arg0:施事(Agent),动作的执行者;
- Arg1:受事(Patient),动作的承受者;
- Arg2:工具、受益者、终点等,具体含义取决于谓词;
- Arg3 / Arg4:更远的论元,出现频率较低。
辅助语义角色
修饰性的环境成分,标签以 ARGM- 开头:
ARGM-TMP:时间ARGM-LOC:地点ARGM-MNR:方式ARGM-PRP:目的ARGM-CAU:原因ARGM-DIS:对比/连接
例如:
小明 昨天 在图书馆 买了 这本书Arg0 ARGM-TMP ARGM-LOC Predicate Arg1谓词是“买”,施事是“小明”,受事是“这本书”,时间和地点分别由 ARGM-TMP 和 ARGM-LOC 标注。
SRL 的方法
SRL 通常分为两步:
- 谓词识别:找出句子中的谓词;
- 论元识别与角色分类:为每个候选论元分配角色。
传统方法把它转化为序列标注或分类问题,使用 CRF、最大熵等模型和句法特征。神经网络方法用 BiLSTM/Transformer 编码句子,再对每个候选跨度做角色分类,或直接做 BIO 序列标注。预训练模型(如 BERT)显著提升了 SRL 的性能。
SRL 在信息抽取、问答、机器翻译和知识图谱构建中都有应用:它能把“谁在何时何地做了什么”结构化出来,是从句子走向事件表示的重要一步。