真实面经题目 · 原创解析
对句法分析、词性标注的算法有了解吗?
这道题考察两类自然语言处理基础任务:词性标注负责给词分配语法类别,句法分析负责刻画词与词、短语与短语之间的结构关系。好的回答应分别说明任务定义、经典方法、主流神经模型、评价指标和工程取舍,再解释二者如何在完整 NLP 系统中相互影响。
真实面经题目 · 原创解析
这道题考察两类自然语言处理基础任务:词性标注负责给词分配语法类别,句法分析负责刻画词与词、短语与短语之间的结构关系。好的回答应分别说明任务定义、经典方法、主流神经模型、评价指标和工程取舍,再解释二者如何在完整 NLP 系统中相互影响。
词性标注和句法分析都属于自然语言理解中的基础结构化任务,但粒度不同:词性标注更像序列标注问题,目标是为句子中的每个词预测名词、动词、形容词、介词等词类;句法分析更关注句子的层次结构或依存关系,目标是判断哪些词构成短语、哪个词支配哪个词,以及主谓宾、定中、状中等语法关系。词性标注早期可以用规则和词典,例如基于词形、后缀、上下文规则做消歧。统计方法里,HMM 把词性看作隐状态、词看作观测,通过转移概率和发射概率建模;CRF 进一步直接建模给定句子下的词性序列概率,能利用更丰富的上下文特征。后来常用 BiLSTM-CRF,BiLSTM 编码左右上下文,CRF 保证整体标注序列更合理。现在也常用 Transformer 或预训练语言模型,在上下文表示上更强,对一词多义和长距离依赖更有优势。句法分析主要有成分句法和依存句法两类表示,算法上包括转移式、图方法、动态规划、跨度打分和神经句法分析。二者可以采用流水线方式,也可以用多任务学习共享编码层。
词性标注是给句子中每个词分配语法类别,例如名词、动词、形容词、副词、介词、助词等,本质上是序列标注任务。句法分析是在词性和词序基础上进一步恢复句子的结构,判断句子内部的短语层级或词间依存关系。前者回答这个词是什么语法类别,后者回答这个词和其他词是什么结构关系。
词性标注可以从规则方法、统计方法和神经方法三层理解。规则方法依赖词典、后缀、搭配和人工规则,解释性强但覆盖有限。HMM 将词性视为隐状态,用状态转移和观测发射概率生成词序列,解码时常用 Viterbi。CRF 直接建模条件概率,可以组合词形、上下文、词典、位置等特征。BiLSTM-CRF 用双向循环网络获取上下文表示,再用 CRF 约束全局序列。
句法分析常见表示有成分句法和依存句法。成分句法把句子拆成嵌套短语,例如名词短语、动词短语、介词短语,适合刻画层级结构。依存句法直接建立词与词之间的有向关系,例如主语依存于谓词、宾语依存于谓词、修饰语依存于中心词,结构更紧凑,常用于信息抽取、问答、搜索理解等工程任务。
转移式句法分析把构建句法树看作动作序列预测,例如移进、规约、建立左弧或右弧,优点是速度快、实现直接,但局部决策可能产生误差积累。图方法为候选依存边打分,然后寻找得分最高的合法树,全局一致性更强。成分句法中常见思路包括 CKY 动态规划、跨度打分和自顶向下或自底向上的树构建。
词性标注通常是句法分析的重要输入特征,因为词类能约束可能的句法角色。例如动词更可能成为谓语中心,名词更可能承担主语或宾语,形容词可能作为定语或谓语。反过来,句法结构也能帮助消解词性歧义,例如同一个词在不同结构位置可能对应不同词类。现代系统中可以先做词性标注再做句法分析,也可以用共享编码器的多任务模型联合学习。
中文词性标注和句法分析比形式语言更容易受歧义影响。首先,中文通常需要先分词,分词错误会传递到词性和句法阶段。其次,中文存在大量兼类词,例如研究既可作名词也可作动词。再次,中文省略现象多、语序相对灵活、功能词信息少,导致主谓宾和修饰关系判断更依赖上下文语义。
词性标注常用准确率评估,即预测词性正确的词数占总词数的比例。依存句法常用 UAS 和 LAS,UAS 只判断每个词的依存头是否正确,LAS 同时要求依存头和依存关系类型正确。成分句法常用短语括号匹配的 precision、recall 和 F1。工程上还要关注推理速度、领域迁移能力、长句鲁棒性和错误传播。
HMM 是生成式模型,建模词性序列和词序列的联合概率,需要转移概率和发射概率,并带有较强独立性假设。CRF 是判别式模型,直接建模给定句子时词性序列的条件概率,可以使用更丰富的上下文特征,通常对序列标注任务更灵活。
BiLSTM 能为每个位置生成包含左右上下文的信息表示,但如果逐位置独立分类,可能产生不合理的词性序列。CRF 可以建模相邻词性之间的转移约束,在全局序列层面选择更合理的标注结果。
成分句法关注短语层级结构,例如一个名词短语由定语和中心名词构成,一个动词短语由谓词和宾语构成。依存句法关注词与词之间的支配关系,例如主语依赖谓词、宾语依赖谓词、定语依赖名词。前者层级感更强,后者结构更紧凑,工程应用中依存句法更常用于关系抽取和信息抽取。
转移式方法把句法树生成看成动作序列,速度快、适合低延迟场景,但局部动作错误可能累积。图方法为候选依存边全局打分,再寻找最优依存树,全局一致性更好,但计算成本通常更高。现代神经模型会结合强编码器和全局解码来平衡效果与效率。
不是。预训练模型确实能隐式学习大量语法信息,但显式词性和句法结构仍然有价值。它们在可解释性、低资源领域、结构约束、信息抽取、错误分析和规则结合场景中仍然很有用。很多系统会把预训练表示和结构化预测结合起来。